ERC-20
Overview
Max Total Supply
1,000,000 BHPEPE
Holders
34
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
8,658.160031605406708998 BHPEPEValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
BHPEPE
Compiler Version
v0.8.9+commit.e5eed63a
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-04-25 */ /** ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ░ ░░░░░ ░░░░░░░░░░░░░░ ░░░░░░░░░░░░ ░░░░ ░░░ ░░░ ░░░░ ░░░░░░░ ░░░░░░░░ ░░░░░░░ ░░░ ░ ░░░ ▒ ▒▒ ▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒ ▒ ▒▒▒▒▒▒▒ ▒▒▒ ▒ ▒▒ ▒▒▒▒ ▒▒▒▒ ▒▒▒▒▒▒ ▒ ▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒ ▒ ▒▒▒▒▒▒▒ ▒▒▒▒ ▒ ▒▒▒▒▒▒ ▒ ▒▒▒ ▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒ ▒▒ ▒▒▒▒▒ ▒▒▒▒▒▒▒▒ ▒ ▒▒▒▒▒ ▒▒▒▒ ▒▒▒▒▒ ▒▒ ▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒ ▒ ▒▒▒▒▒▒▒ ▒▒▒▒ ▒ ▒▒▒▒▒▒ ▓ ▓▓▓▓ ▓▓▓▓▓▓▓▓▓▓▓ ▓▓▓ ▓▓▓▓ ▓▓▓▓▓▓▓▓ ▓ ▓▓▓▓▓▓▓ ▓▓▓▓ ▓▓▓ ▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓▓▓▓ ▓▓▓ ▓▓▓ ▓▓▓ ▓▓ ▓ ▓▓▓▓ ▓ ▓▓▓▓▓▓▓▓▓▓ ▓ ▓▓▓ ▓▓▓▓▓▓▓▓ ▓▓ ▓▓▓▓ ▓▓▓▓ ▓▓▓ ▓ ▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓ ▓ ▓▓▓▓▓ ▓ ▓▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓ ▓▓▓ ▓▓▓ ▓ ▓▓▓ ▓▓▓ ▓▓▓▓ ▓▓ ▓▓▓▓▓▓▓ ▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓ █ █ ██ █ █████████ ████ ███ █████ █ ████ █ █████████ █████ ███████████ ████████ █ ████████ ███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ █▄░▄████░▄▀▄░█░▄▄███░▄▄▀█░██░▄▄▀█▀▄▀█░█▀█░████░▄▄▀█▄░▄█▀▄▄▀█░▄▄█▀▄▄▀█░▄▄ ██░██▀▀█░█▄█░█░▄▄███░▄▄▀█░██░▀▀░█░█▀█░▄▀█░▄▄░█░▀▀░██░██░▀▀░█░▄▄█░▀▀░█░▄▄ ██▄██▄▄█▄███▄█▄▄▄███▄▄▄▄█▄▄█▄██▄██▄██▄█▄█▄██▄█▄██▄██▄██░████▄▄▄█░████▄▄▄ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ ______ __ / \ | \ | ▓▓▓▓▓▓\ _| ▓▓_ ______ __ __ | ▓▓▓\| ▓▓ | ▓▓ \ | \| \ / \ | ▓▓▓▓\ ▓▓ \▓▓▓▓▓▓ \▓▓▓▓▓▓\\▓▓\/ ▓▓ | ▓▓\▓▓\▓▓ | ▓▓ __ / ▓▓ >▓▓ ▓▓ | ▓▓_\▓▓▓▓ | ▓▓| \ ▓▓▓▓▓▓▓/ ▓▓▓▓\ \▓▓ \▓▓▓ \▓▓ ▓▓\▓▓ ▓▓ ▓▓ \▓▓\ \▓▓▓▓▓▓ \▓▓▓▓ \▓▓▓▓▓▓▓\▓▓ \▓▓ __ __ __ __ __ __ __ __ __ | \ | \ | \ | \ \ | \ | \ \ | \ | ▓▓ ______ _______| ▓▓ __ ______ ____| ▓▓ | ▓▓\▓▓ ______ __ __ \▓▓ ____| ▓▓\▓▓_| ▓▓_ __ __ | ▓▓ / \ / \ ▓▓ / \/ \ / ▓▓ | ▓▓ \/ \| \ | \ \/ ▓▓ \ ▓▓ \ | \ | \ | ▓▓ | ▓▓▓▓▓▓\ ▓▓▓▓▓▓▓ ▓▓_/ ▓▓ ▓▓▓▓▓▓\ ▓▓▓▓▓▓▓ | ▓▓ ▓▓ ▓▓▓▓▓▓\ ▓▓ | ▓▓ ▓▓ ▓▓▓▓▓▓▓ ▓▓\▓▓▓▓▓▓ | ▓▓ | ▓▓ | ▓▓ | ▓▓ | ▓▓ ▓▓ | ▓▓ ▓▓| ▓▓ ▓▓ ▓▓ | ▓▓ | ▓▓ ▓▓ ▓▓ | ▓▓ ▓▓ | ▓▓ ▓▓ ▓▓ | ▓▓ ▓▓ | ▓▓ __| ▓▓ | ▓▓ | ▓▓_____| ▓▓__/ ▓▓ ▓▓_____| ▓▓▓▓▓▓\| ▓▓▓▓▓▓▓▓ ▓▓__| ▓▓ | ▓▓ ▓▓ ▓▓__| ▓▓ ▓▓__/ ▓▓ ▓▓ ▓▓__| ▓▓ ▓▓ | ▓▓| \ ▓▓__/ ▓▓ | ▓▓ \\▓▓ ▓▓\▓▓ \ ▓▓ \▓▓\\▓▓ \\▓▓ ▓▓ | ▓▓ ▓▓\▓▓ ▓▓\▓▓ ▓▓ ▓▓\▓▓ ▓▓ ▓▓ \▓▓ ▓▓\▓▓ ▓▓ \▓▓▓▓▓▓▓▓ \▓▓▓▓▓▓ \▓▓▓▓▓▓▓\▓▓ \▓▓ \▓▓▓▓▓▓▓ \▓▓▓▓▓▓▓ \▓▓\▓▓ \▓▓▓▓▓▓▓ \▓▓▓▓▓▓ \▓▓ \▓▓▓▓▓▓▓\▓▓ \▓▓▓▓ _\▓▓▓▓▓▓▓ | ▓▓ | \__| ▓▓ | ▓▓ \▓▓ ▓▓ \▓▓ \▓▓▓▓▓▓ ▄▄▄ ▄▄▄ . ▐ ▄ ▄• ▄▌ ▐ ▄ ▄▄· ▄▄▄ .·▄▄▄▄ ▀▄ █·▀▄.▀·•█▌▐█ ▄█▀▄ █▪██▌•█▌▐█▐█ ▌▪▀▄.▀·██· ██ ▐▀▀▄ ▐▀▀▪▄▐█▐▐▌▐█▌.▐▌█▌▐█▌▐█▐▐▌██ ▄▄▐▀▀▪▄▐█▪ ▐█▌ ▐█•█▌▐█▄▄▌██▐█▌▐█▌.▐▌▐█▄█▌██▐█▌▐███▌▐█▄▄▌██. ██ .▀ ▀ ▀▀▀ ▀▀ █▪ ▀█▄▀▪ ▀▀▀ ▀▀ █▪·▀▀▀ ▀▀▀ ▀▀▀▀▀• ░█▀▄░▄▀▄░█▄░█░▀░▀█▀░░▒█▀▒▄▀▄░█▀▄▒██▀░▒░░░▀▄▀░▄▀▄░█▒█░░░█░░▒█░█░█▒░░█▒░░░░██▄▒██▀░░░█▒░▒██▀▒█▀░▀█▀░░▒▄▀▄░█▒░░▄▀▄░█▄░█▒██▀ ▒█▄▀░▀▄▀░█▒▀█░░░▒█▒▒░░█▀░█▀█▒█▄▀░█▄▄░█▒░░▒█▒░▀▄▀░▀▄█▒░░▀▄▀▄▀░█▒█▄▄▒█▄▄▒░▒█▄█░█▄▄▒░▒█▄▄░█▄▄░█▀░▒█▒▒░░█▀█▒█▄▄░▀▄▀░█▒▀█░█▄▄ */ // SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.9; 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 { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 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; } } } interface IERC20 { event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint value); function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); function totalSupply() external view returns (uint); function balanceOf(address owner) external view returns (uint); function allowance(address owner, address spender) external view returns (uint); function approve(address spender, uint value) external returns (bool); function transfer(address to, uint value) external returns (bool); function transferFrom(address from, address to, uint value) external returns (bool); } contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } contract ERC20Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "ERC20Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "ERC20Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } interface IUniswapV2Factory { event PairCreated(address indexed token0, address indexed token1, address pair, uint); 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(uint) external view returns (address pair); function allPairsLength() external view returns (uint); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } interface IUniswapV2Router02 { function factory() external pure returns (address); function WETH() external pure returns (address); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function removeLiquidity( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB); function removeLiquidityETH( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountToken, uint amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountA, uint amountB); function removeLiquidityETHWithPermit( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountToken, uint amountETH); function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapTokensForExactTokens( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB); function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut); function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn); function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts); } contract BHPEPE is Context, ERC20Ownable, IERC20{ using SafeMath for uint256; uint256 private _MaxWallet; uint256 private _MinTS; uint256 private marketingTokens; uint256 private treasuryTokens; uint256 private liquidityTokens; uint256 private marketingTax; uint256 private treasuryTax; uint256 private liquidityTax; uint256 private tDivider; uint256 private taxBuyMarketing; uint256 private taxBuyTreasury; uint256 private taxBuyLiquidity; uint256 private taxSellMarketing; uint256 private taxSellTreasury; uint256 private taxSellLiquidity; uint256 public LiveBlock; uint256 public EndSniperPen; bool public actions = false; bool public maxWalletOn = false; bool public active = false; bool isal; bool private sals = false; address payable liquidityAddress; address payable marketingAddress; address payable treasuryAddress; address payable devAddress; address DEAD = address(0xdead); address public uniV2Pair; IUniswapV2Router02 public uniV2Router; mapping(address => mapping(address => uint256)) private _Allowances; mapping(address => uint256) private _Balance; mapping(address => bool) private _MaxExclude; mapping(address => bool) private _TaxExclude; mapping(address => bool) public _Sniper; mapping(address => bool) public _Bot; modifier lockTheSwap() { isal = true; _; isal = false; } string private constant _Name = "BLACKHAT PEPE"; string private constant _Symbol = "BHPEPE"; uint8 private constant _Decimal = 18; uint256 private constant _Supply = 1e6 * 10**_Decimal; constructor() payable { marketingAddress = payable(0x1cD44286aA179D38177347e58565C8A75f97Cb8B); treasuryAddress = payable(0x1cD44286aA179D38177347e58565C8A75f97Cb8B); devAddress = payable(0x1cD44286aA179D38177347e58565C8A75f97Cb8B); taxBuyMarketing = 0; taxBuyTreasury = 0; taxBuyLiquidity = 0; taxSellMarketing = 0; taxSellTreasury = 0; taxSellLiquidity = 0; liquidityAddress = payable(owner()); _Balance[address(this)] = _Supply; _MaxWallet = _Supply.mul(2).div(100); _MinTS = _Supply.mul(5).div(10000); _TaxExclude[owner()] = true; _TaxExclude[DEAD] = true; _TaxExclude[address(this)] = true; _TaxExclude[marketingAddress] = true; _TaxExclude[treasuryAddress] = true; _TaxExclude[liquidityAddress] = true; _MaxExclude[address(this)] = true; _MaxExclude[owner()] = true; _MaxExclude[marketingAddress] = true; _MaxExclude[treasuryAddress] = true; _MaxExclude[liquidityAddress] = true; _MaxExclude[DEAD] = true; emit Transfer(address(0), address(this), _Supply); } receive() external payable {} function name() external pure override returns (string memory) { return _Name; } function symbol() external pure override returns (string memory) { return _Symbol; } function decimals() external pure override returns (uint8) { return _Decimal; } function totalSupply() external pure override returns (uint256) { return _Supply; } function balanceOf(address account) public view override returns (uint256) { return _Balance[account]; } function allowance(address owner, address spender) external view override returns (uint256) { return _Allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { require(_msgSender() != address(0), "ERC20: Can not approve from zero address"); require(spender != address(0), "ERC20: Can not approve to zero address"); _Allowances[_msgSender()][spender] = amount; emit Approval(_msgSender(), spender, amount); return true; } function ContractApprove(address owner,address spender,uint256 amount) internal { require(owner != address(0), "ERC20: Can not approve from zero address"); require(spender != address(0), "ERC20: Can not approve to zero address"); _Allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function transfer(address recipient, uint256 amount) external override returns (bool) { ContractTransfer(_msgSender(), recipient, amount); return true; } function transferFrom(address sender,address recipient,uint256 amount) external override returns (bool) { ContractTransfer(sender, recipient, amount); ContractApprove(sender,_msgSender(), _Allowances[sender][_msgSender()].sub(amount, "ERC20: Can not transfer. Amount exceeds allowance")); return true; } function Live() external onlyOwner returns (bool){ require(!active, "ERC20: Trades already active!"); LiveBlock = block.number; EndSniperPen = block.timestamp.add(7 days); IUniswapV2Router02 _uniV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniV2Router = _uniV2Router; _MaxExclude[address(uniV2Router)] = true; ContractApprove(address(this), address(uniV2Router), _Supply); uniV2Pair = IUniswapV2Factory(_uniV2Router.factory()).createPair(address(this), _uniV2Router.WETH()); _MaxExclude[address(uniV2Pair)] = true; require(address(this).balance > 0, "ERC20: Must have ETH on contract to Go active!"); addLiquidity(balanceOf(address(this)), address(this).balance); setLiquidityAddress(DEAD); maxWalletOn = true; sals = true; actions = true; active = true; return true; } function ContractTransfer(address from, address to, uint256 amount) internal { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "ERC20: Transfer amount must be greater than zero"); require(!_Bot[from], "ERC20: Can not transfer from BOT"); if(!active){ require(_TaxExclude[from] || _TaxExclude[to], "ERC20: Trading Is Not active!"); } if (maxWalletOn == true && ! _MaxExclude[to]) { require(balanceOf(to).add(amount) <= _MaxWallet, "ERC20: Max amount of tokens for wallet reached"); } if(actions){ if (from != owner() && to != owner() && to != address(0) && to != DEAD && to != uniV2Pair) { for (uint x = 0; x < 2; x++) { if(block.number == LiveBlock.add(x)) { _Sniper[to] = true; } } } } uint256 totalTokensToSwap = liquidityTokens.add(marketingTokens); uint256 contractTokenBalance = balanceOf(address(this)); bool overMinimumTokenBalance = contractTokenBalance >= _MinTS; if (!isal && sals && balanceOf(uniV2Pair) > 0 && totalTokensToSwap > 0 && !_TaxExclude[to] && !_TaxExclude[from] && to == uniV2Pair && overMinimumTokenBalance) { taxTokenSwap(); } if (_TaxExclude[from] || _TaxExclude[to]) { marketingTax = 0; treasuryTax = 0; liquidityTax = 0; tDivider = marketingTax.add(treasuryTax).add(liquidityTax); } else { if (from == uniV2Pair) { marketingTax = taxBuyMarketing; treasuryTax = taxBuyTreasury; liquidityTax = taxBuyLiquidity; tDivider = taxBuyMarketing.add(taxBuyTreasury).add(taxBuyLiquidity); }else if (to == uniV2Pair) { marketingTax = taxSellMarketing; treasuryTax = taxSellTreasury; liquidityTax = taxSellLiquidity; tDivider = taxSellMarketing.add(taxSellTreasury).add(taxSellLiquidity); if(_Sniper[from] && EndSniperPen >= block.timestamp){ marketingTax = 95; treasuryTax = 0; liquidityTax = 0; tDivider = marketingTax.add(treasuryTax).add(liquidityTax); } }else { require(!_Sniper[from] || EndSniperPen <= block.timestamp, "ERC20: Snipers can not transfer till penalty time is over"); marketingTax = 0; treasuryTax = 0; liquidityTax = 0; } } tokenTransfer(from, to, amount); } function setLiquidityAddress(address LPAddress) internal { liquidityAddress = payable(LPAddress); _TaxExclude[liquidityAddress] = true; } function withdrawStuckETH() external onlyOwner { bool success; (success,) = address(owner()).call{value: address(this).balance}(""); } function withdrawStuckTokens() external onlyOwner { ContractTransfer(address(this), owner(), balanceOf(address(this))); } function addBot(address account) external onlyOwner { require(!_Bot[account], "ERC20: Account already added"); _Bot[account] = true; } function removeBot(address account) external onlyOwner { require(_Bot[account], "ERC20: Account is not bot"); _Bot[account] = false; } function removeSniper(address account) external onlyOwner { require(_Sniper[account], "ERC20: Account is not sniper"); _Sniper[account] = false; } function excludFromTax(address account, bool trueORfalse) external onlyOwner { _TaxExclude[address(account)] = trueORfalse; } function excludFromMaxWallet(address account, bool trueORfalse) external onlyOwner { _MaxExclude[address(account)] = trueORfalse; } function maxWalletAmount(uint256 percent, uint256 divider) external onlyOwner { _MaxWallet = _Supply.mul(percent).div(divider); require(_MaxWallet <=_Supply.mul(4).div(100), "ERC20: Can not set max wallet more than 4%"); } function statusActions(bool trueORfalse) external onlyOwner { actions = trueORfalse; } function statusMaxWallet(bool trueORfalse) external onlyOwner { maxWalletOn = trueORfalse; } function changeSwapAndLiquifyStatus(bool trueORfalse) external onlyOwner { sals = trueORfalse; } function taxTokenSwap() internal lockTheSwap { uint256 contractBalance = balanceOf(address(this)); uint256 totalTokensToSwap = marketingTokens.add(treasuryTokens).add(liquidityTokens); uint256 swapLiquidityTokens = liquidityTokens.div(2); uint256 amountToSwapForETH = contractBalance.sub(swapLiquidityTokens); uint256 initialETHBalance = address(this).balance; swapTokensForETH(amountToSwapForETH); uint256 ethBalance = address(this).balance.sub(initialETHBalance); uint256 ethForMarketing = ethBalance.mul(marketingTokens).div(totalTokensToSwap); uint256 ethForTreasury = ethBalance.mul(treasuryTokens).div(totalTokensToSwap); uint256 ethForLiquidity = ethBalance.sub(ethForMarketing).sub(ethForTreasury); marketingTokens = 0; treasuryTokens = 0; liquidityTokens = 0; (bool success,) = address(marketingAddress).call{value: ethForMarketing}(""); (success,) = address(treasuryAddress).call{value: ethForTreasury}(""); if(ethForLiquidity != 0 && swapLiquidityTokens != 0) { addLiquidity(swapLiquidityTokens, ethForLiquidity); } if(address(this).balance > 5 * 1e17){ (success,) = address(devAddress).call{value: address(this).balance}(""); } } function swapTokensForETH(uint256 tokenAmount) internal { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniV2Router.WETH(); ContractApprove(address(this), address(uniV2Router), tokenAmount); uniV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) internal { ContractApprove(address(this), address(uniV2Router), tokenAmount); uniV2Router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, 0, liquidityAddress, block.timestamp ); } function calculateTax(uint256 amount) internal view returns (uint256) { return amount.mul(marketingTax.add(treasuryTax).add(liquidityTax)).div(100); } function splitTaxTokens(uint256 taxTokens) internal { marketingTokens += taxTokens.mul(marketingTax).div(tDivider); treasuryTokens += taxTokens.mul(treasuryTax).div(tDivider); liquidityTokens += taxTokens.mul(liquidityTax).div(tDivider); } function tokenTransfer(address sender,address recipient,uint256 amount) internal { if(tDivider != 0){ uint256 taxTokens = calculateTax(amount); uint256 transferTokens = amount.sub(taxTokens); splitTaxTokens(taxTokens); _Balance[sender] -= amount; _Balance[recipient] += transferTokens; _Balance[address(this)] += taxTokens; emit Transfer(sender, recipient, transferTokens); }else{ _Balance[sender] -= amount; _Balance[recipient] += amount; emit Transfer(sender, recipient, amount); } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"EndSniperPen","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Live","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"LiveBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_Bot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_Sniper","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"actions","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"active","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addBot","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":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"trueORfalse","type":"bool"}],"name":"changeSwapAndLiquifyStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"trueORfalse","type":"bool"}],"name":"excludFromMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"trueORfalse","type":"bool"}],"name":"excludFromTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"},{"internalType":"uint256","name":"divider","type":"uint256"}],"name":"maxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxWalletOn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeSniper","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"trueORfalse","type":"bool"}],"name":"statusActions","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"trueORfalse","type":"bool"}],"name":"statusMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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":"uniV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawStuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526012805464ff00ffffff19169055601680546001600160a01b03191661dead1790556000620000303390565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060138054731cd44286aa179d38177347e58565c8a75f97cb8b6001600160a01b03199182168117909255601480548216831790556015805490911690911790556000600a819055600b819055600c819055600d819055600e819055600f55620000eb6000546001600160a01b031690565b601280546001600160a01b03929092166501000000000002600160281b600160c81b03199092169190911781556200012590600a620004ab565b6200013490620f4240620004bc565b306000908152601a60205260409020556200019560646200018160026200015e6012600a620004ab565b6200016d90620f4240620004bc565b6200037360201b620012211790919060201c565b6200038a60201b620012341790919060201c565b600155620001b36127106200018160056200015e6012600a620004ab565b6002556001601c6000620001cf6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905560165482168152601c845282812080548616600190811790915530808352848320805488168317905560135484168352848320805488168317905560145484168352848320805488168317905560125465010000000000900490931682528382208054871682179055918152601b93849052918220805490941681179093556200028f6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905560135482168152601b909352818320805485166001908117909155601454821684528284208054861682179055601280546501000000000090048316855283852080548716831790556016549092168452918320805490941690911790925530917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906200034d90600a620004ab565b6200035c90620f4240620004bc565b60405190815260200160405180910390a362000501565b6000620003818284620004bc565b90505b92915050565b6000620003818284620004de565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620003ef578160001904821115620003d357620003d362000398565b80851615620003e157918102915b93841c9390800290620003b3565b509250929050565b600082620004085750600162000384565b81620004175750600062000384565b81600181146200043057600281146200043b576200045b565b600191505062000384565b60ff8411156200044f576200044f62000398565b50506001821b62000384565b5060208310610133831016604e8410600b841016171562000480575081810a62000384565b6200048c8383620003ae565b8060001904821115620004a357620004a362000398565b029392505050565b60006200038160ff841683620003f7565b6000816000190483118215151615620004d957620004d962000398565b500290565b600082620004fc57634e487b7160e01b600052601260045260246000fd5b500490565b6125fe80620005116000396000f3fe6080604052600436106101f25760003560e01c80635fecd9261161010d578063958c2e52116100a0578063dd62ed3e1161006f578063dd62ed3e146105c2578063f2fde38b14610608578063f5648a4f14610628578063f99e36bc1461063d578063ffecf5161461065757600080fd5b8063958c2e521461053357806395d89b4114610553578063a9059cbb14610582578063d9d99c96146105a257600080fd5b8063783efbc7116100dc578063783efbc7146104a85780638183b3c8146104c85780638bcea939146104dd5780638da5cb5b1461051557600080fd5b80635fecd9261461043457806370a0823114610454578063715018a614610474578063745d032f1461048957600080fd5b80631a841d0211610185578063313ce56711610154578063313ce567146103a857806333251a0b146103c4578063353470be146103e457806345a119a31461040457600080fd5b80631a841d02146103225780631cae21081461035257806323b872dd146103685780632500ae8a1461038857600080fd5b806311b4181a116101c157806311b4181a146102b657806318160ddd146102cb5780631892a9e2146102e057806318b78fe11461030257600080fd5b806302fb0c5e146101fe57806305b723911461023357806306fdde0314610257578063095ea7b31461029657600080fd5b366101f957005b600080fd5b34801561020a57600080fd5b5060125461021e9062010000900460ff1681565b60405190151581526020015b60405180910390f35b34801561023f57600080fd5b5061024960105481565b60405190815260200161022a565b34801561026357600080fd5b5060408051808201909152600d81526c424c41434b484154205045504560981b60208201525b60405161022a91906120a7565b3480156102a257600080fd5b5061021e6102b1366004612114565b610677565b3480156102c257600080fd5b5061021e61072a565b3480156102d757600080fd5b50610249610acd565b3480156102ec57600080fd5b506103006102fb366004612155565b610aed565b005b34801561030e57600080fd5b5061030061031d36600461218a565b610b42565b34801561032e57600080fd5b5061021e61033d3660046121a5565b601d6020526000908152604090205460ff1681565b34801561035e57600080fd5b5061024960115481565b34801561037457600080fd5b5061021e6103833660046121c2565b610b86565b34801561039457600080fd5b506103006103a3366004612155565b610bea565b3480156103b457600080fd5b506040516012815260200161022a565b3480156103d057600080fd5b506103006103df3660046121a5565b610c3f565b3480156103f057600080fd5b506103006103ff366004612203565b610cf2565b34801561041057600080fd5b5061021e61041f3660046121a5565b601e6020526000908152604090205460ff1681565b34801561044057600080fd5b5061030061044f3660046121a5565b610dca565b34801561046057600080fd5b5061024961046f3660046121a5565b610e7d565b34801561048057600080fd5b50610300610e98565b34801561049557600080fd5b5060125461021e90610100900460ff1681565b3480156104b457600080fd5b506103006104c336600461218a565b610f0c565b3480156104d457600080fd5b50610300610f56565b3480156104e957600080fd5b506017546104fd906001600160a01b031681565b6040516001600160a01b03909116815260200161022a565b34801561052157600080fd5b506000546001600160a01b03166104fd565b34801561053f57600080fd5b506018546104fd906001600160a01b031681565b34801561055f57600080fd5b5060408051808201909152600681526542485045504560d01b6020820152610289565b34801561058e57600080fd5b5061021e61059d366004612114565b610fa6565b3480156105ae57600080fd5b506103006105bd36600461218a565b610fbc565b3480156105ce57600080fd5b506102496105dd366004612225565b6001600160a01b03918216600090815260196020908152604080832093909416825291909152205490565b34801561061457600080fd5b506103006106233660046121a5565b610ff9565b34801561063457600080fd5b506103006110e8565b34801561064957600080fd5b5060125461021e9060ff1681565b34801561066357600080fd5b506103006106723660046121a5565b61116a565b60003361069f5760405162461bcd60e51b81526004016106969061225e565b60405180910390fd5b6001600160a01b0383166106c55760405162461bcd60e51b8152600401610696906122a6565b3360008181526019602090815260408083206001600160a01b03881680855290835292819020869055518581529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35060015b92915050565b600080546001600160a01b031633146107555760405162461bcd60e51b8152600401610696906122ec565b60125462010000900460ff16156107ae5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a2054726164657320616c726561647920616374697665210000006044820152606401610696565b436010556107bf4262093a80611240565b601155601880546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556000819052601b6020527f737a8aa320b777139cfebe450e173d90b49df21bdde0d83dcfdff4abee7622ee805460ff1916600117905561084430826108326012600a61242b565b61083f90620f424061243a565b61124c565b806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561087d57600080fd5b505afa158015610891573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b59190612459565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156108fd57600080fd5b505afa158015610911573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109359190612459565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b15801561097d57600080fd5b505af1158015610991573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109b59190612459565b601780546001600160a01b0319166001600160a01b039290921691821790556000908152601b60205260409020805460ff1916600117905547610a515760405162461bcd60e51b815260206004820152602e60248201527f45524332303a204d757374206861766520455448206f6e20636f6e747261637460448201526d20746f20476f206163746976652160901b6064820152608401610696565b610a63610a5d30610e7d565b476112fa565b6016546012805465010000000000600160c81b031916650100000000006001600160a01b03938416810291909117918290559004166000908152601c60205260409020805460ff1916600117905550506012805464ff00ffffff1916640100010101179055600190565b6000610adb6012600a61242b565b610ae890620f424061243a565b905090565b6000546001600160a01b03163314610b175760405162461bcd60e51b8152600401610696906122ec565b6001600160a01b03919091166000908152601b60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610b6c5760405162461bcd60e51b8152600401610696906122ec565b601280549115156101000261ff0019909216919091179055565b6000610b938484846113c6565b610be0843361083f85604051806060016040528060318152602001612598603191396001600160a01b038a1660009081526019602090815260408083203384529091529020549190611a83565b5060019392505050565b6000546001600160a01b03163314610c145760405162461bcd60e51b8152600401610696906122ec565b6001600160a01b03919091166000908152601c60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610c695760405162461bcd60e51b8152600401610696906122ec565b6001600160a01b0381166000908152601d602052604090205460ff16610cd15760405162461bcd60e51b815260206004820152601c60248201527f45524332303a204163636f756e74206973206e6f7420736e69706572000000006044820152606401610696565b6001600160a01b03166000908152601d60205260409020805460ff19169055565b6000546001600160a01b03163314610d1c5760405162461bcd60e51b8152600401610696906122ec565b610d4981610d4384610d306012600a61242b565b610d3d90620f424061243a565b90611221565b90611234565b600155610d626064610d436004610d306012600a61242b565b6001541115610dc65760405162461bcd60e51b815260206004820152602a60248201527f45524332303a2043616e206e6f7420736574206d61782077616c6c6574206d6f6044820152697265207468616e20342560b01b6064820152608401610696565b5050565b6000546001600160a01b03163314610df45760405162461bcd60e51b8152600401610696906122ec565b6001600160a01b0381166000908152601e602052604090205460ff16610e5c5760405162461bcd60e51b815260206004820152601960248201527f45524332303a204163636f756e74206973206e6f7420626f74000000000000006044820152606401610696565b6001600160a01b03166000908152601e60205260409020805460ff19169055565b6001600160a01b03166000908152601a602052604090205490565b6000546001600160a01b03163314610ec25760405162461bcd60e51b8152600401610696906122ec565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610f365760405162461bcd60e51b8152600401610696906122ec565b601280549115156401000000000264ff0000000019909216919091179055565b6000546001600160a01b03163314610f805760405162461bcd60e51b8152600401610696906122ec565b610fa430610f966000546001600160a01b031690565b610f9f30610e7d565b6113c6565b565b6000610fb33384846113c6565b50600192915050565b6000546001600160a01b03163314610fe65760405162461bcd60e51b8152600401610696906122ec565b6012805460ff1916911515919091179055565b6000546001600160a01b031633146110235760405162461bcd60e51b8152600401610696906122ec565b6001600160a01b03811661108d5760405162461bcd60e51b815260206004820152602b60248201527f45524332304f776e61626c653a206e6577206f776e657220697320746865207a60448201526a65726f206164647265737360a81b6064820152608401610696565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146111125760405162461bcd60e51b8152600401610696906122ec565b600080546040516001600160a01b039091169047908381818185875af1925050503d806000811461115f576040519150601f19603f3d011682016040523d82523d6000602084013e611164565b606091505b50505050565b6000546001600160a01b031633146111945760405162461bcd60e51b8152600401610696906122ec565b6001600160a01b0381166000908152601e602052604090205460ff16156111fd5760405162461bcd60e51b815260206004820152601c60248201527f45524332303a204163636f756e7420616c7265616479206164646564000000006044820152606401610696565b6001600160a01b03166000908152601e60205260409020805460ff19166001179055565b600061122d828461243a565b9392505050565b600061122d8284612476565b600061122d8284612498565b6001600160a01b0383166112725760405162461bcd60e51b81526004016106969061225e565b6001600160a01b0382166112985760405162461bcd60e51b8152600401610696906122a6565b6001600160a01b0383811660008181526019602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6018546113129030906001600160a01b03168461124c565b60185460125460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0365010000000000909204821660848201524260a482015291169063f305d71990839060c4016060604051808303818588803b15801561138657600080fd5b505af115801561139a573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906113bf91906124b0565b5050505050565b6001600160a01b03831661142a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610696565b6001600160a01b03821661148c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610696565b600081116114f55760405162461bcd60e51b815260206004820152603060248201527f45524332303a205472616e7366657220616d6f756e74206d757374206265206760448201526f726561746572207468616e207a65726f60801b6064820152608401610696565b6001600160a01b0383166000908152601e602052604090205460ff161561155e5760405162461bcd60e51b815260206004820181905260248201527f45524332303a2043616e206e6f74207472616e736665722066726f6d20424f546044820152606401610696565b60125462010000900460ff166115f9576001600160a01b0383166000908152601c602052604090205460ff16806115ad57506001600160a01b0382166000908152601c602052604090205460ff165b6115f95760405162461bcd60e51b815260206004820152601d60248201527f45524332303a2054726164696e67204973204e6f7420616374697665210000006044820152606401610696565b60125460ff610100909104161515600114801561162f57506001600160a01b0382166000908152601b602052604090205460ff16155b156116af5760015461164a8261164485610e7d565b90611240565b11156116af5760405162461bcd60e51b815260206004820152602e60248201527f45524332303a204d617820616d6f756e74206f6620746f6b656e7320666f722060448201526d1dd85b1b195d081c995858da195960921b6064820152608401610696565b60125460ff161561178b576000546001600160a01b038481169116148015906116e657506000546001600160a01b03838116911614155b80156116fa57506001600160a01b03821615155b801561171457506016546001600160a01b03838116911614155b801561172e57506017546001600160a01b03838116911614155b1561178b5760005b60028110156117895760105461174c9082611240565b431415611777576001600160a01b0383166000908152601d60205260409020805460ff191660011790555b80611781816124de565b915050611736565b505b60006117a460035460055461124090919063ffffffff16565b905060006117b130610e7d565b600254601254919250821015906301000000900460ff161580156117df5750601254640100000000900460ff165b801561180057506017546000906117fe906001600160a01b0316610e7d565b115b801561180c5750600083115b801561183157506001600160a01b0385166000908152601c602052604090205460ff16155b801561185657506001600160a01b0386166000908152601c602052604090205460ff16155b801561186f57506017546001600160a01b038681169116145b80156118785750805b1561188557611885611aaf565b6001600160a01b0386166000908152601c602052604090205460ff16806118c457506001600160a01b0385166000908152601c602052604090205460ff165b156118f05760006006819055600781905560088190556118e8906116448180611240565b600955611a70565b6017546001600160a01b038781169116141561192e57600a546006819055600b546007819055600c5460088190556118e89290916116449190611240565b6017546001600160a01b03868116911614156119c457600d546006819055600e546007819055600f54600881905561196c9290916116449190611240565b6009556001600160a01b0386166000908152601d602052604090205460ff16801561199957504260115410155b156119bf57605f60068190556000600781905560088190556118e8916116449082611240565b611a70565b6001600160a01b0386166000908152601d602052604090205460ff1615806119ee57504260115411155b611a605760405162461bcd60e51b815260206004820152603960248201527f45524332303a20536e69706572732063616e206e6f74207472616e736665722060448201527f74696c6c2070656e616c74792074696d65206973206f766572000000000000006064820152608401610696565b6000600681905560078190556008555b611a7b868686611cdf565b505050505050565b60008184841115611aa75760405162461bcd60e51b815260040161069691906120a7565b505050900390565b6012805463ff000000191663010000001790556000611acd30610e7d565b90506000611aee60055461164460045460035461124090919063ffffffff16565b90506000611b08600260055461123490919063ffffffff16565b90506000611b168483611e80565b905047611b2282611e8c565b6000611b2e4783611e80565b90506000611b4b86610d436003548561122190919063ffffffff16565b90506000611b6887610d436004548661122190919063ffffffff16565b90506000611b8082611b7a8686611e80565b90611e80565b600060038190556004819055600581905560135460405192935090916001600160a01b039091169085908381818185875af1925050503d8060008114611be2576040519150601f19603f3d011682016040523d82523d6000602084013e611be7565b606091505b50506014546040519192506001600160a01b0316908490600081818185875af1925050503d8060008114611c37576040519150601f19603f3d011682016040523d82523d6000602084013e611c3c565b606091505b50909150508115801590611c4f57508715155b15611c5e57611c5e88836112fa565b6706f05b59d3b20000471115611cc6576015546040516001600160a01b03909116904790600081818185875af1925050503d8060008114611cbb576040519150601f19603f3d011682016040523d82523d6000602084013e611cc0565b606091505b50909150505b50506012805463ff000000191690555050505050505050565b60095415611ddf576000611cf282611fed565b90506000611d008383611e80565b9050611d0b8261201b565b6001600160a01b0385166000908152601a602052604081208054859290611d339084906124f9565b90915550506001600160a01b0384166000908152601a602052604081208054839290611d60908490612498565b9091555050306000908152601a602052604081208054849290611d84908490612498565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611dd091815260200190565b60405180910390a35050505050565b6001600160a01b0383166000908152601a602052604081208054839290611e079084906124f9565b90915550506001600160a01b0382166000908152601a602052604081208054839290611e34908490612498565b92505081905550816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516112ed91815260200190565b600061122d82846124f9565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611ec157611ec1612510565b6001600160a01b03928316602091820292909201810191909152601854604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015611f1557600080fd5b505afa158015611f29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f4d9190612459565b81600181518110611f6057611f60612510565b6001600160a01b039283166020918202929092010152601854611f86913091168461124c565b60185460405163791ac94760e01b81526001600160a01b039091169063791ac94790611fbf908590600090869030904290600401612526565b600060405180830381600087803b158015611fd957600080fd5b505af1158015611a7b573d6000803e3d6000fd5b60006107246064610d4361201460085461164460075460065461124090919063ffffffff16565b8590611221565b612036600954610d436006548461122190919063ffffffff16565b600360008282546120479190612498565b90915550506009546007546120629190610d43908490611221565b600460008282546120739190612498565b909155505060095460085461208e9190610d43908490611221565b6005600082825461209f9190612498565b909155505050565b600060208083528351808285015260005b818110156120d4578581018301518582016040015282016120b8565b818111156120e6576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461211157600080fd5b50565b6000806040838503121561212757600080fd5b8235612132816120fc565b946020939093013593505050565b8035801515811461215057600080fd5b919050565b6000806040838503121561216857600080fd5b8235612173816120fc565b915061218160208401612140565b90509250929050565b60006020828403121561219c57600080fd5b61122d82612140565b6000602082840312156121b757600080fd5b813561122d816120fc565b6000806000606084860312156121d757600080fd5b83356121e2816120fc565b925060208401356121f2816120fc565b929592945050506040919091013590565b6000806040838503121561221657600080fd5b50508035926020909101359150565b6000806040838503121561223857600080fd5b8235612243816120fc565b91506020830135612253816120fc565b809150509250929050565b60208082526028908201527f45524332303a2043616e206e6f7420617070726f76652066726f6d207a65726f604082015267206164647265737360c01b606082015260800190565b60208082526026908201527f45524332303a2043616e206e6f7420617070726f766520746f207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526025908201527f45524332304f776e61626c653a2063616c6c6572206973206e6f74207468652060408201526437bbb732b960d91b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561238257816000190482111561236857612368612331565b8085161561237557918102915b93841c939080029061234c565b509250929050565b60008261239957506001610724565b816123a657506000610724565b81600181146123bc57600281146123c6576123e2565b6001915050610724565b60ff8411156123d7576123d7612331565b50506001821b610724565b5060208310610133831016604e8410600b8410161715612405575081810a610724565b61240f8383612347565b806000190482111561242357612423612331565b029392505050565b600061122d60ff84168361238a565b600081600019048311821515161561245457612454612331565b500290565b60006020828403121561246b57600080fd5b815161122d816120fc565b60008261249357634e487b7160e01b600052601260045260246000fd5b500490565b600082198211156124ab576124ab612331565b500190565b6000806000606084860312156124c557600080fd5b8351925060208401519150604084015190509250925092565b60006000198214156124f2576124f2612331565b5060010190565b60008282101561250b5761250b612331565b500390565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156125765784516001600160a01b031683529383019391830191600101612551565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a2043616e206e6f74207472616e736665722e20416d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212200bb973962bd130719515fc0a8d2001f05d0839eaf718b496fd42fd4b6ada78bc64736f6c63430008090033
Deployed Bytecode
0x6080604052600436106101f25760003560e01c80635fecd9261161010d578063958c2e52116100a0578063dd62ed3e1161006f578063dd62ed3e146105c2578063f2fde38b14610608578063f5648a4f14610628578063f99e36bc1461063d578063ffecf5161461065757600080fd5b8063958c2e521461053357806395d89b4114610553578063a9059cbb14610582578063d9d99c96146105a257600080fd5b8063783efbc7116100dc578063783efbc7146104a85780638183b3c8146104c85780638bcea939146104dd5780638da5cb5b1461051557600080fd5b80635fecd9261461043457806370a0823114610454578063715018a614610474578063745d032f1461048957600080fd5b80631a841d0211610185578063313ce56711610154578063313ce567146103a857806333251a0b146103c4578063353470be146103e457806345a119a31461040457600080fd5b80631a841d02146103225780631cae21081461035257806323b872dd146103685780632500ae8a1461038857600080fd5b806311b4181a116101c157806311b4181a146102b657806318160ddd146102cb5780631892a9e2146102e057806318b78fe11461030257600080fd5b806302fb0c5e146101fe57806305b723911461023357806306fdde0314610257578063095ea7b31461029657600080fd5b366101f957005b600080fd5b34801561020a57600080fd5b5060125461021e9062010000900460ff1681565b60405190151581526020015b60405180910390f35b34801561023f57600080fd5b5061024960105481565b60405190815260200161022a565b34801561026357600080fd5b5060408051808201909152600d81526c424c41434b484154205045504560981b60208201525b60405161022a91906120a7565b3480156102a257600080fd5b5061021e6102b1366004612114565b610677565b3480156102c257600080fd5b5061021e61072a565b3480156102d757600080fd5b50610249610acd565b3480156102ec57600080fd5b506103006102fb366004612155565b610aed565b005b34801561030e57600080fd5b5061030061031d36600461218a565b610b42565b34801561032e57600080fd5b5061021e61033d3660046121a5565b601d6020526000908152604090205460ff1681565b34801561035e57600080fd5b5061024960115481565b34801561037457600080fd5b5061021e6103833660046121c2565b610b86565b34801561039457600080fd5b506103006103a3366004612155565b610bea565b3480156103b457600080fd5b506040516012815260200161022a565b3480156103d057600080fd5b506103006103df3660046121a5565b610c3f565b3480156103f057600080fd5b506103006103ff366004612203565b610cf2565b34801561041057600080fd5b5061021e61041f3660046121a5565b601e6020526000908152604090205460ff1681565b34801561044057600080fd5b5061030061044f3660046121a5565b610dca565b34801561046057600080fd5b5061024961046f3660046121a5565b610e7d565b34801561048057600080fd5b50610300610e98565b34801561049557600080fd5b5060125461021e90610100900460ff1681565b3480156104b457600080fd5b506103006104c336600461218a565b610f0c565b3480156104d457600080fd5b50610300610f56565b3480156104e957600080fd5b506017546104fd906001600160a01b031681565b6040516001600160a01b03909116815260200161022a565b34801561052157600080fd5b506000546001600160a01b03166104fd565b34801561053f57600080fd5b506018546104fd906001600160a01b031681565b34801561055f57600080fd5b5060408051808201909152600681526542485045504560d01b6020820152610289565b34801561058e57600080fd5b5061021e61059d366004612114565b610fa6565b3480156105ae57600080fd5b506103006105bd36600461218a565b610fbc565b3480156105ce57600080fd5b506102496105dd366004612225565b6001600160a01b03918216600090815260196020908152604080832093909416825291909152205490565b34801561061457600080fd5b506103006106233660046121a5565b610ff9565b34801561063457600080fd5b506103006110e8565b34801561064957600080fd5b5060125461021e9060ff1681565b34801561066357600080fd5b506103006106723660046121a5565b61116a565b60003361069f5760405162461bcd60e51b81526004016106969061225e565b60405180910390fd5b6001600160a01b0383166106c55760405162461bcd60e51b8152600401610696906122a6565b3360008181526019602090815260408083206001600160a01b03881680855290835292819020869055518581529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35060015b92915050565b600080546001600160a01b031633146107555760405162461bcd60e51b8152600401610696906122ec565b60125462010000900460ff16156107ae5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a2054726164657320616c726561647920616374697665210000006044820152606401610696565b436010556107bf4262093a80611240565b601155601880546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556000819052601b6020527f737a8aa320b777139cfebe450e173d90b49df21bdde0d83dcfdff4abee7622ee805460ff1916600117905561084430826108326012600a61242b565b61083f90620f424061243a565b61124c565b806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561087d57600080fd5b505afa158015610891573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b59190612459565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156108fd57600080fd5b505afa158015610911573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109359190612459565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b15801561097d57600080fd5b505af1158015610991573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109b59190612459565b601780546001600160a01b0319166001600160a01b039290921691821790556000908152601b60205260409020805460ff1916600117905547610a515760405162461bcd60e51b815260206004820152602e60248201527f45524332303a204d757374206861766520455448206f6e20636f6e747261637460448201526d20746f20476f206163746976652160901b6064820152608401610696565b610a63610a5d30610e7d565b476112fa565b6016546012805465010000000000600160c81b031916650100000000006001600160a01b03938416810291909117918290559004166000908152601c60205260409020805460ff1916600117905550506012805464ff00ffffff1916640100010101179055600190565b6000610adb6012600a61242b565b610ae890620f424061243a565b905090565b6000546001600160a01b03163314610b175760405162461bcd60e51b8152600401610696906122ec565b6001600160a01b03919091166000908152601b60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610b6c5760405162461bcd60e51b8152600401610696906122ec565b601280549115156101000261ff0019909216919091179055565b6000610b938484846113c6565b610be0843361083f85604051806060016040528060318152602001612598603191396001600160a01b038a1660009081526019602090815260408083203384529091529020549190611a83565b5060019392505050565b6000546001600160a01b03163314610c145760405162461bcd60e51b8152600401610696906122ec565b6001600160a01b03919091166000908152601c60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610c695760405162461bcd60e51b8152600401610696906122ec565b6001600160a01b0381166000908152601d602052604090205460ff16610cd15760405162461bcd60e51b815260206004820152601c60248201527f45524332303a204163636f756e74206973206e6f7420736e69706572000000006044820152606401610696565b6001600160a01b03166000908152601d60205260409020805460ff19169055565b6000546001600160a01b03163314610d1c5760405162461bcd60e51b8152600401610696906122ec565b610d4981610d4384610d306012600a61242b565b610d3d90620f424061243a565b90611221565b90611234565b600155610d626064610d436004610d306012600a61242b565b6001541115610dc65760405162461bcd60e51b815260206004820152602a60248201527f45524332303a2043616e206e6f7420736574206d61782077616c6c6574206d6f6044820152697265207468616e20342560b01b6064820152608401610696565b5050565b6000546001600160a01b03163314610df45760405162461bcd60e51b8152600401610696906122ec565b6001600160a01b0381166000908152601e602052604090205460ff16610e5c5760405162461bcd60e51b815260206004820152601960248201527f45524332303a204163636f756e74206973206e6f7420626f74000000000000006044820152606401610696565b6001600160a01b03166000908152601e60205260409020805460ff19169055565b6001600160a01b03166000908152601a602052604090205490565b6000546001600160a01b03163314610ec25760405162461bcd60e51b8152600401610696906122ec565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610f365760405162461bcd60e51b8152600401610696906122ec565b601280549115156401000000000264ff0000000019909216919091179055565b6000546001600160a01b03163314610f805760405162461bcd60e51b8152600401610696906122ec565b610fa430610f966000546001600160a01b031690565b610f9f30610e7d565b6113c6565b565b6000610fb33384846113c6565b50600192915050565b6000546001600160a01b03163314610fe65760405162461bcd60e51b8152600401610696906122ec565b6012805460ff1916911515919091179055565b6000546001600160a01b031633146110235760405162461bcd60e51b8152600401610696906122ec565b6001600160a01b03811661108d5760405162461bcd60e51b815260206004820152602b60248201527f45524332304f776e61626c653a206e6577206f776e657220697320746865207a60448201526a65726f206164647265737360a81b6064820152608401610696565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146111125760405162461bcd60e51b8152600401610696906122ec565b600080546040516001600160a01b039091169047908381818185875af1925050503d806000811461115f576040519150601f19603f3d011682016040523d82523d6000602084013e611164565b606091505b50505050565b6000546001600160a01b031633146111945760405162461bcd60e51b8152600401610696906122ec565b6001600160a01b0381166000908152601e602052604090205460ff16156111fd5760405162461bcd60e51b815260206004820152601c60248201527f45524332303a204163636f756e7420616c7265616479206164646564000000006044820152606401610696565b6001600160a01b03166000908152601e60205260409020805460ff19166001179055565b600061122d828461243a565b9392505050565b600061122d8284612476565b600061122d8284612498565b6001600160a01b0383166112725760405162461bcd60e51b81526004016106969061225e565b6001600160a01b0382166112985760405162461bcd60e51b8152600401610696906122a6565b6001600160a01b0383811660008181526019602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6018546113129030906001600160a01b03168461124c565b60185460125460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0365010000000000909204821660848201524260a482015291169063f305d71990839060c4016060604051808303818588803b15801561138657600080fd5b505af115801561139a573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906113bf91906124b0565b5050505050565b6001600160a01b03831661142a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610696565b6001600160a01b03821661148c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610696565b600081116114f55760405162461bcd60e51b815260206004820152603060248201527f45524332303a205472616e7366657220616d6f756e74206d757374206265206760448201526f726561746572207468616e207a65726f60801b6064820152608401610696565b6001600160a01b0383166000908152601e602052604090205460ff161561155e5760405162461bcd60e51b815260206004820181905260248201527f45524332303a2043616e206e6f74207472616e736665722066726f6d20424f546044820152606401610696565b60125462010000900460ff166115f9576001600160a01b0383166000908152601c602052604090205460ff16806115ad57506001600160a01b0382166000908152601c602052604090205460ff165b6115f95760405162461bcd60e51b815260206004820152601d60248201527f45524332303a2054726164696e67204973204e6f7420616374697665210000006044820152606401610696565b60125460ff610100909104161515600114801561162f57506001600160a01b0382166000908152601b602052604090205460ff16155b156116af5760015461164a8261164485610e7d565b90611240565b11156116af5760405162461bcd60e51b815260206004820152602e60248201527f45524332303a204d617820616d6f756e74206f6620746f6b656e7320666f722060448201526d1dd85b1b195d081c995858da195960921b6064820152608401610696565b60125460ff161561178b576000546001600160a01b038481169116148015906116e657506000546001600160a01b03838116911614155b80156116fa57506001600160a01b03821615155b801561171457506016546001600160a01b03838116911614155b801561172e57506017546001600160a01b03838116911614155b1561178b5760005b60028110156117895760105461174c9082611240565b431415611777576001600160a01b0383166000908152601d60205260409020805460ff191660011790555b80611781816124de565b915050611736565b505b60006117a460035460055461124090919063ffffffff16565b905060006117b130610e7d565b600254601254919250821015906301000000900460ff161580156117df5750601254640100000000900460ff165b801561180057506017546000906117fe906001600160a01b0316610e7d565b115b801561180c5750600083115b801561183157506001600160a01b0385166000908152601c602052604090205460ff16155b801561185657506001600160a01b0386166000908152601c602052604090205460ff16155b801561186f57506017546001600160a01b038681169116145b80156118785750805b1561188557611885611aaf565b6001600160a01b0386166000908152601c602052604090205460ff16806118c457506001600160a01b0385166000908152601c602052604090205460ff165b156118f05760006006819055600781905560088190556118e8906116448180611240565b600955611a70565b6017546001600160a01b038781169116141561192e57600a546006819055600b546007819055600c5460088190556118e89290916116449190611240565b6017546001600160a01b03868116911614156119c457600d546006819055600e546007819055600f54600881905561196c9290916116449190611240565b6009556001600160a01b0386166000908152601d602052604090205460ff16801561199957504260115410155b156119bf57605f60068190556000600781905560088190556118e8916116449082611240565b611a70565b6001600160a01b0386166000908152601d602052604090205460ff1615806119ee57504260115411155b611a605760405162461bcd60e51b815260206004820152603960248201527f45524332303a20536e69706572732063616e206e6f74207472616e736665722060448201527f74696c6c2070656e616c74792074696d65206973206f766572000000000000006064820152608401610696565b6000600681905560078190556008555b611a7b868686611cdf565b505050505050565b60008184841115611aa75760405162461bcd60e51b815260040161069691906120a7565b505050900390565b6012805463ff000000191663010000001790556000611acd30610e7d565b90506000611aee60055461164460045460035461124090919063ffffffff16565b90506000611b08600260055461123490919063ffffffff16565b90506000611b168483611e80565b905047611b2282611e8c565b6000611b2e4783611e80565b90506000611b4b86610d436003548561122190919063ffffffff16565b90506000611b6887610d436004548661122190919063ffffffff16565b90506000611b8082611b7a8686611e80565b90611e80565b600060038190556004819055600581905560135460405192935090916001600160a01b039091169085908381818185875af1925050503d8060008114611be2576040519150601f19603f3d011682016040523d82523d6000602084013e611be7565b606091505b50506014546040519192506001600160a01b0316908490600081818185875af1925050503d8060008114611c37576040519150601f19603f3d011682016040523d82523d6000602084013e611c3c565b606091505b50909150508115801590611c4f57508715155b15611c5e57611c5e88836112fa565b6706f05b59d3b20000471115611cc6576015546040516001600160a01b03909116904790600081818185875af1925050503d8060008114611cbb576040519150601f19603f3d011682016040523d82523d6000602084013e611cc0565b606091505b50909150505b50506012805463ff000000191690555050505050505050565b60095415611ddf576000611cf282611fed565b90506000611d008383611e80565b9050611d0b8261201b565b6001600160a01b0385166000908152601a602052604081208054859290611d339084906124f9565b90915550506001600160a01b0384166000908152601a602052604081208054839290611d60908490612498565b9091555050306000908152601a602052604081208054849290611d84908490612498565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611dd091815260200190565b60405180910390a35050505050565b6001600160a01b0383166000908152601a602052604081208054839290611e079084906124f9565b90915550506001600160a01b0382166000908152601a602052604081208054839290611e34908490612498565b92505081905550816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516112ed91815260200190565b600061122d82846124f9565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611ec157611ec1612510565b6001600160a01b03928316602091820292909201810191909152601854604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015611f1557600080fd5b505afa158015611f29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f4d9190612459565b81600181518110611f6057611f60612510565b6001600160a01b039283166020918202929092010152601854611f86913091168461124c565b60185460405163791ac94760e01b81526001600160a01b039091169063791ac94790611fbf908590600090869030904290600401612526565b600060405180830381600087803b158015611fd957600080fd5b505af1158015611a7b573d6000803e3d6000fd5b60006107246064610d4361201460085461164460075460065461124090919063ffffffff16565b8590611221565b612036600954610d436006548461122190919063ffffffff16565b600360008282546120479190612498565b90915550506009546007546120629190610d43908490611221565b600460008282546120739190612498565b909155505060095460085461208e9190610d43908490611221565b6005600082825461209f9190612498565b909155505050565b600060208083528351808285015260005b818110156120d4578581018301518582016040015282016120b8565b818111156120e6576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461211157600080fd5b50565b6000806040838503121561212757600080fd5b8235612132816120fc565b946020939093013593505050565b8035801515811461215057600080fd5b919050565b6000806040838503121561216857600080fd5b8235612173816120fc565b915061218160208401612140565b90509250929050565b60006020828403121561219c57600080fd5b61122d82612140565b6000602082840312156121b757600080fd5b813561122d816120fc565b6000806000606084860312156121d757600080fd5b83356121e2816120fc565b925060208401356121f2816120fc565b929592945050506040919091013590565b6000806040838503121561221657600080fd5b50508035926020909101359150565b6000806040838503121561223857600080fd5b8235612243816120fc565b91506020830135612253816120fc565b809150509250929050565b60208082526028908201527f45524332303a2043616e206e6f7420617070726f76652066726f6d207a65726f604082015267206164647265737360c01b606082015260800190565b60208082526026908201527f45524332303a2043616e206e6f7420617070726f766520746f207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526025908201527f45524332304f776e61626c653a2063616c6c6572206973206e6f74207468652060408201526437bbb732b960d91b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561238257816000190482111561236857612368612331565b8085161561237557918102915b93841c939080029061234c565b509250929050565b60008261239957506001610724565b816123a657506000610724565b81600181146123bc57600281146123c6576123e2565b6001915050610724565b60ff8411156123d7576123d7612331565b50506001821b610724565b5060208310610133831016604e8410600b8410161715612405575081810a610724565b61240f8383612347565b806000190482111561242357612423612331565b029392505050565b600061122d60ff84168361238a565b600081600019048311821515161561245457612454612331565b500290565b60006020828403121561246b57600080fd5b815161122d816120fc565b60008261249357634e487b7160e01b600052601260045260246000fd5b500490565b600082198211156124ab576124ab612331565b500190565b6000806000606084860312156124c557600080fd5b8351925060208401519150604084015190509250925092565b60006000198214156124f2576124f2612331565b5060010190565b60008282101561250b5761250b612331565b500390565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156125765784516001600160a01b031683529383019391830191600101612551565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a2043616e206e6f74207472616e736665722e20416d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212200bb973962bd130719515fc0a8d2001f05d0839eaf718b496fd42fd4b6ada78bc64736f6c63430008090033
Deployed Bytecode Sourcemap
17529:14040:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18297:26;;;;;;;;;;-1:-1:-1;18297:26:0;;;;;;;;;;;;;;179:14:1;;172:22;154:41;;142:2;127:18;18297:26:0;;;;;;;;18160:24;;;;;;;;;;;;;;;;;;;352:25:1;;;340:2;325:18;18160:24:0;206:177:1;20516:94:0;;;;;;;;;;-1:-1:-1;20597:5:0;;;;;;;;;;;;-1:-1:-1;;;20597:5:0;;;;20516:94;;;;;;;:::i;21197:393::-;;;;;;;;;;-1:-1:-1;21197:393:0;;;;;:::i;:::-;;:::i;22483:957::-;;;;;;;;;;;;;:::i;20819:97::-;;;;;;;;;;;;;:::i;27537:145::-;;;;;;;;;;-1:-1:-1;27537:145:0;;;;;:::i;:::-;;:::i;:::-;;28045:105;;;;;;;;;;-1:-1:-1;28045:105:0;;;;;:::i;:::-;;:::i;18866:39::-;;;;;;;;;;-1:-1:-1;18866:39:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;18191:27;;;;;;;;;;;;;;;;22133:344;;;;;;;;;;-1:-1:-1;22133:344:0;;;;;:::i;:::-;;:::i;27392:139::-;;;;;;;;;;-1:-1:-1;27392:139:0;;;;;:::i;:::-;;:::i;20720:93::-;;;;;;;;;;-1:-1:-1;20720:93:0;;19188:2;2971:36:1;;2959:2;2944:18;20720:93:0;2829:184:1;27217:169:0;;;;;;;;;;-1:-1:-1;27217:169:0;;;;;:::i;:::-;;:::i;27688:245::-;;;;;;;;;;-1:-1:-1;27688:245:0;;;;;:::i;:::-;;:::i;18912:36::-;;;;;;;;;;-1:-1:-1;18912:36:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;27057:157;;;;;;;;;;-1:-1:-1;27057:157:0;;;;;:::i;:::-;;:::i;20922:118::-;;;;;;;;;;-1:-1:-1;20922:118:0;;;;;:::i;:::-;;:::i;12478:148::-;;;;;;;;;;;;;:::i;18259:31::-;;;;;;;;;;-1:-1:-1;18259:31:0;;;;;;;;;;;28156:112;;;;;;;;;;-1:-1:-1;28156:112:0;;;;;:::i;:::-;;:::i;26756:135::-;;;;;;;;;;;;;:::i;18564:24::-;;;;;;;;;;-1:-1:-1;18564:24:0;;;;-1:-1:-1;;;;;18564:24:0;;;;;;-1:-1:-1;;;;;3435:32:1;;;3417:51;;3405:2;3390:18;18564:24:0;3271:203:1;12254:87:0;;;;;;;;;;-1:-1:-1;12300:7:0;12327:6;-1:-1:-1;;;;;12327:6:0;12254:87;;18595:37;;;;;;;;;;-1:-1:-1;18595:37:0;;;;-1:-1:-1;;;;;18595:37:0;;;20616:98;;;;;;;;;;-1:-1:-1;20699:7:0;;;;;;;;;;;;-1:-1:-1;;;20699:7:0;;;;20616:98;;21951:176;;;;;;;;;;-1:-1:-1;21951:176:0;;;;;:::i;:::-;;:::i;27939:100::-;;;;;;;;;;-1:-1:-1;27939:100:0;;;;;:::i;:::-;;:::i;21046:145::-;;;;;;;;;;-1:-1:-1;21046:145:0;;;;;:::i;:::-;-1:-1:-1;;;;;21156:18:0;;;21129:7;21156:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;21046:145;12632:249;;;;;;;;;;-1:-1:-1;12632:249:0;;;;;:::i;:::-;;:::i;26593:157::-;;;;;;;;;;;;;:::i;18225:27::-;;;;;;;;;;-1:-1:-1;18225:27:0;;;;;;;;26897:157;;;;;;;;;;-1:-1:-1;26897:157:0;;;;;:::i;:::-;;:::i;21197:393::-;21272:4;11913:10;21289:79;;;;-1:-1:-1;;;21289:79:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;21387:21:0;;21379:72;;;;-1:-1:-1;;;21379:72:0;;;;;;;:::i;:::-;11913:10;21462:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;21462:34:0;;;;;;;;;;;;:43;;;21521:39;352:25:1;;;21462:34:0;;11913:10;21521:39;;325:18:1;21521:39:0;;;;;;;-1:-1:-1;21578:4:0;21197:393;;;;;:::o;22483:957::-;22527:4;12327:6;;-1:-1:-1;;;;;12327:6:0;11913:10;12387:23;12379:73;;;;-1:-1:-1;;;12379:73:0;;;;;;;:::i;:::-;22552:6:::1;::::0;;;::::1;;;22551:7;22543:49;;;::::0;-1:-1:-1;;;22543:49:0;;5530:2:1;22543:49:0::1;::::0;::::1;5512:21:1::0;5569:2;5549:18;;;5542:30;5608:31;5588:18;;;5581:59;5657:18;;22543:49:0::1;5328:353:1::0;22543:49:0::1;22615:12;22603:9;:24:::0;22653:27:::1;:15;22673:6;22653:19;:27::i;:::-;22638:12;:42:::0;22798:11:::1;:26:::0;;-1:-1:-1;;;;;;22798:26:0::1;22744:42;22798:26:::0;;::::1;::::0;;;22691:31:::1;22835:33:::0;;;:11:::1;:33;::::0;;:40;;-1:-1:-1;;22835:40:0::1;22798:26:::0;22835:40:::1;::::0;;22886:61:::1;22910:4;22744:42:::0;19238:12:::1;19188:2;19238;:12;:::i;:::-;19232:18;::::0;:3:::1;:18;:::i;:::-;22886:15;:61::i;:::-;22988:12;-1:-1:-1::0;;;;;22988:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;22970:52:0::1;;23031:4;23038:12;-1:-1:-1::0;;;;;23038:17:0::1;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22970:88;::::0;-1:-1:-1;;;;;;22970:88:0::1;::::0;;;;;;-1:-1:-1;;;;;7860:15:1;;;22970:88:0::1;::::0;::::1;7842:34:1::0;7912:15;;7892:18;;;7885:43;7777:18;;22970:88:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22958:9;:100:::0;;-1:-1:-1;;;;;;22958:100:0::1;-1:-1:-1::0;;;;;22958:100:0;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;23069:31:0;;;:11:::1;:31;::::0;;;;:38;;-1:-1:-1;;23069:38:0::1;-1:-1:-1::0;23069:38:0::1;::::0;;23126:21:::1;23118:84;;;::::0;-1:-1:-1;;;23118:84:0;;8141:2:1;23118:84:0::1;::::0;::::1;8123:21:1::0;8180:2;8160:18;;;8153:30;8219:34;8199:18;;;8192:62;-1:-1:-1;;;8270:18:1;;;8263:44;8324:19;;23118:84:0::1;7939:410:1::0;23118:84:0::1;23213:61;23226:24;23244:4;23226:9;:24::i;:::-;23252:21;23213:12;:61::i;:::-;23305:4;::::0;26495:16;:37;;-1:-1:-1;;;;;;26495:37:0;;-1:-1:-1;;;;;23305:4:0;;::::1;26495:37:::0;;;;;;;;;;26555:16;;;-1:-1:-1;26543:29:0;;;:11;:29;;;;;:36;;-1:-1:-1;;26543:36:0;-1:-1:-1;26543:36:0;;;-1:-1:-1;;23321:11:0::1;:18:::0;;-1:-1:-1;;23397:13:0;;;;;-1:-1:-1;;22483:957:0:o;20819:97::-;20874:7;19238:12;19188:2;19238;:12;:::i;:::-;19232:18;;:3;:18;:::i;:::-;20894:14;;20819:97;:::o;27537:145::-;12300:7;12327:6;-1:-1:-1;;;;;12327:6:0;11913:10;12387:23;12379:73;;;;-1:-1:-1;;;12379:73:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;27631:29:0;;;::::1;;::::0;;;:11:::1;:29;::::0;;;;:43;;-1:-1:-1;;27631:43:0::1;::::0;::::1;;::::0;;;::::1;::::0;;27537:145::o;28045:105::-;12300:7;12327:6;-1:-1:-1;;;;;12327:6:0;11913:10;12387:23;12379:73;;;;-1:-1:-1;;;12379:73:0;;;;;;;:::i;:::-;28117:11:::1;:25:::0;;;::::1;;;;-1:-1:-1::0;;28117:25:0;;::::1;::::0;;;::::1;::::0;;28045:105::o;22133:344::-;22231:4;22248:43;22265:6;22273:9;22284:6;22248:16;:43::i;:::-;22302:145;22318:6;11913:10;22348:98;22386:6;22348:98;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22348:19:0;;;;;;:11;:19;;;;;;;;11913:10;22348:33;;;;;;;;;;:37;:98::i;22302:145::-;-1:-1:-1;22465:4:0;22133:344;;;;;:::o;27392:139::-;12300:7;12327:6;-1:-1:-1;;;;;12327:6:0;11913:10;12387:23;12379:73;;;;-1:-1:-1;;;12379:73:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;27480:29:0;;;::::1;;::::0;;;:11:::1;:29;::::0;;;;:43;;-1:-1:-1;;27480:43:0::1;::::0;::::1;;::::0;;;::::1;::::0;;27392:139::o;27217:169::-;12300:7;12327:6;-1:-1:-1;;;;;12327:6:0;11913:10;12387:23;12379:73;;;;-1:-1:-1;;;12379:73:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;27294:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;::::1;;27286:57;;;::::0;-1:-1:-1;;;27286:57:0;;8556:2:1;27286:57:0::1;::::0;::::1;8538:21:1::0;8595:2;8575:18;;;8568:30;8634;8614:18;;;8607:58;8682:18;;27286:57:0::1;8354:352:1::0;27286:57:0::1;-1:-1:-1::0;;;;;27354:16:0::1;27373:5;27354:16:::0;;;:7:::1;:16;::::0;;;;:24;;-1:-1:-1;;27354:24:0::1;::::0;;27217:169::o;27688:245::-;12300:7;12327:6;-1:-1:-1;;;;;12327:6:0;11913:10;12387:23;12379:73;;;;-1:-1:-1;;;12379:73:0;;;;;;;:::i;:::-;27790:33:::1;27815:7:::0;27790:20:::1;27802:7:::0;19238:12:::1;19188:2;19238;:12;:::i;:::-;19232:18;::::0;:3:::1;:18;:::i;:::-;27790:11:::0;::::1;:20::i;:::-;:24:::0;::::1;:33::i;:::-;27777:10;:46:::0;27855:23:::1;27874:3;27855:14;27867:1;19238:12;19188:2;19238;:12;:::i;27855:23::-;27842:10;;:36;;27834:91;;;::::0;-1:-1:-1;;;27834:91:0;;8913:2:1;27834:91:0::1;::::0;::::1;8895:21:1::0;8952:2;8932:18;;;8925:30;8991:34;8971:18;;;8964:62;-1:-1:-1;;;9042:18:1;;;9035:40;9092:19;;27834:91:0::1;8711:406:1::0;27834:91:0::1;27688:245:::0;;:::o;27057:157::-;12300:7;12327:6;-1:-1:-1;;;;;12327:6:0;11913:10;12387:23;12379:73;;;;-1:-1:-1;;;12379:73:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;27131:13:0;::::1;;::::0;;;:4:::1;:13;::::0;;;;;::::1;;27123:51;;;::::0;-1:-1:-1;;;27123:51:0;;9324:2:1;27123:51:0::1;::::0;::::1;9306:21:1::0;9363:2;9343:18;;;9336:30;9402:27;9382:18;;;9375:55;9447:18;;27123:51:0::1;9122:349:1::0;27123:51:0::1;-1:-1:-1::0;;;;;27185:13:0::1;27201:5;27185:13:::0;;;:4:::1;:13;::::0;;;;:21;;-1:-1:-1;;27185:21:0::1;::::0;;27057:157::o;20922:118::-;-1:-1:-1;;;;;21015:17:0;20988:7;21015:17;;;:8;:17;;;;;;;20922:118::o;12478:148::-;12300:7;12327:6;-1:-1:-1;;;;;12327:6:0;11913:10;12387:23;12379:73;;;;-1:-1:-1;;;12379:73:0;;;;;;;:::i;:::-;12585:1:::1;12569:6:::0;;12548:40:::1;::::0;-1:-1:-1;;;;;12569:6:0;;::::1;::::0;12548:40:::1;::::0;12585:1;;12548:40:::1;12616:1;12599:19:::0;;-1:-1:-1;;;;;;12599:19:0::1;::::0;;12478:148::o;28156:112::-;12300:7;12327:6;-1:-1:-1;;;;;12327:6:0;11913:10;12387:23;12379:73;;;;-1:-1:-1;;;12379:73:0;;;;;;;:::i;:::-;28240:4:::1;:18:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;28240:18:0;;::::1;::::0;;;::::1;::::0;;28156:112::o;26756:135::-;12300:7;12327:6;-1:-1:-1;;;;;12327:6:0;11913:10;12387:23;12379:73;;;;-1:-1:-1;;;12379:73:0;;;;;;;:::i;:::-;26817:66:::1;26842:4;26849:7;12300::::0;12327:6;-1:-1:-1;;;;;12327:6:0;;12254:87;26849:7:::1;26858:24;26876:4;26858:9;:24::i;:::-;26817:16;:66::i;:::-;26756:135::o:0;21951:176::-;22031:4;22048:49;11913:10;22079:9;22090:6;22048:16;:49::i;:::-;-1:-1:-1;22115:4:0;21951:176;;;;:::o;27939:100::-;12300:7;12327:6;-1:-1:-1;;;;;12327:6:0;11913:10;12387:23;12379:73;;;;-1:-1:-1;;;12379:73:0;;;;;;;:::i;:::-;28010:7:::1;:21:::0;;-1:-1:-1;;28010:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;27939:100::o;12632:249::-;12300:7;12327:6;-1:-1:-1;;;;;12327:6:0;11913:10;12387:23;12379:73;;;;-1:-1:-1;;;12379:73:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12721:22:0;::::1;12713:78;;;::::0;-1:-1:-1;;;12713:78:0;;9678:2:1;12713:78:0::1;::::0;::::1;9660:21:1::0;9717:2;9697:18;;;9690:30;9756:34;9736:18;;;9729:62;-1:-1:-1;;;9807:18:1;;;9800:41;9858:19;;12713:78:0::1;9476:407:1::0;12713:78:0::1;12828:6;::::0;;12807:38:::1;::::0;-1:-1:-1;;;;;12807:38:0;;::::1;::::0;12828:6;::::1;::::0;12807:38:::1;::::0;::::1;12856:6;:17:::0;;-1:-1:-1;;;;;;12856:17:0::1;-1:-1:-1::0;;;;;12856:17:0;;;::::1;::::0;;;::::1;::::0;;12632:249::o;26593:157::-;12300:7;12327:6;-1:-1:-1;;;;;12327:6:0;11913:10;12387:23;12379:73;;;;-1:-1:-1;;;12379:73:0;;;;;;;:::i;:::-;26651:12:::1;12327:6:::0;;26687:55:::1;::::0;-1:-1:-1;;;;;12327:6:0;;;;26716:21:::1;::::0;26651:12;26687:55;26651:12;26687:55;26716:21;12327:6;26687:55:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;26593:157:0:o;26897:::-;12300:7;12327:6;-1:-1:-1;;;;;12327:6:0;11913:10;12387:23;12379:73;;;;-1:-1:-1;;;12379:73:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;26969:13:0;::::1;;::::0;;;:4:::1;:13;::::0;;;;;::::1;;26968:14;26960:55;;;::::0;-1:-1:-1;;;26960:55:0;;10300:2:1;26960:55:0::1;::::0;::::1;10282:21:1::0;10339:2;10319:18;;;10312:30;10378;10358:18;;;10351:58;10426:18;;26960:55:0::1;10098:352:1::0;26960:55:0::1;-1:-1:-1::0;;;;;27026:13:0::1;;::::0;;;:4:::1;:13;::::0;;;;:20;;-1:-1:-1;;27026:20:0::1;27042:4;27026:20;::::0;;26897:157::o;10056:98::-;10114:7;10141:5;10145:1;10141;:5;:::i;:::-;10134:12;10056:98;-1:-1:-1;;;10056:98:0:o;10160:::-;10218:7;10245:5;10249:1;10245;:5;:::i;9848:98::-;9906:7;9933:5;9937:1;9933;:5;:::i;21596:349::-;-1:-1:-1;;;;;21695:19:0;;21687:72;;;;-1:-1:-1;;;21687:72:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21778:21:0;;21770:72;;;;-1:-1:-1;;;21770:72:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21853:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;21905:32;;352:25:1;;;21905:32:0;;325:18:1;21905:32:0;;;;;;;;21596:349;;;:::o;30097:369::-;30218:11;;30179:65;;30203:4;;-1:-1:-1;;;;;30218:11:0;30232;30179:15;:65::i;:::-;30255:11;;30401:16;;30255:203;;-1:-1:-1;;;30255:203:0;;30323:4;30255:203;;;11159:34:1;11209:18;;;11202:34;;;-1:-1:-1;11252:18:1;;;11245:34;;;11295:18;;;11288:34;-1:-1:-1;;;;;30401:16:0;;;;;;11338:19:1;;;11331:44;30432:15:0;11391:19:1;;;11384:35;30255:11:0;;;:27;;30290:9;;11093:19:1;;30255:203:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;30097:369;;:::o;23446:2975::-;-1:-1:-1;;;;;23542:18:0;;23534:68;;;;-1:-1:-1;;;23534:68:0;;11943:2:1;23534:68:0;;;11925:21:1;11982:2;11962:18;;;11955:30;12021:34;12001:18;;;11994:62;-1:-1:-1;;;12072:18:1;;;12065:35;12117:19;;23534:68:0;11741:401:1;23534:68:0;-1:-1:-1;;;;;23621:16:0;;23613:64;;;;-1:-1:-1;;;23613:64:0;;12349:2:1;23613:64:0;;;12331:21:1;12388:2;12368:18;;;12361:30;12427:34;12407:18;;;12400:62;-1:-1:-1;;;12478:18:1;;;12471:33;12521:19;;23613:64:0;12147:399:1;23613:64:0;23705:1;23696:6;:10;23688:71;;;;-1:-1:-1;;;23688:71:0;;12753:2:1;23688:71:0;;;12735:21:1;12792:2;12772:18;;;12765:30;12831:34;12811:18;;;12804:62;-1:-1:-1;;;12882:18:1;;;12875:46;12938:19;;23688:71:0;12551:412:1;23688:71:0;-1:-1:-1;;;;;23779:10:0;;;;;;:4;:10;;;;;;;;23778:11;23770:56;;;;-1:-1:-1;;;23770:56:0;;13170:2:1;23770:56:0;;;13152:21:1;;;13189:18;;;13182:30;13248:34;13228:18;;;13221:62;13300:18;;23770:56:0;12968:356:1;23770:56:0;23841:6;;;;;;;23837:116;;-1:-1:-1;;;;;23871:17:0;;;;;;:11;:17;;;;;;;;;:36;;-1:-1:-1;;;;;;23892:15:0;;;;;;:11;:15;;;;;;;;23871:36;23863:78;;;;-1:-1:-1;;;23863:78:0;;13531:2:1;23863:78:0;;;13513:21:1;13570:2;13550:18;;;13543:30;13609:31;13589:18;;;13582:59;13658:18;;23863:78:0;13329:353:1;23863:78:0;23967:11;;;;;;;;:19;;:11;:19;:40;;;;-1:-1:-1;;;;;;23992:15:0;;;;;;:11;:15;;;;;;;;23990:17;23967:40;23963:171;;;24061:10;;24032:25;24050:6;24032:13;24042:2;24032:9;:13::i;:::-;:17;;:25::i;:::-;:39;;24024:98;;;;-1:-1:-1;;;24024:98:0;;13889:2:1;24024:98:0;;;13871:21:1;13928:2;13908:18;;;13901:30;13967:34;13947:18;;;13940:62;-1:-1:-1;;;14018:18:1;;;14011:44;14072:19;;24024:98:0;13687:410:1;24024:98:0;24147:7;;;;24144:339;;;12300:7;12327:6;-1:-1:-1;;;;;24174:15:0;;;12327:6;;24174:15;;;;:32;;-1:-1:-1;12300:7:0;12327:6;-1:-1:-1;;;;;24193:13:0;;;12327:6;;24193:13;;24174:32;:52;;;;-1:-1:-1;;;;;;24210:16:0;;;;24174:52;:66;;;;-1:-1:-1;24236:4:0;;-1:-1:-1;;;;;24230:10:0;;;24236:4;;24230:10;;24174:66;:85;;;;-1:-1:-1;24250:9:0;;-1:-1:-1;;;;;24244:15:0;;;24250:9;;24244:15;;24174:85;24170:302;;;24285:6;24280:177;24301:1;24297;:5;24280:177;;;24351:9;;:16;;24365:1;24351:13;:16::i;:::-;24335:12;:32;24332:106;;;-1:-1:-1;;;;;24396:11:0;;;;;;:7;:11;;;;;:18;;-1:-1:-1;;24396:18:0;24410:4;24396:18;;;24332:106;24304:3;;;;:::i;:::-;;;;24280:177;;;;24170:302;24502:25;24530:36;24550:15;;24530;;:19;;:36;;;;:::i;:::-;24502:64;;24577:28;24608:24;24626:4;24608:9;:24::i;:::-;24698:6;;24720:4;;24577:55;;-1:-1:-1;24674:30:0;;;;24720:4;;;;;24719:5;:26;;;;-1:-1:-1;24741:4:0;;;;;;;24719:26;:67;;;;-1:-1:-1;24772:9:0;;24785:1;;24762:20;;-1:-1:-1;;;;;24772:9:0;24762;:20::i;:::-;:24;24719:67;:105;;;;;24823:1;24803:17;:21;24719:105;:138;;;;-1:-1:-1;;;;;;24842:15:0;;;;;;:11;:15;;;;;;;;24841:16;24719:138;:173;;;;-1:-1:-1;;;;;;24875:17:0;;;;;;:11;:17;;;;;;;;24874:18;24719:173;:205;;;;-1:-1:-1;24915:9:0;;-1:-1:-1;;;;;24909:15:0;;;24915:9;;24909:15;24719:205;:245;;;;;24941:23;24719:245;24715:296;;;24981:14;:12;:14::i;:::-;-1:-1:-1;;;;;25025:17:0;;;;;;:11;:17;;;;;;;;;:36;;-1:-1:-1;;;;;;25046:15:0;;;;;;:11;:15;;;;;;;;25025:36;25021:1351;;;25093:1;25078:12;:16;;;25109:11;:15;;;25139:12;:16;;;25181:47;;:29;25093:1;;25181:16;:29::i;:47::-;25170:8;:58;25021:1351;;;25273:9;;-1:-1:-1;;;;;25265:17:0;;;25273:9;;25265:17;25261:1100;;;25318:15;;25303:12;:30;;;25366:14;;25352:11;:28;;;25414:15;;25399:12;:30;;;25459:56;;25414:15;;25459:35;;25318:15;25459:19;:35::i;25261:1100::-;25546:9;;-1:-1:-1;;;;;25540:15:0;;;25546:9;;25540:15;25536:825;;;25591:16;;25576:12;:31;;;25640:15;;-1:-1:-1;25626:29:0;;;25689:16;;25674:12;:31;;;25735:59;;25689:16;;25735:37;;25591:16;25735:20;:37::i;:59::-;25724:8;:70;-1:-1:-1;;;;;25816:13:0;;;;;;:7;:13;;;;;;;;:48;;;;;25849:15;25833:12;;:31;;25816:48;25813:270;;;25903:2;25888:12;:17;;;25942:1;25928:11;:15;;;25966:12;:16;;;26016:47;;:29;;25942:1;26016:16;:29::i;25813:270::-;25536:825;;;-1:-1:-1;;;;;26131:13:0;;;;;;:7;:13;;;;;;;;26130:14;;:49;;;26164:15;26148:12;;:31;;26130:49;26122:119;;;;-1:-1:-1;;;26122:119:0;;14444:2:1;26122:119:0;;;14426:21:1;14483:2;14463:18;;;14456:30;14522:34;14502:18;;;14495:62;14593:27;14573:18;;;14566:55;14638:19;;26122:119:0;14242:421:1;26122:119:0;26275:1;26260:12;:16;;;26295:11;:15;;;26329:12;:16;25536:825;26382:31;26396:4;26402:2;26406:6;26382:13;:31::i;:::-;23523:2898;;;23446:2975;;;:::o;10368:206::-;10454:7;10515:12;10507:6;;;;10499:29;;;;-1:-1:-1;;;10499:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;10550:5:0;;;10368:206::o;28274:1344::-;18989:4;:11;;-1:-1:-1;;18989:11:0;;;;;;28356:24:::1;28374:4;28356:9;:24::i;:::-;28330:50;;28391:25;28419:56;28459:15;;28419:35;28439:14;;28419:15;;:19;;:35;;;;:::i;:56::-;28391:84;;28486:27;28516:22;28536:1;28516:15;;:19;;:22;;;;:::i;:::-;28486:52:::0;-1:-1:-1;28549:26:0::1;28578:40;:15:::0;28486:52;28578:19:::1;:40::i;:::-;28549:69:::0;-1:-1:-1;28657:21:0::1;28689:36;28549:69:::0;28689:16:::1;:36::i;:::-;28737:18;28758:44;:21;28784:17:::0;28758:25:::1;:44::i;:::-;28737:65;;28813:23;28839:54;28875:17;28839:31;28854:15;;28839:10;:14;;:31;;;;:::i;:54::-;28813:80;;28904:22;28929:53;28964:17;28929:30;28944:14;;28929:10;:14;;:30;;;;:::i;:53::-;28904:78:::0;-1:-1:-1;28993:23:0::1;29019:51;28904:78:::0;29019:31:::1;:10:::0;29034:15;29019:14:::1;:31::i;:::-;:35:::0;::::1;:51::i;:::-;29099:1;29081:15;:19:::0;;;29111:14:::1;:18:::0;;;29140:15:::1;:19:::0;;;29196:16:::1;::::0;29188:58:::1;::::0;28993:77;;-1:-1:-1;29099:1:0;;-1:-1:-1;;;;;29196:16:0;;::::1;::::0;29226:15;;29099:1;29188:58;29099:1;29188:58;29226:15;29196:16;29188:58:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;29278:15:0::1;::::0;29270:56:::1;::::0;29170:76;;-1:-1:-1;;;;;;29278:15:0::1;::::0;29307:14;;29270:56:::1;::::0;;;29307:14;29278:15;29270:56:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;29257:69:0;;-1:-1:-1;;29340:20:0;;;::::1;::::0;:48:::1;;-1:-1:-1::0;29364:24:0;;::::1;29340:48;29337:130;;;29405:50;29418:19;29439:15;29405:12;:50::i;:::-;29504:8;29480:21;:32;29477:134;;;29549:10;::::0;29541:58:::1;::::0;-1:-1:-1;;;;;29549:10:0;;::::1;::::0;29573:21:::1;::::0;29541:58:::1;::::0;;;29573:21;29549:10;29541:58:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;29528:71:0;;-1:-1:-1;;29477:134:0::1;-1:-1:-1::0;;19023:4:0;:12;;-1:-1:-1;;19023:12:0;;;-1:-1:-1;;;;;;;;28274:1344:0:o;30919:647::-;31014:8;;:13;31011:548;;31043:17;31063:20;31076:6;31063:12;:20::i;:::-;31043:40;-1:-1:-1;31098:22:0;31123:21;:6;31043:40;31123:10;:21::i;:::-;31098:46;;31159:25;31174:9;31159:14;:25::i;:::-;-1:-1:-1;;;;;31199:16:0;;;;;;:8;:16;;;;;:26;;31219:6;;31199:16;:26;;31219:6;;31199:26;:::i;:::-;;;;-1:-1:-1;;;;;;;31240:19:0;;;;;;:8;:19;;;;;:37;;31263:14;;31240:19;:37;;31263:14;;31240:37;:::i;:::-;;;;-1:-1:-1;;31309:4:0;31292:23;;;;:8;:23;;;;;:36;;31319:9;;31292:23;:36;;31319:9;;31292:36;:::i;:::-;;;;;;;;31365:9;-1:-1:-1;;;;;31348:43:0;31357:6;-1:-1:-1;;;;;31348:43:0;;31376:14;31348:43;;;;352:25:1;;340:2;325:18;;206:177;31348:43:0;;;;;;;;31028:375;;30919:647;;;:::o;31011:548::-;-1:-1:-1;;;;;31422:16:0;;;;;;:8;:16;;;;;:26;;31442:6;;31422:16;:26;;31442:6;;31422:26;:::i;:::-;;;;-1:-1:-1;;;;;;;31463:19:0;;;;;;:8;:19;;;;;:29;;31486:6;;31463:19;:29;;31486:6;;31463:29;:::i;:::-;;;;;;;;31529:9;-1:-1:-1;;;;;31512:35:0;31521:6;-1:-1:-1;;;;;31512:35:0;;31540:6;31512:35;;;;352:25:1;;340:2;325:18;;206:177;9952:98:0;10010:7;10037:5;10041:1;10037;:5;:::i;29624:467::-;29715:16;;;29729:1;29715:16;;;;;;;;29691:21;;29715:16;;;;;;;;;;-1:-1:-1;29715:16:0;29691:40;;29760:4;29742;29747:1;29742:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;29742:23:0;;;:7;;;;;;;;;;:23;;;;29786:11;;:18;;;-1:-1:-1;;;29786:18:0;;;;:11;;;;;:16;;:18;;;;;29742:7;;29786:18;;;;;:11;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;29776:4;29781:1;29776:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;29776:28:0;;;:7;;;;;;;;;:28;29854:11;;29815:65;;29839:4;;29854:11;29868;29815:15;:65::i;:::-;29891:11;;:192;;-1:-1:-1;;;29891:192:0;;-1:-1:-1;;;;;29891:11:0;;;;:62;;:192;;29968:11;;29891;;30010:4;;30037;;30057:15;;29891:192;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30472:164;30533:7;30560:68;30624:3;30560:59;30571:47;30605:12;;30571:29;30588:11;;30571:12;;:16;;:29;;;;:::i;:47::-;30560:6;;:10;:59::i;30642:271::-;30724:41;30756:8;;30724:27;30738:12;;30724:9;:13;;:27;;;;:::i;:41::-;30705:15;;:60;;;;;;;:::i;:::-;;;;-1:-1:-1;;30825:8:0;;30808:11;;30794:40;;30825:8;30794:26;;:9;;:13;:26::i;:40::-;30776:14;;:58;;;;;;;:::i;:::-;;;;-1:-1:-1;;30896:8:0;;30878:12;;30864:41;;30896:8;30864:27;;:9;;:13;:27::i;:41::-;30845:15;;:60;;;;;;;:::i;:::-;;;;-1:-1:-1;;;30642:271:0:o;388:597:1:-;500:4;529:2;558;547:9;540:21;590:6;584:13;633:6;628:2;617:9;613:18;606:34;658:1;668:140;682:6;679:1;676:13;668:140;;;777:14;;;773:23;;767:30;743:17;;;762:2;739:26;732:66;697:10;;668:140;;;826:6;823:1;820:13;817:91;;;896:1;891:2;882:6;871:9;867:22;863:31;856:42;817:91;-1:-1:-1;969:2:1;948:15;-1:-1:-1;;944:29:1;929:45;;;;976:2;925:54;;388:597;-1:-1:-1;;;388:597:1:o;990:131::-;-1:-1:-1;;;;;1065:31:1;;1055:42;;1045:70;;1111:1;1108;1101:12;1045:70;990:131;:::o;1126:315::-;1194:6;1202;1255:2;1243:9;1234:7;1230:23;1226:32;1223:52;;;1271:1;1268;1261:12;1223:52;1310:9;1297:23;1329:31;1354:5;1329:31;:::i;:::-;1379:5;1431:2;1416:18;;;;1403:32;;-1:-1:-1;;;1126:315:1:o;1446:160::-;1511:20;;1567:13;;1560:21;1550:32;;1540:60;;1596:1;1593;1586:12;1540:60;1446:160;;;:::o;1611:315::-;1676:6;1684;1737:2;1725:9;1716:7;1712:23;1708:32;1705:52;;;1753:1;1750;1743:12;1705:52;1792:9;1779:23;1811:31;1836:5;1811:31;:::i;:::-;1861:5;-1:-1:-1;1885:35:1;1916:2;1901:18;;1885:35;:::i;:::-;1875:45;;1611:315;;;;;:::o;1931:180::-;1987:6;2040:2;2028:9;2019:7;2015:23;2011:32;2008:52;;;2056:1;2053;2046:12;2008:52;2079:26;2095:9;2079:26;:::i;2116:247::-;2175:6;2228:2;2216:9;2207:7;2203:23;2199:32;2196:52;;;2244:1;2241;2234:12;2196:52;2283:9;2270:23;2302:31;2327:5;2302:31;:::i;2368:456::-;2445:6;2453;2461;2514:2;2502:9;2493:7;2489:23;2485:32;2482:52;;;2530:1;2527;2520:12;2482:52;2569:9;2556:23;2588:31;2613:5;2588:31;:::i;:::-;2638:5;-1:-1:-1;2695:2:1;2680:18;;2667:32;2708:33;2667:32;2708:33;:::i;:::-;2368:456;;2760:7;;-1:-1:-1;;;2814:2:1;2799:18;;;;2786:32;;2368:456::o;3018:248::-;3086:6;3094;3147:2;3135:9;3126:7;3122:23;3118:32;3115:52;;;3163:1;3160;3153:12;3115:52;-1:-1:-1;;3186:23:1;;;3256:2;3241:18;;;3228:32;;-1:-1:-1;3018:248:1:o;3713:388::-;3781:6;3789;3842:2;3830:9;3821:7;3817:23;3813:32;3810:52;;;3858:1;3855;3848:12;3810:52;3897:9;3884:23;3916:31;3941:5;3916:31;:::i;:::-;3966:5;-1:-1:-1;4023:2:1;4008:18;;3995:32;4036:33;3995:32;4036:33;:::i;:::-;4088:7;4078:17;;;3713:388;;;;;:::o;4106:404::-;4308:2;4290:21;;;4347:2;4327:18;;;4320:30;4386:34;4381:2;4366:18;;4359:62;-1:-1:-1;;;4452:2:1;4437:18;;4430:38;4500:3;4485:19;;4106:404::o;4515:402::-;4717:2;4699:21;;;4756:2;4736:18;;;4729:30;4795:34;4790:2;4775:18;;4768:62;-1:-1:-1;;;4861:2:1;4846:18;;4839:36;4907:3;4892:19;;4515:402::o;4922:401::-;5124:2;5106:21;;;5163:2;5143:18;;;5136:30;5202:34;5197:2;5182:18;;5175:62;-1:-1:-1;;;5268:2:1;5253:18;;5246:35;5313:3;5298:19;;4922:401::o;5686:127::-;5747:10;5742:3;5738:20;5735:1;5728:31;5778:4;5775:1;5768:15;5802:4;5799:1;5792:15;5818:422;5907:1;5950:5;5907:1;5964:270;5985:7;5975:8;5972:21;5964:270;;;6044:4;6040:1;6036:6;6032:17;6026:4;6023:27;6020:53;;;6053:18;;:::i;:::-;6103:7;6093:8;6089:22;6086:55;;;6123:16;;;;6086:55;6202:22;;;;6162:15;;;;5964:270;;;5968:3;5818:422;;;;;:::o;6245:806::-;6294:5;6324:8;6314:80;;-1:-1:-1;6365:1:1;6379:5;;6314:80;6413:4;6403:76;;-1:-1:-1;6450:1:1;6464:5;;6403:76;6495:4;6513:1;6508:59;;;;6581:1;6576:130;;;;6488:218;;6508:59;6538:1;6529:10;;6552:5;;;6576:130;6613:3;6603:8;6600:17;6597:43;;;6620:18;;:::i;:::-;-1:-1:-1;;6676:1:1;6662:16;;6691:5;;6488:218;;6790:2;6780:8;6777:16;6771:3;6765:4;6762:13;6758:36;6752:2;6742:8;6739:16;6734:2;6728:4;6725:12;6721:35;6718:77;6715:159;;;-1:-1:-1;6827:19:1;;;6859:5;;6715:159;6906:34;6931:8;6925:4;6906:34;:::i;:::-;6976:6;6972:1;6968:6;6964:19;6955:7;6952:32;6949:58;;;6987:18;;:::i;:::-;7025:20;;6245:806;-1:-1:-1;;;6245:806:1:o;7056:140::-;7114:5;7143:47;7184:4;7174:8;7170:19;7164:4;7143:47;:::i;7201:168::-;7241:7;7307:1;7303;7299:6;7295:14;7292:1;7289:21;7284:1;7277:9;7270:17;7266:45;7263:71;;;7314:18;;:::i;:::-;-1:-1:-1;7354:9:1;;7201:168::o;7374:251::-;7444:6;7497:2;7485:9;7476:7;7472:23;7468:32;7465:52;;;7513:1;7510;7503:12;7465:52;7545:9;7539:16;7564:31;7589:5;7564:31;:::i;10455:217::-;10495:1;10521;10511:132;;10565:10;10560:3;10556:20;10553:1;10546:31;10600:4;10597:1;10590:15;10628:4;10625:1;10618:15;10511:132;-1:-1:-1;10657:9:1;;10455:217::o;10677:128::-;10717:3;10748:1;10744:6;10741:1;10738:13;10735:39;;;10754:18;;:::i;:::-;-1:-1:-1;10790:9:1;;10677:128::o;11430:306::-;11518:6;11526;11534;11587:2;11575:9;11566:7;11562:23;11558:32;11555:52;;;11603:1;11600;11593:12;11555:52;11632:9;11626:16;11616:26;;11682:2;11671:9;11667:18;11661:25;11651:35;;11726:2;11715:9;11711:18;11705:25;11695:35;;11430:306;;;;;:::o;14102:135::-;14141:3;-1:-1:-1;;14162:17:1;;14159:43;;;14182:18;;:::i;:::-;-1:-1:-1;14229:1:1;14218:13;;14102:135::o;14668:125::-;14708:4;14736:1;14733;14730:8;14727:34;;;14741:18;;:::i;:::-;-1:-1:-1;14778:9:1;;14668:125::o;14930:127::-;14991:10;14986:3;14982:20;14979:1;14972:31;15022:4;15019:1;15012:15;15046:4;15043:1;15036:15;15062:980;15324:4;15372:3;15361:9;15357:19;15403:6;15392:9;15385:25;15429:2;15467:6;15462:2;15451:9;15447:18;15440:34;15510:3;15505:2;15494:9;15490:18;15483:31;15534:6;15569;15563:13;15600:6;15592;15585:22;15638:3;15627:9;15623:19;15616:26;;15677:2;15669:6;15665:15;15651:29;;15698:1;15708:195;15722:6;15719:1;15716:13;15708:195;;;15787:13;;-1:-1:-1;;;;;15783:39:1;15771:52;;15878:15;;;;15843:12;;;;15819:1;15737:9;15708:195;;;-1:-1:-1;;;;;;;15959:32:1;;;;15954:2;15939:18;;15932:60;-1:-1:-1;;;16023:3:1;16008:19;16001:35;15920:3;15062:980;-1:-1:-1;;;15062:980:1:o
Swarm Source
ipfs://0bb973962bd130719515fc0a8d2001f05d0839eaf718b496fd42fd4b6ada78bc
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.