ERC-20
Overview
Max Total Supply
1,000,000,000 AiLab
Holders
17
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
16,905,679.992402899833170403 AiLabValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
AILAB
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-02-08 */ /** \ https://t.me/AILabETH */ //Ai Lab is one-in-all tools for daily trades. //Quick analyze of ETH token //Safe Check //$AILAB ecosystem // SPDX-License-Identifier: MIT pragma solidity ^0.8.17; interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { 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 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; } } } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { this; return msg.data; } } library Address { function isContract(address account) internal view returns (bool) { uint256 size; assembly { size := extcodesize(account) } return size > 0; } function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); (bool success, ) = recipient.call{ value: amount }(""); require(success, "Address: unable to send value, recipient may have reverted"); } function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) { return functionCallWithValue(target, data, 0, errorMessage); } function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); require(isContract(target), "Address: call to non-contract"); (bool success, bytes memory returndata) = target.call{ value: value }(data); return _verifyCallResult(success, returndata, errorMessage); } function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) { return functionStaticCall(target, data, "Address: low-level static call failed"); } function functionStaticCall(address target, bytes memory data, string memory errorMessage) internal view returns (bytes memory) { require(isContract(target), "Address: static call to non-contract"); (bool success, bytes memory returndata) = target.staticcall(data); return _verifyCallResult(success, returndata, errorMessage); } function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) { return functionDelegateCall(target, data, "Address: low-level delegate call failed"); } function functionDelegateCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) { require(isContract(target), "Address: delegate call to non-contract"); (bool success, bytes memory returndata) = target.delegatecall(data); return _verifyCallResult(success, returndata, errorMessage); } function _verifyCallResult(bool success, bytes memory returndata, string memory errorMessage) private pure returns(bytes memory) { if (success) { return returndata; } else { if (returndata.length > 0) { assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } abstract contract Ownable is Context { address private _owner; mapping (address => bool) internal authorizations; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { _owner = 0x3E8a5Ee5eCD903f381F65e56FF6d2dee52e510A8; authorizations[_owner] = true; emit OwnershipTransferred(address(0), _owner); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } modifier authorized() { require(isAuthorized(_msgSender()), "!AUTHORIZED"); _; } function authorize(address adr) public onlyOwner { authorizations[adr] = true; } function isAuthorized(address adr) public view returns (bool) { return authorizations[adr]; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } interface IUniswapV2Factory { 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 IUniswapV2Pair { event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure 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); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint); function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external; event Burn(address indexed sender, uint amount0, uint amount1, address indexed to); event Swap( address indexed sender, uint amount0In, uint amount1In, uint amount0Out, uint amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); function price0CumulativeLast() external view returns (uint); function price1CumulativeLast() external view returns (uint); function kLast() external view returns (uint); function burn(address to) external returns (uint amount0, uint amount1); function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } interface IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function removeLiquidity( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB); function removeLiquidityETH( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountToken, uint amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountA, uint amountB); function removeLiquidityETHWithPermit( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountToken, uint amountETH); function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapTokensForExactTokens( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function 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); } interface IUniswapV2Router02 is IUniswapV2Router01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountETH); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } contract AILAB is Context, IERC20, Ownable { using SafeMath for uint256; using Address for address; // Tracking status of wallets mapping (address => uint256) private _tOwned; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) public _isExcludedFromFee; // Blacklist: If 'noBlackList' is true wallets on this list can not buy - used for known bots mapping (address => bool) public _isBlacklisted; // Set contract so that blacklisted wallets cannot buy (default is false) bool public noBlackList; address payable private Wallet_Dev = payable(0x3E8a5Ee5eCD903f381F65e56FF6d2dee52e510A8); address payable private Wallet_Burn = payable(0x000000000000000000000000000000000000dEaD); address payable private Wallet_zero = payable(0x0000000000000000000000000000000000000000); string private _name = "AI LAB"; string private _symbol = "AiLab"; uint8 private _decimals = 18; uint256 private _tTotal = 1000000000 * 10**18; uint256 private _tFeeTotal; uint8 private txCount = 0; uint8 private swapTrigger = 3; uint256 private maxPossibleFee = 100; uint256 private _TotalFee = 9; uint256 public _buyFee = 4; uint256 public _sellFee = 5; uint256 private _previousTotalFee = _TotalFee; uint256 private _previousBuyFee = _buyFee; uint256 private _previousSellFee = _sellFee; uint256 public _maxWalletToken = _tTotal.mul(100).div(100); uint256 private _previousMaxWalletToken = _maxWalletToken; // Maximum transaction amount (% at launch) uint256 public _maxTxAmount = _tTotal.mul(100).div(100); uint256 private _previousMaxTxAmount = _maxTxAmount; IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool public inSwapAndLiquify; bool public swapAndLiquifyEnabled = true; event SwapAndLiquifyEnabledUpdated(bool enabled); event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiqudity ); modifier lockTheSwap { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } constructor () { _tOwned[owner()] = _tTotal; IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); uniswapV2Router = _uniswapV2Router; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[Wallet_Dev] = true; emit Transfer(address(0), owner(), _tTotal); } function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view returns (uint8) { return _decimals; } function totalSupply() public view override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return _tOwned[account]; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero")); return true; } function excludeFromFee(address account) public authorized { _isExcludedFromFee[account] = true; } function includeInFee(address account) public onlyOwner { _isExcludedFromFee[account] = false; } function _set_Fees(uint256 Buy_Fee, uint256 Sell_Fee) external authorized() { require((Buy_Fee + Sell_Fee) <= maxPossibleFee, "Fee is too high!"); _sellFee = Sell_Fee; _buyFee = Buy_Fee; } function Wallet_Update_Dev(address payable wallet) public authorized() { Wallet_Dev = wallet; _isExcludedFromFee[Wallet_Dev] = true; } function set_Swap_And_Liquify_Enabled(bool true_or_false) public authorized() { swapAndLiquifyEnabled = true_or_false; emit SwapAndLiquifyEnabledUpdated(true_or_false); } function set_Number_Of_Transactions_Before_Liquify_Trigger(uint8 number_of_transactions) public onlyOwner { swapTrigger = number_of_transactions; } receive() external payable {} function blacklist_Add_Wallets(address[] calldata addresses) external onlyOwner { uint256 startGas; uint256 gasUsed; for (uint256 i; i < addresses.length; ++i) { if(gasUsed < gasleft()) { startGas = gasleft(); if(!_isBlacklisted[addresses[i]]){ _isBlacklisted[addresses[i]] = true;} gasUsed = startGas - gasleft(); } } } function blacklist_Remove_Wallets(address[] calldata addresses) external onlyOwner { uint256 startGas; uint256 gasUsed; for (uint256 i; i < addresses.length; ++i) { if(gasUsed < gasleft()) { startGas = gasleft(); if(_isBlacklisted[addresses[i]]){ _isBlacklisted[addresses[i]] = false;} gasUsed = startGas - gasleft(); } } } function blacklist_Switch(bool true_or_false) public onlyOwner { noBlackList = true_or_false; } bool public noFeeToTransfer = true; function set_Transfers_Without_Fees(bool true_or_false) external authorized { noFeeToTransfer = true_or_false; } function set_Max_Transaction_Percent(uint256 maxTxPercent_x100) external authorized() { _maxTxAmount = _tTotal*maxTxPercent_x100/100; } function set_Max_Wallet_Percent(uint256 maxWallPercent_x100) external authorized() { _maxWalletToken = _tTotal*maxWallPercent_x100/100; } function removeAllFee() private { if(_TotalFee == 0 && _buyFee == 0 && _sellFee == 0) return; _previousBuyFee = _buyFee; _previousSellFee = _sellFee; _previousTotalFee = _TotalFee; _buyFee = 0; _sellFee = 0; _TotalFee = 0; } function restoreAllFee() private { _TotalFee = _previousTotalFee; _buyFee = _previousBuyFee; _sellFee = _previousSellFee; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0) && spender != address(0), "ERR: zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer( address from, address to, uint256 amount ) private { if (to != owner() && to != Wallet_Dev && to != address(this) && to != uniswapV2Pair && to != Wallet_Burn && from != owner()){ uint256 heldTokens = balanceOf(to); require((heldTokens + amount) <= _maxWalletToken,"You are trying to buy too many tokens. You have reached the limit for one wallet.");} // Limit the maximum number of tokens that can be bought or sold in one transaction if (from != owner() && to != owner()) require(amount <= _maxTxAmount, "You are trying to buy more than the max transaction limit."); if (noBlackList){ require(!_isBlacklisted[from] && !_isBlacklisted[to], "This address is blacklisted. Transaction reverted.");} require(from != address(0) && to != address(0), "ERR: Using 0 address!"); require(amount > 0, "Token value must be higher than zero."); if( txCount >= swapTrigger && !inSwapAndLiquify && from != uniswapV2Pair && swapAndLiquifyEnabled ) { txCount = 0; uint256 contractTokenBalance = balanceOf(address(this)); if(contractTokenBalance > _maxTxAmount) {contractTokenBalance = _maxTxAmount;} if(contractTokenBalance > 0){ swapAndLiquify(contractTokenBalance); } } bool takeFee = true; if(_isExcludedFromFee[from] || _isExcludedFromFee[to] || (noFeeToTransfer && from != uniswapV2Pair && to != uniswapV2Pair)){ takeFee = false; } else if (from == uniswapV2Pair){_TotalFee = _buyFee;} else if (to == uniswapV2Pair){_TotalFee = _sellFee;} _tokenTransfer(from,to,amount,takeFee); } function sendToWallet(address payable wallet, uint256 amount) private { wallet.transfer(amount); } function swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap { swapTokensForBNB(contractTokenBalance); uint256 contractBNB = address(this).balance; sendToWallet(Wallet_Dev,contractBNB); } function process_Tokens_Now (uint256 percent_Of_Tokens_To_Process) public onlyOwner { // Do not trigger if already in swap require(!inSwapAndLiquify, "Currently processing, try later."); if (percent_Of_Tokens_To_Process > 100){percent_Of_Tokens_To_Process == 100;} uint256 tokensOnContract = balanceOf(address(this)); uint256 sendTokens = tokensOnContract*percent_Of_Tokens_To_Process/100; swapAndLiquify(sendTokens); } function swapTokensForBNB(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function remove_Random_Tokens(address random_Token_Address, address send_to_wallet, uint256 number_of_tokens) public onlyOwner returns(bool _sent){ require(random_Token_Address != address(this), "Can not remove native token"); uint256 randomBalance = IERC20(random_Token_Address).balanceOf(address(this)); if (number_of_tokens > randomBalance){number_of_tokens = randomBalance;} _sent = IERC20(random_Token_Address).transfer(send_to_wallet, number_of_tokens); } function set_New_Router_and_Make_Pair(address newRouter) public onlyOwner() { IUniswapV2Router02 _newPCSRouter = IUniswapV2Router02(newRouter); uniswapV2Pair = IUniswapV2Factory(_newPCSRouter.factory()).createPair(address(this), _newPCSRouter.WETH()); uniswapV2Router = _newPCSRouter; } function set_New_Router_Address(address newRouter) public onlyOwner() { IUniswapV2Router02 _newPCSRouter = IUniswapV2Router02(newRouter); uniswapV2Router = _newPCSRouter; } function set_New_Pair_Address(address newPair) public onlyOwner() { uniswapV2Pair = newPair; } function _tokenTransfer(address sender, address recipient, uint256 amount,bool takeFee) private { if(!takeFee){ removeAllFee(); } else { txCount++; } _transferTokens(sender, recipient, amount); if(!takeFee) restoreAllFee(); } function _transferTokens(address sender, address recipient, uint256 tAmount) private { (uint256 tTransferAmount, uint256 tDev) = _getValues(tAmount); _tOwned[sender] = _tOwned[sender].sub(tAmount); _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount); _tOwned[address(this)] = _tOwned[address(this)].add(tDev); emit Transfer(sender, recipient, tTransferAmount); } function _getValues(uint256 tAmount) private view returns (uint256, uint256) { uint256 tDev = tAmount*_TotalFee/100; uint256 tTransferAmount = tAmount.sub(tDev); return (tTransferAmount, tDev); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address payable","name":"wallet","type":"address"}],"name":"Wallet_Update_Dev","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"Buy_Fee","type":"uint256"},{"internalType":"uint256","name":"Sell_Fee","type":"uint256"}],"name":"_set_Fees","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":"adr","type":"address"}],"name":"authorize","outputs":[],"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":"address[]","name":"addresses","type":"address[]"}],"name":"blacklist_Add_Wallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"}],"name":"blacklist_Remove_Wallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"true_or_false","type":"bool"}],"name":"blacklist_Switch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"inSwapAndLiquify","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"noBlackList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"noFeeToTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent_Of_Tokens_To_Process","type":"uint256"}],"name":"process_Tokens_Now","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"random_Token_Address","type":"address"},{"internalType":"address","name":"send_to_wallet","type":"address"},{"internalType":"uint256","name":"number_of_tokens","type":"uint256"}],"name":"remove_Random_Tokens","outputs":[{"internalType":"bool","name":"_sent","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxPercent_x100","type":"uint256"}],"name":"set_Max_Transaction_Percent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent_x100","type":"uint256"}],"name":"set_Max_Wallet_Percent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newPair","type":"address"}],"name":"set_New_Pair_Address","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"}],"name":"set_New_Router_Address","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"}],"name":"set_New_Router_and_Make_Pair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"number_of_transactions","type":"uint8"}],"name":"set_Number_Of_Transactions_Before_Liquify_Trigger","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"true_or_false","type":"bool"}],"name":"set_Swap_And_Liquify_Enabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"true_or_false","type":"bool"}],"name":"set_Transfers_Without_Fees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60068054610100600160a81b031916743e8a5ee5ecd903f381f65e56ff6d2dee52e510a8001781556007805461dead6001600160a01b03199182161790915560088054909116905560c060405260809081526520a4902620a160d11b60a0526009906200006d908262000584565b5060408051808201909152600581526420b4a630b160d91b6020820152600a9062000099908262000584565b50600b8054601260ff1990911681179091556b033b2e3c9fd0803ce8000000600c819055600e805461ffff19166103001790556064600f8190556009601081905560046011819055600594859055601391909155601455601592909255620001289190620001149082620004ba602090811b620015b917901c565b620004d160201b620015cc1790919060201c565b601655601654601755620001546064620001146064600c54620004ba60201b620015b91790919060201c565b6018819055601955601b805461ffff60a81b191661010160a81b1790553480156200017e57600080fd5b50600080546001600160a01b031916733e8a5ee5ecd903f381f65e56ff6d2dee52e510a89081178255808252600160208190527fde9cec4e4ceb201b6251076264afab9c7abdde6a580eb95e9df14f5a6b352086805460ff191690911790556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3600c5460026000620002226000546001600160a01b031690565b6001600160a01b03166001600160a01b03168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200029e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002c4919062000650565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000312573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000338919062000650565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000386573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003ac919062000650565b601b80546001600160a01b03199081166001600160a01b0393841617909155601a8054909116918316919091179055600160046000620003f46000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905530815260049093528183208054851660019081179091556006546101009004909116835291208054909216179055620004636000546001600160a01b031690565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600c54604051620004ab91815260200190565b60405180910390a350620006cb565b6000620004c8828462000682565b90505b92915050565b6000620004c88284620006a8565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200050a57607f821691505b6020821081036200052b57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200057f57600081815260208120601f850160051c810160208610156200055a5750805b601f850160051c820191505b818110156200057b5782815560010162000566565b5050505b505050565b81516001600160401b03811115620005a057620005a0620004df565b620005b881620005b18454620004f5565b8462000531565b602080601f831160018114620005f05760008415620005d75750858301515b600019600386901b1c1916600185901b1785556200057b565b600085815260208120601f198616915b82811015620006215788860151825594840194600190910190840162000600565b5085821015620006405787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156200066357600080fd5b81516001600160a01b03811681146200067b57600080fd5b9392505050565b8082028115828204841417620004cb57634e487b7160e01b600052601160045260246000fd5b600082620006c657634e487b7160e01b600052601260045260246000fd5b500490565b61243380620006db6000396000f3fe6080604052600436106102765760003560e01c8063715018a61161014f578063a514a07d116100c1578063dd62ed3e1161007a578063dd62ed3e1461078b578063ddbf5266146107d1578063ea2f0b37146107f1578063f2fde38b14610811578063f7739b5f14610831578063fe9fbb801461085157600080fd5b8063a514a07d146106cb578063a9059cbb146106eb578063a9de975d1461070b578063b6a5d7de1461072b578063c1f619081461074b578063d785d5be1461076b57600080fd5b80638824e16e116101135780638824e16e146106185780638da5cb5b146106385780638ec0e9a114610656578063942201841461067657806395d89b4114610696578063a457c2d7146106ab57600080fd5b8063715018a614610587578063768dc7101461059c57806378109e54146105cc5780637caefa89146105e25780637d1db4a51461060257600080fd5b80633343ab83116101e857806349bd5a5e116101ac57806349bd5a5e146104c05780634a74bb02146104e0578063590f897e1461050157806367cbd84c146105175780636f0941f61461053757806370a082311461055157600080fd5b80633343ab831461042a57806336b1a1bc1461044a578063395093511461046a57806340b9a54b1461048a578063437823ec146104a057600080fd5b806318160ddd1161023a57806318160ddd146103585780631cdd3be314610377578063220f6696146103a757806323b872dd146103c85780632e39c6c6146103e8578063313ce5671461040857600080fd5b806306fdde0314610282578063095ea7b3146102ad5780631282a0a0146102dd57806313fad07a146102ff5780631694505e1461032057600080fd5b3661027d57005b600080fd5b34801561028e57600080fd5b5061029761088a565b6040516102a49190611f6e565b60405180910390f35b3480156102b957600080fd5b506102cd6102c8366004611fd4565b61091c565b60405190151581526020016102a4565b3480156102e957600080fd5b506102fd6102f8366004612000565b610933565b005b34801561030b57600080fd5b50601b546102cd90600160b01b900460ff1681565b34801561032c57600080fd5b50601a54610340906001600160a01b031681565b6040516001600160a01b0390911681526020016102a4565b34801561036457600080fd5b50600c545b6040519081526020016102a4565b34801561038357600080fd5b506102cd610392366004612000565b60056020526000908152604090205460ff1681565b3480156103b357600080fd5b50601b546102cd90600160a01b900460ff1681565b3480156103d457600080fd5b506102cd6103e336600461201d565b610ae1565b3480156103f457600080fd5b506102fd61040336600461205e565b610b4a565b34801561041457600080fd5b50600b5460405160ff90911681526020016102a4565b34801561043657600080fd5b506102cd61044536600461201d565b610b8f565b34801561045657600080fd5b506102fd610465366004612000565b610d07565b34801561047657600080fd5b506102cd610485366004611fd4565b610d53565b34801561049657600080fd5b5061036960115481565b3480156104ac57600080fd5b506102fd6104bb366004612000565b610d89565b3480156104cc57600080fd5b50601b54610340906001600160a01b031681565b3480156104ec57600080fd5b50601b546102cd90600160a81b900460ff1681565b34801561050d57600080fd5b5061036960125481565b34801561052357600080fd5b506102fd610532366004612077565b610dd2565b34801561054357600080fd5b506006546102cd9060ff1681565b34801561055d57600080fd5b5061036961056c366004612000565b6001600160a01b031660009081526002602052604090205490565b34801561059357600080fd5b506102fd610e4d565b3480156105a857600080fd5b506102cd6105b7366004612000565b60046020526000908152604090205460ff1681565b3480156105d857600080fd5b5061036960165481565b3480156105ee57600080fd5b506102fd6105fd366004612099565b610ec1565b34801561060e57600080fd5b5061036960185481565b34801561062457600080fd5b506102fd610633366004612000565b610f07565b34801561064457600080fd5b506000546001600160a01b0316610340565b34801561066257600080fd5b506102fd6106713660046120bc565b610f71565b34801561068257600080fd5b506102fd61069136600461205e565b61107c565b3480156106a257600080fd5b506102976110c1565b3480156106b757600080fd5b506102cd6106c6366004611fd4565b6110d0565b3480156106d757600080fd5b506102fd6106e636600461213f565b61111f565b3480156106f757600080fd5b506102cd610706366004611fd4565b611162565b34801561071757600080fd5b506102fd6107263660046120bc565b61116f565b34801561073757600080fd5b506102fd610746366004612000565b611272565b34801561075757600080fd5b506102fd61076636600461213f565b6112c3565b34801561077757600080fd5b506102fd610786366004612000565b611300565b34801561079757600080fd5b506103696107a636600461215c565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b3480156107dd57600080fd5b506102fd6107ec36600461205e565b61134c565b3480156107fd57600080fd5b506102fd61080c366004612000565b611407565b34801561081d57600080fd5b506102fd61082c366004612000565b611452565b34801561083d57600080fd5b506102fd61084c36600461213f565b61153c565b34801561085d57600080fd5b506102cd61086c366004612000565b6001600160a01b031660009081526001602052604090205460ff1690565b60606009805461089990612195565b80601f01602080910402602001604051908101604052809291908181526020018280546108c590612195565b80156109125780601f106108e757610100808354040283529160200191610912565b820191906000526020600020905b8154815290600101906020018083116108f557829003601f168201915b5050505050905090565b60006109293384846115d8565b5060015b92915050565b6000546001600160a01b031633146109665760405162461bcd60e51b815260040161095d906121cf565b60405180910390fd5b6000819050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109cd9190612204565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a1a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a3e9190612204565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610a8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aaf9190612204565b601b80546001600160a01b039283166001600160a01b031991821617909155601a805493909216921691909117905550565b6000610aee848484611699565b610b408433610b3b856040518060600160405280602881526020016123b1602891396001600160a01b038a1660009081526003602090815260408083203384529091529020549190611b81565b6115d8565b5060019392505050565b610b533361086c565b610b6f5760405162461bcd60e51b815260040161095d90612221565b606481600c54610b7f919061225c565b610b899190612273565b60185550565b600080546001600160a01b03163314610bba5760405162461bcd60e51b815260040161095d906121cf565b306001600160a01b03851603610c125760405162461bcd60e51b815260206004820152601b60248201527f43616e206e6f742072656d6f7665206e617469766520746f6b656e0000000000604482015260640161095d565b6040516370a0823160e01b81523060048201526000906001600160a01b038616906370a0823190602401602060405180830381865afa158015610c59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c7d9190612295565b905080831115610c8b578092505b60405163a9059cbb60e01b81526001600160a01b0385811660048301526024820185905286169063a9059cbb906044016020604051808303816000875af1158015610cda573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cfe91906122ae565b95945050505050565b6000546001600160a01b03163314610d315760405162461bcd60e51b815260040161095d906121cf565b601a80546001600160a01b0319166001600160a01b0392909216919091179055565b3360008181526003602090815260408083206001600160a01b03871684529091528120549091610929918590610b3b9086611bad565b610d923361086c565b610dae5760405162461bcd60e51b815260040161095d90612221565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b610ddb3361086c565b610df75760405162461bcd60e51b815260040161095d90612221565b600f54610e0482846122cb565b1115610e455760405162461bcd60e51b815260206004820152601060248201526f46656520697320746f6f20686967682160801b604482015260640161095d565b601255601155565b6000546001600160a01b03163314610e775760405162461bcd60e51b815260040161095d906121cf565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610eeb5760405162461bcd60e51b815260040161095d906121cf565b600e805460ff9092166101000261ff0019909216919091179055565b610f103361086c565b610f2c5760405162461bcd60e51b815260040161095d90612221565b60068054610100600160a81b0319166101006001600160a01b03938416810291909117918290559004166000908152600460205260409020805460ff19166001179055565b6000546001600160a01b03163314610f9b5760405162461bcd60e51b815260040161095d906121cf565b60008060005b83811015611075575a821015611065575a925060056000868684818110610fca57610fca6122de565b9050602002016020810190610fdf9190612000565b6001600160a01b0316815260208101919091526040016000205460ff161561105757600060056000878785818110611019576110196122de565b905060200201602081019061102e9190612000565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790555b5a61106290846122f4565b91505b61106e81612307565b9050610fa1565b5050505050565b6110853361086c565b6110a15760405162461bcd60e51b815260040161095d90612221565b606481600c546110b1919061225c565b6110bb9190612273565b60165550565b6060600a805461089990612195565b60006109293384610b3b856040518060600160405280602581526020016123d9602591393360009081526003602090815260408083206001600160a01b038d1684529091529020549190611b81565b6111283361086c565b6111445760405162461bcd60e51b815260040161095d90612221565b601b8054911515600160b01b0260ff60b01b19909216919091179055565b6000610929338484611699565b6000546001600160a01b031633146111995760405162461bcd60e51b815260040161095d906121cf565b60008060005b83811015611075575a821015611262575a9250600560008686848181106111c8576111c86122de565b90506020020160208101906111dd9190612000565b6001600160a01b0316815260208101919091526040016000205460ff1661125457600160056000878785818110611216576112166122de565b905060200201602081019061122b9190612000565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790555b5a61125f90846122f4565b91505b61126b81612307565b905061119f565b6000546001600160a01b0316331461129c5760405162461bcd60e51b815260040161095d906121cf565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6000546001600160a01b031633146112ed5760405162461bcd60e51b815260040161095d906121cf565b6006805460ff1916911515919091179055565b6000546001600160a01b0316331461132a5760405162461bcd60e51b815260040161095d906121cf565b601b80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146113765760405162461bcd60e51b815260040161095d906121cf565b601b54600160a01b900460ff16156113d05760405162461bcd60e51b815260206004820181905260248201527f43757272656e746c792070726f63657373696e672c20747279206c617465722e604482015260640161095d565b306000908152600260205260408120549060646113ed848461225c565b6113f79190612273565b905061140281611bb9565b505050565b6000546001600160a01b031633146114315760405162461bcd60e51b815260040161095d906121cf565b6001600160a01b03166000908152600460205260409020805460ff19169055565b6000546001600160a01b0316331461147c5760405162461bcd60e51b815260040161095d906121cf565b6001600160a01b0381166114e15760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161095d565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6115453361086c565b6115615760405162461bcd60e51b815260040161095d90612221565b601b8054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159906115ae90831515815260200190565b60405180910390a150565b60006115c5828461225c565b9392505050565b60006115c58284612273565b6001600160a01b038316158015906115f857506001600160a01b03821615155b6116385760405162461bcd60e51b81526020600482015260116024820152704552523a207a65726f206164647265737360781b604482015260640161095d565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000546001600160a01b038381169116148015906116ca57506006546001600160a01b038381166101009092041614155b80156116df57506001600160a01b0382163014155b80156116f95750601b546001600160a01b03838116911614155b801561171357506007546001600160a01b03838116911614155b801561172d57506000546001600160a01b03848116911614155b156117e8576001600160a01b03821660009081526002602052604090205460165461175883836122cb565b11156117e65760405162461bcd60e51b815260206004820152605160248201527f596f752061726520747279696e6720746f2062757920746f6f206d616e79207460448201527f6f6b656e732e20596f752068617665207265616368656420746865206c696d696064820152703a103337b91037b732903bb0b63632ba1760791b608482015260a40161095d565b505b6000546001600160a01b0384811691161480159061181457506000546001600160a01b03838116911614155b15611891576018548111156118915760405162461bcd60e51b815260206004820152603a60248201527f596f752061726520747279696e6720746f20627579206d6f7265207468616e2060448201527f746865206d6178207472616e73616374696f6e206c696d69742e000000000000606482015260840161095d565b60065460ff1615611945576001600160a01b03831660009081526005602052604090205460ff161580156118de57506001600160a01b03821660009081526005602052604090205460ff16155b6119455760405162461bcd60e51b815260206004820152603260248201527f54686973206164647265737320697320626c61636b6c69737465642e205472616044820152713739b0b1ba34b7b7103932bb32b93a32b21760711b606482015260840161095d565b6001600160a01b0383161580159061196557506001600160a01b03821615155b6119a95760405162461bcd60e51b81526020600482015260156024820152744552523a205573696e67203020616464726573732160581b604482015260640161095d565b60008111611a075760405162461bcd60e51b815260206004820152602560248201527f546f6b656e2076616c7565206d75737420626520686967686572207468616e206044820152643d32b9379760d91b606482015260840161095d565b600e5460ff61010082048116911610801590611a2d5750601b54600160a01b900460ff16155b8015611a475750601b546001600160a01b03848116911614155b8015611a5c5750601b54600160a81b900460ff165b15611a9b57600e805460ff1916905530600090815260026020526040902054601854811115611a8a57506018545b8015611a9957611a9981611bb9565b505b6001600160a01b03831660009081526004602052604090205460019060ff1680611add57506001600160a01b03831660009081526004602052604090205460ff165b80611b245750601b54600160b01b900460ff168015611b0a5750601b546001600160a01b03858116911614155b8015611b245750601b546001600160a01b03848116911614155b15611b3157506000611b6f565b601b546001600160a01b0390811690851603611b5257601154601055611b6f565b601b546001600160a01b0390811690841603611b6f576012546010555b611b7b84848484611c03565b50505050565b60008184841115611ba55760405162461bcd60e51b815260040161095d9190611f6e565b505050900390565b60006115c582846122cb565b601b805460ff60a01b1916600160a01b179055611bd581611c69565b6006544790611bf29061010090046001600160a01b031682611dc3565b5050601b805460ff60a01b19169055565b80611c1557611c10611df9565b611c42565b600e805460ff16906000611c2883612320565b91906101000a81548160ff021916908360ff160217905550505b611c4d848484611e3e565b80611b7b57611b7b601354601055601454601155601554601255565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611c9e57611c9e6122de565b6001600160a01b03928316602091820292909201810191909152601a54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611cf7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d1b9190612204565b81600181518110611d2e57611d2e6122de565b6001600160a01b039283166020918202929092010152601a54611d5491309116846115d8565b601a5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611d8d90859060009086903090429060040161233f565b600060405180830381600087803b158015611da757600080fd5b505af1158015611dbb573d6000803e3d6000fd5b505050505050565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015611402573d6000803e3d6000fd5b601054158015611e095750601154155b8015611e155750601254155b15611e1c57565b6011805460145560128054601555601080546013556000928390559082905555565b600080611e4a83611f2a565b6001600160a01b0387166000908152600260205260409020549193509150611e729084611f62565b6001600160a01b038087166000908152600260205260408082209390935590861681522054611ea19083611bad565b6001600160a01b038516600090815260026020526040808220929092553081522054611ecd9082611bad565b3060009081526002602090815260409182902092909255518381526001600160a01b0386811692908816917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050505050565b6000806000606460105485611f3f919061225c565b611f499190612273565b90506000611f578583611f62565b959194509092505050565b60006115c582846122f4565b600060208083528351808285015260005b81811015611f9b57858101830151858201604001528201611f7f565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611fd157600080fd5b50565b60008060408385031215611fe757600080fd5b8235611ff281611fbc565b946020939093013593505050565b60006020828403121561201257600080fd5b81356115c581611fbc565b60008060006060848603121561203257600080fd5b833561203d81611fbc565b9250602084013561204d81611fbc565b929592945050506040919091013590565b60006020828403121561207057600080fd5b5035919050565b6000806040838503121561208a57600080fd5b50508035926020909101359150565b6000602082840312156120ab57600080fd5b813560ff811681146115c557600080fd5b600080602083850312156120cf57600080fd5b823567ffffffffffffffff808211156120e757600080fd5b818501915085601f8301126120fb57600080fd5b81358181111561210a57600080fd5b8660208260051b850101111561211f57600080fd5b60209290920196919550909350505050565b8015158114611fd157600080fd5b60006020828403121561215157600080fd5b81356115c581612131565b6000806040838503121561216f57600080fd5b823561217a81611fbc565b9150602083013561218a81611fbc565b809150509250929050565b600181811c908216806121a957607f821691505b6020821081036121c957634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561221657600080fd5b81516115c581611fbc565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761092d5761092d612246565b60008261229057634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156122a757600080fd5b5051919050565b6000602082840312156122c057600080fd5b81516115c581612131565b8082018082111561092d5761092d612246565b634e487b7160e01b600052603260045260246000fd5b8181038181111561092d5761092d612246565b60006001820161231957612319612246565b5060010190565b600060ff821660ff810361233657612336612246565b60010192915050565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561238f5784516001600160a01b03168352938301939183019160010161236a565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220484bdcb9644a5d71dcada4c6dee10ee8359706db11ee9743abe8a846d83d401964736f6c63430008110033
Deployed Bytecode
0x6080604052600436106102765760003560e01c8063715018a61161014f578063a514a07d116100c1578063dd62ed3e1161007a578063dd62ed3e1461078b578063ddbf5266146107d1578063ea2f0b37146107f1578063f2fde38b14610811578063f7739b5f14610831578063fe9fbb801461085157600080fd5b8063a514a07d146106cb578063a9059cbb146106eb578063a9de975d1461070b578063b6a5d7de1461072b578063c1f619081461074b578063d785d5be1461076b57600080fd5b80638824e16e116101135780638824e16e146106185780638da5cb5b146106385780638ec0e9a114610656578063942201841461067657806395d89b4114610696578063a457c2d7146106ab57600080fd5b8063715018a614610587578063768dc7101461059c57806378109e54146105cc5780637caefa89146105e25780637d1db4a51461060257600080fd5b80633343ab83116101e857806349bd5a5e116101ac57806349bd5a5e146104c05780634a74bb02146104e0578063590f897e1461050157806367cbd84c146105175780636f0941f61461053757806370a082311461055157600080fd5b80633343ab831461042a57806336b1a1bc1461044a578063395093511461046a57806340b9a54b1461048a578063437823ec146104a057600080fd5b806318160ddd1161023a57806318160ddd146103585780631cdd3be314610377578063220f6696146103a757806323b872dd146103c85780632e39c6c6146103e8578063313ce5671461040857600080fd5b806306fdde0314610282578063095ea7b3146102ad5780631282a0a0146102dd57806313fad07a146102ff5780631694505e1461032057600080fd5b3661027d57005b600080fd5b34801561028e57600080fd5b5061029761088a565b6040516102a49190611f6e565b60405180910390f35b3480156102b957600080fd5b506102cd6102c8366004611fd4565b61091c565b60405190151581526020016102a4565b3480156102e957600080fd5b506102fd6102f8366004612000565b610933565b005b34801561030b57600080fd5b50601b546102cd90600160b01b900460ff1681565b34801561032c57600080fd5b50601a54610340906001600160a01b031681565b6040516001600160a01b0390911681526020016102a4565b34801561036457600080fd5b50600c545b6040519081526020016102a4565b34801561038357600080fd5b506102cd610392366004612000565b60056020526000908152604090205460ff1681565b3480156103b357600080fd5b50601b546102cd90600160a01b900460ff1681565b3480156103d457600080fd5b506102cd6103e336600461201d565b610ae1565b3480156103f457600080fd5b506102fd61040336600461205e565b610b4a565b34801561041457600080fd5b50600b5460405160ff90911681526020016102a4565b34801561043657600080fd5b506102cd61044536600461201d565b610b8f565b34801561045657600080fd5b506102fd610465366004612000565b610d07565b34801561047657600080fd5b506102cd610485366004611fd4565b610d53565b34801561049657600080fd5b5061036960115481565b3480156104ac57600080fd5b506102fd6104bb366004612000565b610d89565b3480156104cc57600080fd5b50601b54610340906001600160a01b031681565b3480156104ec57600080fd5b50601b546102cd90600160a81b900460ff1681565b34801561050d57600080fd5b5061036960125481565b34801561052357600080fd5b506102fd610532366004612077565b610dd2565b34801561054357600080fd5b506006546102cd9060ff1681565b34801561055d57600080fd5b5061036961056c366004612000565b6001600160a01b031660009081526002602052604090205490565b34801561059357600080fd5b506102fd610e4d565b3480156105a857600080fd5b506102cd6105b7366004612000565b60046020526000908152604090205460ff1681565b3480156105d857600080fd5b5061036960165481565b3480156105ee57600080fd5b506102fd6105fd366004612099565b610ec1565b34801561060e57600080fd5b5061036960185481565b34801561062457600080fd5b506102fd610633366004612000565b610f07565b34801561064457600080fd5b506000546001600160a01b0316610340565b34801561066257600080fd5b506102fd6106713660046120bc565b610f71565b34801561068257600080fd5b506102fd61069136600461205e565b61107c565b3480156106a257600080fd5b506102976110c1565b3480156106b757600080fd5b506102cd6106c6366004611fd4565b6110d0565b3480156106d757600080fd5b506102fd6106e636600461213f565b61111f565b3480156106f757600080fd5b506102cd610706366004611fd4565b611162565b34801561071757600080fd5b506102fd6107263660046120bc565b61116f565b34801561073757600080fd5b506102fd610746366004612000565b611272565b34801561075757600080fd5b506102fd61076636600461213f565b6112c3565b34801561077757600080fd5b506102fd610786366004612000565b611300565b34801561079757600080fd5b506103696107a636600461215c565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b3480156107dd57600080fd5b506102fd6107ec36600461205e565b61134c565b3480156107fd57600080fd5b506102fd61080c366004612000565b611407565b34801561081d57600080fd5b506102fd61082c366004612000565b611452565b34801561083d57600080fd5b506102fd61084c36600461213f565b61153c565b34801561085d57600080fd5b506102cd61086c366004612000565b6001600160a01b031660009081526001602052604090205460ff1690565b60606009805461089990612195565b80601f01602080910402602001604051908101604052809291908181526020018280546108c590612195565b80156109125780601f106108e757610100808354040283529160200191610912565b820191906000526020600020905b8154815290600101906020018083116108f557829003601f168201915b5050505050905090565b60006109293384846115d8565b5060015b92915050565b6000546001600160a01b031633146109665760405162461bcd60e51b815260040161095d906121cf565b60405180910390fd5b6000819050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109cd9190612204565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a1a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a3e9190612204565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610a8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aaf9190612204565b601b80546001600160a01b039283166001600160a01b031991821617909155601a805493909216921691909117905550565b6000610aee848484611699565b610b408433610b3b856040518060600160405280602881526020016123b1602891396001600160a01b038a1660009081526003602090815260408083203384529091529020549190611b81565b6115d8565b5060019392505050565b610b533361086c565b610b6f5760405162461bcd60e51b815260040161095d90612221565b606481600c54610b7f919061225c565b610b899190612273565b60185550565b600080546001600160a01b03163314610bba5760405162461bcd60e51b815260040161095d906121cf565b306001600160a01b03851603610c125760405162461bcd60e51b815260206004820152601b60248201527f43616e206e6f742072656d6f7665206e617469766520746f6b656e0000000000604482015260640161095d565b6040516370a0823160e01b81523060048201526000906001600160a01b038616906370a0823190602401602060405180830381865afa158015610c59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c7d9190612295565b905080831115610c8b578092505b60405163a9059cbb60e01b81526001600160a01b0385811660048301526024820185905286169063a9059cbb906044016020604051808303816000875af1158015610cda573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cfe91906122ae565b95945050505050565b6000546001600160a01b03163314610d315760405162461bcd60e51b815260040161095d906121cf565b601a80546001600160a01b0319166001600160a01b0392909216919091179055565b3360008181526003602090815260408083206001600160a01b03871684529091528120549091610929918590610b3b9086611bad565b610d923361086c565b610dae5760405162461bcd60e51b815260040161095d90612221565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b610ddb3361086c565b610df75760405162461bcd60e51b815260040161095d90612221565b600f54610e0482846122cb565b1115610e455760405162461bcd60e51b815260206004820152601060248201526f46656520697320746f6f20686967682160801b604482015260640161095d565b601255601155565b6000546001600160a01b03163314610e775760405162461bcd60e51b815260040161095d906121cf565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610eeb5760405162461bcd60e51b815260040161095d906121cf565b600e805460ff9092166101000261ff0019909216919091179055565b610f103361086c565b610f2c5760405162461bcd60e51b815260040161095d90612221565b60068054610100600160a81b0319166101006001600160a01b03938416810291909117918290559004166000908152600460205260409020805460ff19166001179055565b6000546001600160a01b03163314610f9b5760405162461bcd60e51b815260040161095d906121cf565b60008060005b83811015611075575a821015611065575a925060056000868684818110610fca57610fca6122de565b9050602002016020810190610fdf9190612000565b6001600160a01b0316815260208101919091526040016000205460ff161561105757600060056000878785818110611019576110196122de565b905060200201602081019061102e9190612000565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790555b5a61106290846122f4565b91505b61106e81612307565b9050610fa1565b5050505050565b6110853361086c565b6110a15760405162461bcd60e51b815260040161095d90612221565b606481600c546110b1919061225c565b6110bb9190612273565b60165550565b6060600a805461089990612195565b60006109293384610b3b856040518060600160405280602581526020016123d9602591393360009081526003602090815260408083206001600160a01b038d1684529091529020549190611b81565b6111283361086c565b6111445760405162461bcd60e51b815260040161095d90612221565b601b8054911515600160b01b0260ff60b01b19909216919091179055565b6000610929338484611699565b6000546001600160a01b031633146111995760405162461bcd60e51b815260040161095d906121cf565b60008060005b83811015611075575a821015611262575a9250600560008686848181106111c8576111c86122de565b90506020020160208101906111dd9190612000565b6001600160a01b0316815260208101919091526040016000205460ff1661125457600160056000878785818110611216576112166122de565b905060200201602081019061122b9190612000565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790555b5a61125f90846122f4565b91505b61126b81612307565b905061119f565b6000546001600160a01b0316331461129c5760405162461bcd60e51b815260040161095d906121cf565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b6000546001600160a01b031633146112ed5760405162461bcd60e51b815260040161095d906121cf565b6006805460ff1916911515919091179055565b6000546001600160a01b0316331461132a5760405162461bcd60e51b815260040161095d906121cf565b601b80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146113765760405162461bcd60e51b815260040161095d906121cf565b601b54600160a01b900460ff16156113d05760405162461bcd60e51b815260206004820181905260248201527f43757272656e746c792070726f63657373696e672c20747279206c617465722e604482015260640161095d565b306000908152600260205260408120549060646113ed848461225c565b6113f79190612273565b905061140281611bb9565b505050565b6000546001600160a01b031633146114315760405162461bcd60e51b815260040161095d906121cf565b6001600160a01b03166000908152600460205260409020805460ff19169055565b6000546001600160a01b0316331461147c5760405162461bcd60e51b815260040161095d906121cf565b6001600160a01b0381166114e15760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161095d565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6115453361086c565b6115615760405162461bcd60e51b815260040161095d90612221565b601b8054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159906115ae90831515815260200190565b60405180910390a150565b60006115c5828461225c565b9392505050565b60006115c58284612273565b6001600160a01b038316158015906115f857506001600160a01b03821615155b6116385760405162461bcd60e51b81526020600482015260116024820152704552523a207a65726f206164647265737360781b604482015260640161095d565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000546001600160a01b038381169116148015906116ca57506006546001600160a01b038381166101009092041614155b80156116df57506001600160a01b0382163014155b80156116f95750601b546001600160a01b03838116911614155b801561171357506007546001600160a01b03838116911614155b801561172d57506000546001600160a01b03848116911614155b156117e8576001600160a01b03821660009081526002602052604090205460165461175883836122cb565b11156117e65760405162461bcd60e51b815260206004820152605160248201527f596f752061726520747279696e6720746f2062757920746f6f206d616e79207460448201527f6f6b656e732e20596f752068617665207265616368656420746865206c696d696064820152703a103337b91037b732903bb0b63632ba1760791b608482015260a40161095d565b505b6000546001600160a01b0384811691161480159061181457506000546001600160a01b03838116911614155b15611891576018548111156118915760405162461bcd60e51b815260206004820152603a60248201527f596f752061726520747279696e6720746f20627579206d6f7265207468616e2060448201527f746865206d6178207472616e73616374696f6e206c696d69742e000000000000606482015260840161095d565b60065460ff1615611945576001600160a01b03831660009081526005602052604090205460ff161580156118de57506001600160a01b03821660009081526005602052604090205460ff16155b6119455760405162461bcd60e51b815260206004820152603260248201527f54686973206164647265737320697320626c61636b6c69737465642e205472616044820152713739b0b1ba34b7b7103932bb32b93a32b21760711b606482015260840161095d565b6001600160a01b0383161580159061196557506001600160a01b03821615155b6119a95760405162461bcd60e51b81526020600482015260156024820152744552523a205573696e67203020616464726573732160581b604482015260640161095d565b60008111611a075760405162461bcd60e51b815260206004820152602560248201527f546f6b656e2076616c7565206d75737420626520686967686572207468616e206044820152643d32b9379760d91b606482015260840161095d565b600e5460ff61010082048116911610801590611a2d5750601b54600160a01b900460ff16155b8015611a475750601b546001600160a01b03848116911614155b8015611a5c5750601b54600160a81b900460ff165b15611a9b57600e805460ff1916905530600090815260026020526040902054601854811115611a8a57506018545b8015611a9957611a9981611bb9565b505b6001600160a01b03831660009081526004602052604090205460019060ff1680611add57506001600160a01b03831660009081526004602052604090205460ff165b80611b245750601b54600160b01b900460ff168015611b0a5750601b546001600160a01b03858116911614155b8015611b245750601b546001600160a01b03848116911614155b15611b3157506000611b6f565b601b546001600160a01b0390811690851603611b5257601154601055611b6f565b601b546001600160a01b0390811690841603611b6f576012546010555b611b7b84848484611c03565b50505050565b60008184841115611ba55760405162461bcd60e51b815260040161095d9190611f6e565b505050900390565b60006115c582846122cb565b601b805460ff60a01b1916600160a01b179055611bd581611c69565b6006544790611bf29061010090046001600160a01b031682611dc3565b5050601b805460ff60a01b19169055565b80611c1557611c10611df9565b611c42565b600e805460ff16906000611c2883612320565b91906101000a81548160ff021916908360ff160217905550505b611c4d848484611e3e565b80611b7b57611b7b601354601055601454601155601554601255565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611c9e57611c9e6122de565b6001600160a01b03928316602091820292909201810191909152601a54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611cf7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d1b9190612204565b81600181518110611d2e57611d2e6122de565b6001600160a01b039283166020918202929092010152601a54611d5491309116846115d8565b601a5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611d8d90859060009086903090429060040161233f565b600060405180830381600087803b158015611da757600080fd5b505af1158015611dbb573d6000803e3d6000fd5b505050505050565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015611402573d6000803e3d6000fd5b601054158015611e095750601154155b8015611e155750601254155b15611e1c57565b6011805460145560128054601555601080546013556000928390559082905555565b600080611e4a83611f2a565b6001600160a01b0387166000908152600260205260409020549193509150611e729084611f62565b6001600160a01b038087166000908152600260205260408082209390935590861681522054611ea19083611bad565b6001600160a01b038516600090815260026020526040808220929092553081522054611ecd9082611bad565b3060009081526002602090815260409182902092909255518381526001600160a01b0386811692908816917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050505050565b6000806000606460105485611f3f919061225c565b611f499190612273565b90506000611f578583611f62565b959194509092505050565b60006115c582846122f4565b600060208083528351808285015260005b81811015611f9b57858101830151858201604001528201611f7f565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611fd157600080fd5b50565b60008060408385031215611fe757600080fd5b8235611ff281611fbc565b946020939093013593505050565b60006020828403121561201257600080fd5b81356115c581611fbc565b60008060006060848603121561203257600080fd5b833561203d81611fbc565b9250602084013561204d81611fbc565b929592945050506040919091013590565b60006020828403121561207057600080fd5b5035919050565b6000806040838503121561208a57600080fd5b50508035926020909101359150565b6000602082840312156120ab57600080fd5b813560ff811681146115c557600080fd5b600080602083850312156120cf57600080fd5b823567ffffffffffffffff808211156120e757600080fd5b818501915085601f8301126120fb57600080fd5b81358181111561210a57600080fd5b8660208260051b850101111561211f57600080fd5b60209290920196919550909350505050565b8015158114611fd157600080fd5b60006020828403121561215157600080fd5b81356115c581612131565b6000806040838503121561216f57600080fd5b823561217a81611fbc565b9150602083013561218a81611fbc565b809150509250929050565b600181811c908216806121a957607f821691505b6020821081036121c957634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561221657600080fd5b81516115c581611fbc565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761092d5761092d612246565b60008261229057634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156122a757600080fd5b5051919050565b6000602082840312156122c057600080fd5b81516115c581612131565b8082018082111561092d5761092d612246565b634e487b7160e01b600052603260045260246000fd5b8181038181111561092d5761092d612246565b60006001820161231957612319612246565b5060010190565b600060ff821660ff810361233657612336612246565b60010192915050565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561238f5784516001600160a01b03168352938301939183019160010161236a565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220484bdcb9644a5d71dcada4c6dee10ee8359706db11ee9743abe8a846d83d401964736f6c63430008110033
Deployed Bytecode Sourcemap
14563:13668:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17527:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18358:161;;;;;;;;;;-1:-1:-1;18358:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;18358:161:0;1023:187:1;26542:318:0;;;;;;;;;;-1:-1:-1;26542:318:0;;;;;:::i;:::-;;:::i;:::-;;21390:34;;;;;;;;;;-1:-1:-1;21390:34:0;;;;-1:-1:-1;;;21390:34:0;;;;;;16418:41;;;;;;;;;;-1:-1:-1;16418:41:0;;;;-1:-1:-1;;;;;16418:41:0;;;;;;-1:-1:-1;;;;;1658:32:1;;;1640:51;;1628:2;1613:18;16418:41:0;1467:230:1;17804:95:0;;;;;;;;;;-1:-1:-1;17884:7:0;;17804:95;;;1848:25:1;;;1836:2;1821:18;17804:95:0;1702:177:1;15005:47:0;;;;;;;;;;-1:-1:-1;15005:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;16501:28;;;;;;;;;;-1:-1:-1;16501:28:0;;;;-1:-1:-1;;;16501:28:0;;;;;;18527:313;;;;;;;;;;-1:-1:-1;18527:313:0;;;;;:::i;:::-;;:::i;21575:149::-;;;;;;;;;;-1:-1:-1;21575:149:0;;;;;:::i;:::-;;:::i;17713:83::-;;;;;;;;;;-1:-1:-1;17779:9:0;;17713:83;;17779:9;;;;2672:36:1;;2660:2;2645:18;17713:83:0;2530:184:1;26030:502:0;;;;;;;;;;-1:-1:-1;26030:502:0;;;;;:::i;:::-;;:::i;26874:195::-;;;;;;;;;;-1:-1:-1;26874:195:0;;;;;:::i;:::-;;:::i;18848:218::-;;;;;;;;;;-1:-1:-1;18848:218:0;;;;;:::i;:::-;;:::i;15837:26::-;;;;;;;;;;;;;;;;19353:112;;;;;;;;;;-1:-1:-1;19353:112:0;;;;;:::i;:::-;;:::i;16466:28::-;;;;;;;;;;-1:-1:-1;16466:28:0;;;;-1:-1:-1;;;;;16466:28:0;;;16536:40;;;;;;;;;;-1:-1:-1;16536:40:0;;;;-1:-1:-1;;;16536:40:0;;;;;;15870:27;;;;;;;;;;;;;;;;19605:224;;;;;;;;;;-1:-1:-1;19605:224:0;;;;;:::i;:::-;;:::i;15140:23::-;;;;;;;;;;-1:-1:-1;15140:23:0;;;;;;;;17907:117;;;;;;;;;;-1:-1:-1;17907:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;18000:16:0;17973:7;18000:16;;;:7;:16;;;;;;;17907:117;6352:148;;;;;;;;;;;;;:::i;14845:51::-;;;;;;;;;;-1:-1:-1;14845:51:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;16068:58;;;;;;;;;;;;;;;;20205:161;;;;;;;;;;-1:-1:-1;20205:161:0;;;;;:::i;:::-;;:::i;16250:55::-;;;;;;;;;;;;;;;;19839:157;;;;;;;;;;-1:-1:-1;19839:157:0;;;;;:::i;:::-;;:::i;5806:87::-;;;;;;;;;;-1:-1:-1;5852:7:0;5879:6;-1:-1:-1;;;;;5879:6:0;5806:87;;20839:417;;;;;;;;;;-1:-1:-1;20839:417:0;;;;;:::i;:::-;;:::i;21739:151::-;;;;;;;;;;-1:-1:-1;21739:151:0;;;;;:::i;:::-;;:::i;17618:87::-;;;;;;;;;;;;;:::i;19074:269::-;;;;;;;;;;-1:-1:-1;19074:269:0;;;;;:::i;:::-;;:::i;21437:126::-;;;;;;;;;;-1:-1:-1;21437:126:0;;;;;:::i;:::-;;:::i;18032:167::-;;;;;;;;;;-1:-1:-1;18032:167:0;;;;;:::i;:::-;;:::i;20415:414::-;;;;;;;;;;-1:-1:-1;20415:414:0;;;;;:::i;:::-;;:::i;6131:94::-;;;;;;;;;;-1:-1:-1;6131:94:0;;;;;:::i;:::-;;:::i;21266:109::-;;;;;;;;;;-1:-1:-1;21266:109:0;;;;;:::i;:::-;;:::i;27081:108::-;;;;;;;;;;-1:-1:-1;27081:108:0;;;;;:::i;:::-;;:::i;18207:143::-;;;;;;;;;;-1:-1:-1;18207:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;18315:18:0;;;18288:7;18315:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;18207:143;25059:479;;;;;;;;;;-1:-1:-1;25059:479:0;;;;;:::i;:::-;;:::i;19483:110::-;;;;;;;;;;-1:-1:-1;19483:110:0;;;;;:::i;:::-;;:::i;6508:244::-;;;;;;;;;;-1:-1:-1;6508:244:0;;;;;:::i;:::-;;:::i;20004:193::-;;;;;;;;;;-1:-1:-1;20004:193:0;;;;;:::i;:::-;;:::i;6237:107::-;;;;;;;;;;-1:-1:-1;6237:107:0;;;;;:::i;:::-;-1:-1:-1;;;;;6317:19:0;6293:4;6317:19;;;:14;:19;;;;;;;;;6237:107;17527:83;17564:13;17597:5;17590:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17527:83;:::o;18358:161::-;18433:4;18450:39;1911:10;18473:7;18482:6;18450:8;:39::i;:::-;-1:-1:-1;18507:4:0;18358:161;;;;;:::o;26542:318::-;5852:7;5879:6;-1:-1:-1;;;;;5879:6:0;1911:10;5941:23;5933:68;;;;-1:-1:-1;;;5933:68:0;;;;;;;:::i;:::-;;;;;;;;;26629:32:::1;26683:9;26629:64;;26738:13;-1:-1:-1::0;;;;;26738:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;26720:53:0::1;;26782:4;26789:13;-1:-1:-1::0;;;;;26789:18:0::1;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;26720:90;::::0;-1:-1:-1;;;;;;26720:90:0::1;::::0;;;;;;-1:-1:-1;;;;;6328:15:1;;;26720:90:0::1;::::0;::::1;6310:34:1::0;6380:15;;6360:18;;;6353:43;6245:18;;26720:90:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;26704:13;:106:::0;;-1:-1:-1;;;;;26704:106:0;;::::1;-1:-1:-1::0;;;;;;26704:106:0;;::::1;;::::0;;;26821:15:::1;:31:::0;;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;-1:-1:-1;26542:318:0:o;18527:313::-;18625:4;18642:36;18652:6;18660:9;18671:6;18642:9;:36::i;:::-;18689:121;18698:6;1911:10;18720:89;18758:6;18720:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;18720:19:0;;;;;;:11;:19;;;;;;;;1911:10;18720:33;;;;;;;;;;:37;:89::i;:::-;18689:8;:121::i;:::-;-1:-1:-1;18828:4:0;18527:313;;;;;:::o;21575:149::-;6070:26;1911:10;6237:107;:::i;6070:26::-;6062:50;;;;-1:-1:-1;;;6062:50:0;;;;;;;:::i;:::-;21713:3:::1;21695:17;21687:7;;:25;;;;:::i;:::-;:29;;;;:::i;:::-;21672:12;:44:::0;-1:-1:-1;21575:149:0:o;26030:502::-;26165:10;5879:6;;-1:-1:-1;;;;;5879:6:0;1911:10;5941:23;5933:68;;;;-1:-1:-1;;;5933:68:0;;;;;;;:::i;:::-;26227:4:::1;-1:-1:-1::0;;;;;26195:37:0;::::1;::::0;26187:77:::1;;;::::0;-1:-1:-1;;;26187:77:0;;7476:2:1;26187:77:0::1;::::0;::::1;7458:21:1::0;7515:2;7495:18;;;7488:30;7554:29;7534:18;;;7527:57;7601:18;;26187:77:0::1;7274:351:1::0;26187:77:0::1;26299:53;::::0;-1:-1:-1;;;26299:53:0;;26346:4:::1;26299:53;::::0;::::1;1640:51:1::0;26275:21:0::1;::::0;-1:-1:-1;;;;;26299:38:0;::::1;::::0;::::1;::::0;1613:18:1;;26299:53:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;26275:77;;26386:13;26367:16;:32;26363:72;;;26420:13;26401:32;;26363:72;26453:71;::::0;-1:-1:-1;;;26453:71:0;;-1:-1:-1;;;;;8011:32:1;;;26453:71:0::1;::::0;::::1;7993:51:1::0;8060:18;;;8053:34;;;26453:37:0;::::1;::::0;::::1;::::0;7966:18:1;;26453:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;26445:79:::0;26030:502;-1:-1:-1;;;;;26030:502:0:o;26874:195::-;5852:7;5879:6;-1:-1:-1;;;;;5879:6:0;1911:10;5941:23;5933:68;;;;-1:-1:-1;;;5933:68:0;;;;;;;:::i;:::-;27030:15:::1;:31:::0;;-1:-1:-1;;;;;;27030:31:0::1;-1:-1:-1::0;;;;;27030:31:0;;;::::1;::::0;;;::::1;::::0;;26874:195::o;18848:218::-;1911:10;18936:4;18985:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;18985:34:0;;;;;;;;;;18936:4;;18953:83;;18976:7;;18985:50;;19024:10;18985:38;:50::i;19353:112::-;6070:26;1911:10;6237:107;:::i;6070:26::-;6062:50;;;;-1:-1:-1;;;6062:50:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19423:27:0::1;;::::0;;;:18:::1;:27;::::0;;;;:34;;-1:-1:-1;;19423:34:0::1;19453:4;19423:34;::::0;;19353:112::o;19605:224::-;6070:26;1911:10;6237:107;:::i;6070:26::-;6062:50;;;;-1:-1:-1;;;6062:50:0;;;;;;;:::i;:::-;19726:14:::1;::::0;19703:18:::1;19713:8:::0;19703:7;:18:::1;:::i;:::-;19702:38;;19694:67;;;::::0;-1:-1:-1;;;19694:67:0;;8680:2:1;19694:67:0::1;::::0;::::1;8662:21:1::0;8719:2;8699:18;;;8692:30;-1:-1:-1;;;8738:18:1;;;8731:46;8794:18;;19694:67:0::1;8478:340:1::0;19694:67:0::1;19772:8;:19:::0;19802:7:::1;:17:::0;19605:224::o;6352:148::-;5852:7;5879:6;-1:-1:-1;;;;;5879:6:0;1911:10;5941:23;5933:68;;;;-1:-1:-1;;;5933:68:0;;;;;;;:::i;:::-;6459:1:::1;6443:6:::0;;6422:40:::1;::::0;-1:-1:-1;;;;;6443:6:0;;::::1;::::0;6422:40:::1;::::0;6459:1;;6422:40:::1;6490:1;6473:19:::0;;-1:-1:-1;;;;;;6473:19:0::1;::::0;;6352:148::o;20205:161::-;5852:7;5879:6;-1:-1:-1;;;;;5879:6:0;1911:10;5941:23;5933:68;;;;-1:-1:-1;;;5933:68:0;;;;;;;:::i;:::-;20322:11:::1;:36:::0;;::::1;::::0;;::::1;;;-1:-1:-1::0;;20322:36:0;;::::1;::::0;;;::::1;::::0;;20205:161::o;19839:157::-;6070:26;1911:10;6237:107;:::i;6070:26::-;6062:50;;;;-1:-1:-1;;;6062:50:0;;;;;;;:::i;:::-;19921:10:::1;:19:::0;;-1:-1:-1;;;;;;19921:19:0::1;;-1:-1:-1::0;;;;;19921:19:0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;;19970:10;::::1;;-1:-1:-1::0;19951:30:0;;;:18:::1;:30;::::0;;;;:37;;-1:-1:-1;;19951:37:0::1;-1:-1:-1::0;19951:37:0::1;::::0;;19839:157::o;20839:417::-;5852:7;5879:6;-1:-1:-1;;;;;5879:6:0;1911:10;5941:23;5933:68;;;;-1:-1:-1;;;5933:68:0;;;;;;;:::i;:::-;20942:16:::1;20969:15:::0;20998:9:::1;20993:256;21009:20:::0;;::::1;20993:256;;;21060:9;21050:7;:19;21047:195;;;21093:9;21082:20;;21116:14;:28;21131:9;;21141:1;21131:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;21116:28:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;21116:28:0;;::::1;;21113:81;;;21187:5;21156:14;:28;21171:9;;21181:1;21171:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;21156:28:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;21156:28:0;:36;;-1:-1:-1;;21156:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;21113:81:::1;21225:9;21214:20;::::0;:8;:20:::1;:::i;:::-;21204:30;;21047:195;21031:3;::::0;::::1;:::i;:::-;;;20993:256;;;;20922:334;;20839:417:::0;;:::o;21739:151::-;6070:26;1911:10;6237:107;:::i;6070:26::-;6062:50;;;;-1:-1:-1;;;6062:50:0;;;;;;;:::i;:::-;21879:3:::1;21859:19;21851:7;;:27;;;;:::i;:::-;:31;;;;:::i;:::-;21833:15;:49:::0;-1:-1:-1;21739:151:0:o;17618:87::-;17657:13;17690:7;17683:14;;;;;:::i;19074:269::-;19167:4;19184:129;1911:10;19207:7;19216:96;19255:15;19216:96;;;;;;;;;;;;;;;;;1911:10;19216:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;19216:34:0;;;;;;;;;;;;:38;:96::i;21437:126::-;6070:26;1911:10;6237:107;:::i;6070:26::-;6062:50;;;;-1:-1:-1;;;6062:50:0;;;;;;;:::i;:::-;21524:15:::1;:31:::0;;;::::1;;-1:-1:-1::0;;;21524:31:0::1;-1:-1:-1::0;;;;21524:31:0;;::::1;::::0;;;::::1;::::0;;21437:126::o;18032:167::-;18110:4;18127:42;1911:10;18151:9;18162:6;18127:9;:42::i;20415:414::-;5852:7;5879:6;-1:-1:-1;;;;;5879:6:0;1911:10;5941:23;5933:68;;;;-1:-1:-1;;;5933:68:0;;;;;;;:::i;:::-;20515:16:::1;20542:15:::0;20571:9:::1;20566:256;20582:20:::0;;::::1;20566:256;;;20633:9;20623:7;:19;20620:195;;;20666:9;20655:20;;20690:14;:28;20705:9;;20715:1;20705:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;20690:28:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;20690:28:0;;::::1;;20686:81;;20761:4;20730:14;:28;20745:9;;20755:1;20745:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;20730:28:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;20730:28:0;:35;;-1:-1:-1;;20730:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20686:81:::1;20798:9;20787:20;::::0;:8;:20:::1;:::i;:::-;20777:30;;20620:195;20604:3;::::0;::::1;:::i;:::-;;;20566:256;;6131:94:::0;5852:7;5879:6;-1:-1:-1;;;;;5879:6:0;1911:10;5941:23;5933:68;;;;-1:-1:-1;;;5933:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6191:19:0::1;;::::0;;;6213:4:::1;6191:19;::::0;;;;;;;:26;;-1:-1:-1;;6191:26:0::1;::::0;;::::1;::::0;;6131:94::o;21266:109::-;5852:7;5879:6;-1:-1:-1;;;;;5879:6:0;1911:10;5941:23;5933:68;;;;-1:-1:-1;;;5933:68:0;;;;;;;:::i;:::-;21340:11:::1;:27:::0;;-1:-1:-1;;21340:27:0::1;::::0;::::1;;::::0;;;::::1;::::0;;21266:109::o;27081:108::-;5852:7;5879:6;-1:-1:-1;;;;;5879:6:0;1911:10;5941:23;5933:68;;;;-1:-1:-1;;;5933:68:0;;;;;;;:::i;:::-;27158:13:::1;:23:::0;;-1:-1:-1;;;;;;27158:23:0::1;-1:-1:-1::0;;;;;27158:23:0;;;::::1;::::0;;;::::1;::::0;;27081:108::o;25059:479::-;5852:7;5879:6;-1:-1:-1;;;;;5879:6:0;1911:10;5941:23;5933:68;;;;-1:-1:-1;;;5933:68:0;;;;;;;:::i;:::-;25209:16:::1;::::0;-1:-1:-1;;;25209:16:0;::::1;;;25208:17;25200:62;;;::::0;-1:-1:-1;;;25200:62:0;;9430:2:1;25200:62:0::1;::::0;::::1;9412:21:1::0;;;9449:18;;;9442:30;9508:34;9488:18;;;9481:62;9560:18;;25200:62:0::1;9228:356:1::0;25200:62:0::1;25406:4;25361:24;18000:16:::0;;;:7;:16;;;;;;;25490:3:::1;25444:45;25461:28:::0;18000:16;25444:45:::1;:::i;:::-;:49;;;;:::i;:::-;25423:70;;25504:26;25519:10;25504:14;:26::i;:::-;25143:395;;25059:479:::0;:::o;19483:110::-;5852:7;5879:6;-1:-1:-1;;;;;5879:6:0;1911:10;5941:23;5933:68;;;;-1:-1:-1;;;5933:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19550:27:0::1;19580:5;19550:27:::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;19550:35:0::1;::::0;;19483:110::o;6508:244::-;5852:7;5879:6;-1:-1:-1;;;;;5879:6:0;1911:10;5941:23;5933:68;;;;-1:-1:-1;;;5933:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6597:22:0;::::1;6589:73;;;::::0;-1:-1:-1;;;6589:73:0;;9791:2:1;6589:73:0::1;::::0;::::1;9773:21:1::0;9830:2;9810:18;;;9803:30;9869:34;9849:18;;;9842:62;-1:-1:-1;;;9920:18:1;;;9913:36;9966:19;;6589:73:0::1;9589:402:1::0;6589:73:0::1;6699:6;::::0;;6678:38:::1;::::0;-1:-1:-1;;;;;6678:38:0;;::::1;::::0;6699:6;::::1;::::0;6678:38:::1;::::0;::::1;6727:6;:17:::0;;-1:-1:-1;;;;;;6727:17:0::1;-1:-1:-1::0;;;;;6727:17:0;;;::::1;::::0;;;::::1;::::0;;6508:244::o;20004:193::-;6070:26;1911:10;6237:107;:::i;6070:26::-;6062:50;;;;-1:-1:-1;;;6062:50:0;;;;;;;:::i;:::-;20093:21:::1;:37:::0;;;::::1;;-1:-1:-1::0;;;20093:37:0::1;-1:-1:-1::0;;;;20093:37:0;;::::1;;::::0;;20146:43:::1;::::0;::::1;::::0;::::1;::::0;20117:13;1188:14:1;1181:22;1163:41;;1151:2;1136:18;;1023:187;20146:43:0::1;;;;;;;;20004:193:::0;:::o;1144:98::-;1202:7;1229:5;1233:1;1229;:5;:::i;:::-;1222:12;1144:98;-1:-1:-1;;;1144:98:0:o;1254:::-;1312:7;1339:5;1343:1;1339;:5;:::i;22372:266::-;-1:-1:-1;;;;;22467:19:0;;;;;;:44;;-1:-1:-1;;;;;;22490:21:0;;;;22467:44;22459:74;;;;-1:-1:-1;;;22459:74:0;;10198:2:1;22459:74:0;;;10180:21:1;10237:2;10217:18;;;10210:30;-1:-1:-1;;;10256:18:1;;;10249:47;10313:18;;22459:74:0;9996:341:1;22459:74:0;-1:-1:-1;;;;;22544:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;22596:32;;1848:25:1;;;22596:32:0;;1821:18:1;22596:32:0;;;;;;;22372:266;;;:::o;22646:2021::-;5852:7;5879:6;-1:-1:-1;;;;;22776:13:0;;;5879:6;;22776:13;;;;:46;;-1:-1:-1;22812:10:0;;-1:-1:-1;;;;;22806:16:0;;;22812:10;;;;;22806:16;;22776:46;:82;;;;-1:-1:-1;;;;;;22839:19:0;;22853:4;22839:19;;22776:82;:118;;;;-1:-1:-1;22881:13:0;;-1:-1:-1;;;;;22875:19:0;;;22881:13;;22875:19;;22776:118;:152;;;;-1:-1:-1;22917:11:0;;-1:-1:-1;;;;;22911:17:0;;;22917:11;;22911:17;;22776:152;:184;;;;-1:-1:-1;5852:7:0;5879:6;-1:-1:-1;;;;;22945:15:0;;;5879:6;;22945:15;;22776:184;22772:388;;;-1:-1:-1;;;;;18000:16:0;;22976:18;18000:16;;;:7;:16;;;;;;23058:15;;23034:19;23047:6;18000:16;23034:19;:::i;:::-;23033:40;;23025:133;;;;-1:-1:-1;;;23025:133:0;;10544:2:1;23025:133:0;;;10526:21:1;10583:2;10563:18;;;10556:30;10622:34;10602:18;;;10595:62;10693:34;10673:18;;;10666:62;-1:-1:-1;;;10744:19:1;;;10737:48;10802:19;;23025:133:0;10342:485:1;23025:133:0;22961:199;22772:388;5852:7;5879:6;-1:-1:-1;;;;;23271:15:0;;;5879:6;;23271:15;;;;:32;;-1:-1:-1;5852:7:0;5879:6;-1:-1:-1;;;;;23290:13:0;;;5879:6;;23290:13;;23271:32;23267:144;;;23336:12;;23326:6;:22;;23318:93;;;;-1:-1:-1;;;23318:93:0;;11034:2:1;23318:93:0;;;11016:21:1;11073:2;11053:18;;;11046:30;11112:34;11092:18;;;11085:62;11183:28;11163:18;;;11156:56;11229:19;;23318:93:0;10832:422:1;23318:93:0;23451:11;;;;23447:136;;;-1:-1:-1;;;;;23483:20:0;;;;;;:14;:20;;;;;;;;23482:21;:44;;;;-1:-1:-1;;;;;;23508:18:0;;;;;;:14;:18;;;;;;;;23507:19;23482:44;23474:107;;;;-1:-1:-1;;;23474:107:0;;11461:2:1;23474:107:0;;;11443:21:1;11500:2;11480:18;;;11473:30;11539:34;11519:18;;;11512:62;-1:-1:-1;;;11590:18:1;;;11583:48;11648:19;;23474:107:0;11259:414:1;23474:107:0;-1:-1:-1;;;;;23605:18:0;;;;;;:38;;-1:-1:-1;;;;;;23627:16:0;;;;23605:38;23597:72;;;;-1:-1:-1;;;23597:72:0;;11880:2:1;23597:72:0;;;11862:21:1;11919:2;11899:18;;;11892:30;-1:-1:-1;;;11938:18:1;;;11931:51;11999:18;;23597:72:0;11678:345:1;23597:72:0;23697:1;23688:6;:10;23680:60;;;;-1:-1:-1;;;23680:60:0;;12230:2:1;23680:60:0;;;12212:21:1;12269:2;12249:18;;;12242:30;12308:34;12288:18;;;12281:62;-1:-1:-1;;;12359:18:1;;;12352:35;12404:19;;23680:60:0;12028:401:1;23680:60:0;23795:11;;;;;;;;23784:7;;:22;;;;:57;;-1:-1:-1;23825:16:0;;-1:-1:-1;;;23825:16:0;;;;23824:17;23784:57;:95;;;;-1:-1:-1;23866:13:0;;-1:-1:-1;;;;;23858:21:0;;;23866:13;;23858:21;;23784:95;:133;;;;-1:-1:-1;23896:21:0;;-1:-1:-1;;;23896:21:0;;;;23784:133;23767:497;;;23974:7;:11;;-1:-1:-1;;23974:11:0;;;24049:4;-1:-1:-1;18000:16:0;;;:7;:16;;;;;;24096:12;;24073:35;;24070:78;;;-1:-1:-1;24134:12:0;;24070:78;24165:24;;24162:91;;24205:36;24220:20;24205:14;:36::i;:::-;23943:321;23767:497;-1:-1:-1;;;;;24332:24:0;;24288:12;24332:24;;;:18;:24;;;;;;24303:4;;24332:24;;;:50;;-1:-1:-1;;;;;;24360:22:0;;;;;;:18;:22;;;;;;;;24332:50;:119;;;-1:-1:-1;24387:15:0;;-1:-1:-1;;;24387:15:0;;;;:40;;;;-1:-1:-1;24414:13:0;;-1:-1:-1;;;;;24406:21:0;;;24414:13;;24406:21;;24387:40;:63;;;;-1:-1:-1;24437:13:0;;-1:-1:-1;;;;;24431:19:0;;;24437:13;;24431:19;;24387:63;24329:272;;;-1:-1:-1;24477:5:0;24329:272;;;24512:13;;-1:-1:-1;;;;;24512:13:0;;;24504:21;;;;24500:101;;24539:7;;24527:9;:19;24500:101;;;24564:13;;-1:-1:-1;;;;;24564:13:0;;;24558:19;;;;24554:47;;24591:8;;24579:9;:20;24554:47;24621:38;24636:4;24641:2;24644:6;24651:7;24621:14;:38::i;:::-;22749:1918;22646:2021;;;:::o;1360:206::-;1446:7;1507:12;1499:6;;;;1491:29;;;;-1:-1:-1;;;1491:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;1542:5:0;;;1360:206::o;932:98::-;990:7;1017:5;1021:1;1017;:5;:::i;24807:242::-;16825:16;:23;;-1:-1:-1;;;;16825:23:0;-1:-1:-1;;;16825:23:0;;;24902:38:::1;24919:20:::0;24902:16:::1;:38::i;:::-;25018:10;::::0;24973:21:::1;::::0;25005:36:::1;::::0;25018:10:::1;::::0;::::1;-1:-1:-1::0;;;;;25018:10:0::1;24973:21:::0;25005:12:::1;:36::i;:::-;-1:-1:-1::0;;16871:16:0;:24;;-1:-1:-1;;;;16871:24:0;;;24807:242::o;27197:360::-;27328:7;27324:107;;27351:14;:12;:14::i;:::-;27324:107;;;27406:7;:9;;;;;:7;:9;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;27324:107;27445:42;27461:6;27469:9;27480:6;27445:15;:42::i;:::-;27512:7;27508:41;;27534:15;22267:17;;22255:9;:29;22301:15;;22291:7;:25;22335:16;;22324:8;:27;22209:153;25548:474;25640:16;;;25654:1;25640:16;;;;;;;;25616:21;;25640:16;;;;;;;;;;-1:-1:-1;25640:16:0;25616:40;;25685:4;25667;25672:1;25667:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;25667:23:0;;;:7;;;;;;;;;;:23;;;;25711:15;;:22;;;-1:-1:-1;;;25711:22:0;;;;:15;;;;;:20;;:22;;;;;25667:7;;25711:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25701:4;25706:1;25701:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;25701:32:0;;;:7;;;;;;;;;:32;25776:15;;25744:62;;25761:4;;25776:15;25794:11;25744:8;:62::i;:::-;25817:15;;:197;;-1:-1:-1;;;25817:197:0;;-1:-1:-1;;;;;25817:15:0;;;;:66;;:197;;25898:11;;25817:15;;25941:4;;25968;;25988:15;;25817:197;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25603:419;25548:474;:::o;24677:120::-;24762:23;;-1:-1:-1;;;;;24762:15:0;;;:23;;;;;24778:6;;24762:23;;;;24778:6;24762:15;:23;;;;;;;;;;;;;;;;;;;21900:300;21946:9;;:14;:30;;;;-1:-1:-1;21964:7:0;;:12;21946:30;:47;;;;-1:-1:-1;21980:8:0;;:13;21946:47;21943:59;;;21900:300::o;21943:59::-;22034:7;;;22016:15;:25;22072:8;;;22053:16;:27;22112:9;;;22092:17;:29;-1:-1:-1;22132:11:0;;;;22154:12;;;;22177:13;21900:300::o;27565:424::-;27662:23;27687:12;27703:19;27714:7;27703:10;:19::i;:::-;-1:-1:-1;;;;;27751:15:0;;;;;;:7;:15;;;;;;27661:61;;-1:-1:-1;27661:61:0;-1:-1:-1;27751:28:0;;27771:7;27751:19;:28::i;:::-;-1:-1:-1;;;;;27733:15:0;;;;;;;:7;:15;;;;;;:46;;;;27811:18;;;;;;;:39;;27834:15;27811:22;:39::i;:::-;-1:-1:-1;;;;;27790:18:0;;;;;;:7;:18;;;;;;:60;;;;27902:4;27886:22;;;;:32;;27913:4;27886:26;:32::i;:::-;27877:4;27861:22;;;;:7;:22;;;;;;;;;:57;;;;27937:44;1848:25:1;;;-1:-1:-1;;;;;27937:44:0;;;;;;;;;;1821:18:1;27937:44:0;;;;;;;27650:339;;27565:424;;;:::o;27999:227::-;28058:7;28067;28087:12;28120:3;28110:9;;28102:7;:17;;;;:::i;:::-;:21;;;;:::i;:::-;28087:36;-1:-1:-1;28134:23:0;28160:17;:7;28087:36;28160:11;:17::i;:::-;28134:43;28213:4;;-1:-1:-1;27999:227:0;;-1:-1:-1;;;27999:227:0:o;1038:98::-;1096:7;1123:5;1127:1;1123;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1215:247::-;1274:6;1327:2;1315:9;1306:7;1302:23;1298:32;1295:52;;;1343:1;1340;1333:12;1295:52;1382:9;1369:23;1401:31;1426:5;1401:31;:::i;1884:456::-;1961:6;1969;1977;2030:2;2018:9;2009:7;2005:23;2001:32;1998:52;;;2046:1;2043;2036:12;1998:52;2085:9;2072:23;2104:31;2129:5;2104:31;:::i;:::-;2154:5;-1:-1:-1;2211:2:1;2196:18;;2183:32;2224:33;2183:32;2224:33;:::i;:::-;1884:456;;2276:7;;-1:-1:-1;;;2330:2:1;2315:18;;;;2302:32;;1884:456::o;2345:180::-;2404:6;2457:2;2445:9;2436:7;2432:23;2428:32;2425:52;;;2473:1;2470;2463:12;2425:52;-1:-1:-1;2496:23:1;;2345:180;-1:-1:-1;2345:180:1:o;2927:248::-;2995:6;3003;3056:2;3044:9;3035:7;3031:23;3027:32;3024:52;;;3072:1;3069;3062:12;3024:52;-1:-1:-1;;3095:23:1;;;3165:2;3150:18;;;3137:32;;-1:-1:-1;2927:248:1:o;3180:269::-;3237:6;3290:2;3278:9;3269:7;3265:23;3261:32;3258:52;;;3306:1;3303;3296:12;3258:52;3345:9;3332:23;3395:4;3388:5;3384:16;3377:5;3374:27;3364:55;;3415:1;3412;3405:12;3714:615;3800:6;3808;3861:2;3849:9;3840:7;3836:23;3832:32;3829:52;;;3877:1;3874;3867:12;3829:52;3917:9;3904:23;3946:18;3987:2;3979:6;3976:14;3973:34;;;4003:1;4000;3993:12;3973:34;4041:6;4030:9;4026:22;4016:32;;4086:7;4079:4;4075:2;4071:13;4067:27;4057:55;;4108:1;4105;4098:12;4057:55;4148:2;4135:16;4174:2;4166:6;4163:14;4160:34;;;4190:1;4187;4180:12;4160:34;4243:7;4238:2;4228:6;4225:1;4221:14;4217:2;4213:23;4209:32;4206:45;4203:65;;;4264:1;4261;4254:12;4203:65;4295:2;4287:11;;;;;4317:6;;-1:-1:-1;3714:615:1;;-1:-1:-1;;;;3714:615:1:o;4334:118::-;4420:5;4413:13;4406:21;4399:5;4396:32;4386:60;;4442:1;4439;4432:12;4457:241;4513:6;4566:2;4554:9;4545:7;4541:23;4537:32;4534:52;;;4582:1;4579;4572:12;4534:52;4621:9;4608:23;4640:28;4662:5;4640:28;:::i;4703:388::-;4771:6;4779;4832:2;4820:9;4811:7;4807:23;4803:32;4800:52;;;4848:1;4845;4838:12;4800:52;4887:9;4874:23;4906:31;4931:5;4906:31;:::i;:::-;4956:5;-1:-1:-1;5013:2:1;4998:18;;4985:32;5026:33;4985:32;5026:33;:::i;:::-;5078:7;5068:17;;;4703:388;;;;;:::o;5096:380::-;5175:1;5171:12;;;;5218;;;5239:61;;5293:4;5285:6;5281:17;5271:27;;5239:61;5346:2;5338:6;5335:14;5315:18;5312:38;5309:161;;5392:10;5387:3;5383:20;5380:1;5373:31;5427:4;5424:1;5417:15;5455:4;5452:1;5445:15;5309:161;;5096:380;;;:::o;5481:356::-;5683:2;5665:21;;;5702:18;;;5695:30;5761:34;5756:2;5741:18;;5734:62;5828:2;5813:18;;5481:356::o;5842:251::-;5912:6;5965:2;5953:9;5944:7;5940:23;5936:32;5933:52;;;5981:1;5978;5971:12;5933:52;6013:9;6007:16;6032:31;6057:5;6032:31;:::i;6407:335::-;6609:2;6591:21;;;6648:2;6628:18;;;6621:30;-1:-1:-1;;;6682:2:1;6667:18;;6660:41;6733:2;6718:18;;6407:335::o;6747:127::-;6808:10;6803:3;6799:20;6796:1;6789:31;6839:4;6836:1;6829:15;6863:4;6860:1;6853:15;6879:168;6952:9;;;6983;;7000:15;;;6994:22;;6980:37;6970:71;;7021:18;;:::i;7052:217::-;7092:1;7118;7108:132;;7162:10;7157:3;7153:20;7150:1;7143:31;7197:4;7194:1;7187:15;7225:4;7222:1;7215:15;7108:132;-1:-1:-1;7254:9:1;;7052:217::o;7630:184::-;7700:6;7753:2;7741:9;7732:7;7728:23;7724:32;7721:52;;;7769:1;7766;7759:12;7721:52;-1:-1:-1;7792:16:1;;7630:184;-1:-1:-1;7630:184:1:o;8098:245::-;8165:6;8218:2;8206:9;8197:7;8193:23;8189:32;8186:52;;;8234:1;8231;8224:12;8186:52;8266:9;8260:16;8285:28;8307:5;8285:28;:::i;8348:125::-;8413:9;;;8434:10;;;8431:36;;;8447:18;;:::i;8823:127::-;8884:10;8879:3;8875:20;8872:1;8865:31;8915:4;8912:1;8905:15;8939:4;8936:1;8929:15;8955:128;9022:9;;;9043:11;;;9040:37;;;9057:18;;:::i;9088:135::-;9127:3;9148:17;;;9145:43;;9168:18;;:::i;:::-;-1:-1:-1;9215:1:1;9204:13;;9088:135::o;12434:175::-;12471:3;12515:4;12508:5;12504:16;12544:4;12535:7;12532:17;12529:43;;12552:18;;:::i;:::-;12601:1;12588:15;;12434:175;-1:-1:-1;;12434:175:1:o;12746:980::-;13008:4;13056:3;13045:9;13041:19;13087:6;13076:9;13069:25;13113:2;13151:6;13146:2;13135:9;13131:18;13124:34;13194:3;13189:2;13178:9;13174:18;13167:31;13218:6;13253;13247:13;13284:6;13276;13269:22;13322:3;13311:9;13307:19;13300:26;;13361:2;13353:6;13349:15;13335:29;;13382:1;13392:195;13406:6;13403:1;13400:13;13392:195;;;13471:13;;-1:-1:-1;;;;;13467:39:1;13455:52;;13562:15;;;;13527:12;;;;13503:1;13421:9;13392:195;;;-1:-1:-1;;;;;;;13643:32:1;;;;13638:2;13623:18;;13616:60;-1:-1:-1;;;13707:3:1;13692:19;13685:35;13604:3;12746:980;-1:-1:-1;;;12746:980:1:o
Swarm Source
ipfs://484bdcb9644a5d71dcada4c6dee10ee8359706db11ee9743abe8a846d83d4019
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.