ERC-20
Overview
Max Total Supply
1,000,000,000 MIG
Holders
83
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
2,975,712.082810045612856482 MIGValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
Pana_Miguel
Compiler Version
v0.8.24+commit.e11b9ed9
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-02-22 */ // SPDX-License-Identifier: MIT /* Website: https://migcoin.xyz/ Twitter: https://twitter.com/MIGcoineth Telegram: https://t.me/migcoineth */ pragma solidity ^0.8.0; library SafeMath { /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, 'SafeMath: addition overflow'); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, 'SafeMath: subtraction overflow'); } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, 'SafeMath: multiplication overflow'); return c; } /** * @dev Returns the integer division of two unsigned integers. Reverts on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, 'SafeMath: division by zero'); } /** * @dev Returns the integer division of two unsigned integers. Reverts with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, 'SafeMath: modulo by zero'); } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts with custom message when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } function ceil(uint256 a, uint256 m) internal pure returns (uint256) { uint256 c = add(a, m); uint256 d = sub(c, 1); return mul(div(d, m), m); } } interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); } interface IERC20Metadata is IERC20 { /** * @dev Returns the name of the token. */ function name() external view returns (string memory); /** * @dev Returns the symbol of the token. */ function symbol() external view returns (string memory); /** * @dev Returns the decimals places of the token. */ function decimals() external view returns (uint8); } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } contract Ownable is Context { address private _owner; address private _previousOwner; uint256 private _lockTime; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _owner = 0xcD3acdeFaD8578BB2616e14eF17464000272d371; emit OwnershipTransferred(address(0), _owner); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), 'Ownable: caller is not the owner'); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), 'Ownable: new owner is the zero address'); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } function getUnlockTime() public view returns (uint256) { return _lockTime; } function getTime() public view returns (uint256) { return block.timestamp; } function lock(uint256 time) public virtual onlyOwner { _previousOwner = _owner; _owner = address(0); _lockTime = block.timestamp + time; emit OwnershipTransferred(_owner, address(0)); } function unlock() public virtual { require(_previousOwner == msg.sender, "You don't have permission to unlock"); require(block.timestamp > _lockTime, 'Contract is locked until 7 days'); emit OwnershipTransferred(_owner, _previousOwner); _owner = _previousOwner; } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Pair { function sync() 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); } interface IUniswapV2Router02 is IUniswapV2Router01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountETH); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; 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; } contract Pana_Miguel is Ownable, IERC20, IERC20Metadata { using SafeMath for uint256; mapping(address => uint256) private _balances; mapping (address => bool) public _maxWallet; mapping(address => bool) isTaxless; mapping(address => mapping(address => uint256)) private _allowances; string private _name; string private _symbol; uint256 private _totalSupply = 1_000_000_000 * (10 ** decimals()); bool public tradingEnable = false; address marketingAddress = 0xcD3acdeFaD8578BB2616e14eF17464000272d371; uint256 _feeDecimal = 0; // do not change this value... uint256 marketingBuyFee = 20; //marketing buy fee 20% uint256 marketingSellFee = 40; //marketing sell fee 40% bool private inSwapAndLiquify; bool public swapAndConvertToEthEnabled = true; event SwapAndLiquifyEnabledUpdated(bool enabled); uint256 public minTokensBeforeSwap = 100_000 * (10 ** decimals()); //2% of the total supply uint256 public _maxWalletToken = 200_000_000 * (10 ** decimals()); modifier lockTheSwap() { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; /** * @dev Sets the values for {name} and {symbol}. * * The defaut value of {decimals} is 18. To select a different value for * {decimals} you should overload it. * * All two of these values are immutable: they can only be set once during * construction. */ constructor() { _name = 'Pana_Miguel'; _symbol = 'MIG'; IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); // for Ethereum uniswap v2 uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair( address(this), _uniswapV2Router.WETH() ); uniswapV2Router = _uniswapV2Router; //Tax Exemption isTaxless[owner()] = true; isTaxless[address(this)] = true; //Exempt maxWalletAmount from Owner ,Contract,marketingAddress _maxWallet[owner()] = true; _maxWallet[marketingAddress] = true; _maxWallet[address(this)] = true; _balances[owner()] = _totalSupply; emit Transfer(address(0), owner(), _totalSupply); } /** * @dev Returns the name of the token. * */ function name() public view virtual override returns (string memory) { return _name; } /** * @dev Returns the symbol of the token, usually a shorter version of the * name. */ function symbol() public view virtual override returns (string memory) { return _symbol; } /** * @dev Returns the number of decimals used to get its user representation. * For example, if `decimals` equals `2`, a balance of `505` tokens should * be displayed to a user as `5,05` (`505 / 10 ** 2`). * * Tokens usually opt for a value of 18, imitating the relationship between * Ether and Wei. This is the value {ERC20} uses, unless this function is * overridden; * * NOTE: This information is only used for _display_ purposes: it in * no way affects any of the arithmetic of the contract, including * {IERC20-balanceOf} and {IERC20-transfer}. */ function decimals() public view virtual override returns (uint8) { return 18; } /** * @dev See {IERC20-totalSupply}. */ function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } /** * @dev See {IERC20-balanceOf}. */ function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } /** * @dev See {IERC20-transfer}. * * Requirements: * * - `recipient` cannot be the zero address. * - the caller must have a balance of at least `amount`. */ function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } /** * @dev See {IERC20-allowance}. */ function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } /** * @dev See {IERC20-approve}. * * Requirements: * * - `spender` cannot be the zero address. */ function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } /** * @dev See {IERC20-transferFrom}. * * Emits an {Approval} event indicating the updated allowance. This is not * required by the EIP. See the note at the beginning of {ERC20}. * * Requirements: * * - `sender` and `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. * - the caller must have allowance for ``sender``'s tokens of at least * `amount`. */ function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, 'ERC20: transfer amount exceeds allowance'); _approve(sender, _msgSender(), currentAllowance - amount); return true; } /** * @dev Atomically increases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. */ function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } /** * @dev Atomically decreases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. * - `spender` must have allowance for the caller of at least * `subtractedValue`. */ function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, 'ERC20: decreased allowance below zero'); _approve(_msgSender(), spender, currentAllowance - subtractedValue); return true; } /** * @dev Moves tokens `amount` from `sender` to `recipient`. * * This is internal function is equivalent to {transfer}, and can be used to * e.g. implement automatic token fees, slashing mechanisms, etc. * * Emits a {Transfer} event. * * Requirements: * * - `sender` cannot be the zero address. * - `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. */ function _transfer(address sender, address recipient, uint256 amount) internal virtual { require(sender != address(0), 'ERC20: transfer from the zero address'); require(_balances[sender] >= amount, 'ERC20: transfer amount exceeds balance'); require(owner() == sender || tradingEnable,'trading is disabled'); uint256 transferAmount = amount; uint256 contractTokenBalance = balanceOf(address(this)); bool overMinTokenBalance = contractTokenBalance >= minTokensBeforeSwap; if (!inSwapAndLiquify && overMinTokenBalance && sender != uniswapV2Pair && swapAndConvertToEthEnabled) { swapAndConvertToEth(contractTokenBalance); } if(sender == uniswapV2Pair) { if(!_maxWallet[recipient] && recipient != address(this) && recipient != address(0) && recipient != marketingAddress){ uint256 heldTokens = balanceOf(recipient); require((heldTokens + amount) <= _maxWalletToken,"Total Holding is currently limited, you can not buy that much.");} if (!isTaxless[recipient] && !inSwapAndLiquify) { transferAmount = collectBuyFee(sender, amount); } }else if(recipient == uniswapV2Pair) { if (!isTaxless[sender] && !inSwapAndLiquify) { transferAmount = collectSellFee(sender, amount); } } _balances[sender] -= amount; _balances[recipient] += transferAmount; emit Transfer(sender, recipient, transferAmount); return; } function collectSellFee(address account, uint256 amount) private returns (uint256) { uint256 transferAmount = amount; if (marketingSellFee != 0) { //1 uint256 _makretingFee = amount.mul(marketingSellFee).div(10 ** (_feeDecimal + 2)); transferAmount = transferAmount.sub(_makretingFee); _balances[address(this)] += _makretingFee; emit Transfer(account, address(this), _makretingFee); } return transferAmount; } function collectBuyFee(address account, uint256 amount) private returns (uint256) { uint256 transferAmount = amount; if (marketingBuyFee != 0) { //1 uint256 _makretingFee = amount.mul(marketingBuyFee).div(10 ** (_feeDecimal + 2)); transferAmount = transferAmount.sub(_makretingFee); _balances[address(this)] += _makretingFee; emit Transfer(account, address(this), _makretingFee); } return transferAmount; } function _approve(address owner, address spender, uint256 amount) internal virtual { require(owner != address(0), 'ERC20: approve from the zero address'); require(spender != address(0), 'ERC20: approve to the zero address'); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function swapAndConvertToEth(uint256 contractTokenBalance) private lockTheSwap { if (contractTokenBalance > minTokensBeforeSwap) { contractTokenBalance = minTokensBeforeSwap; } // swap tokens for ETH swapTokensForEth(contractTokenBalance); // how much ETH did we just swap into? uint256 newBalance = address(this).balance; //transfer eth to marketing address payable(marketingAddress).transfer(newBalance); } function swapTokensForEth(uint256 tokenAmount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); // make the swap uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), block.timestamp ); } function setTradingEnabled() external onlyOwner { tradingEnable = true; } function setWallet(address _marketingAddress) external onlyOwner { marketingAddress = _marketingAddress; } function setFee(uint256 _makretingBuyFee, uint256 _makretingSellFee) external onlyOwner { require(_makretingBuyFee <= 40 || _makretingSellFee <= 40,"Unable to set fees higher then 40%"); marketingBuyFee = _makretingBuyFee; marketingSellFee = _makretingSellFee; } function exemptMaxWalletAmountAddress(address _address,bool value) external onlyOwner { _maxWallet[_address] = value; } function setSwapAndConvertToEthEnabled(bool enabled) external onlyOwner { swapAndConvertToEthEnabled = enabled; emit SwapAndLiquifyEnabledUpdated(enabled); } function setMinTokensBeforeSwap(uint256 amount) external onlyOwner { minTokensBeforeSwap = amount; } receive() external payable {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"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":"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","name":"","type":"address"}],"name":"_maxWallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"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":"_address","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"exemptMaxWalletAmountAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getUnlockTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"time","type":"uint256"}],"name":"lock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"minTokensBeforeSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_makretingBuyFee","type":"uint256"},{"internalType":"uint256","name":"_makretingSellFee","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMinTokensBeforeSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setSwapAndConvertToEthEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setTradingEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingAddress","type":"address"}],"name":"setWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndConvertToEthEnabled","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":[],"name":"tradingEnable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052620000126012600a62000569565b6200002290633b9aca0062000580565b600955600a80546001600160a81b03191674cd3acdefad8578bb2616e14ef17464000272d371001790555f600b556014600c556028600d55600e805461010061ff001990911617905560126200007a90600a62000569565b6200008990620186a062000580565b600f556200009a6012600a62000569565b620000aa90630bebc20062000580565b601055348015620000b9575f80fd5b505f80546001600160a01b03191673cd3acdefad8578bb2616e14ef17464000272d37190811782556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a360408051808201909152600b81526a14185b9857d35a59dd595b60aa1b60208201526007906200013d908262000638565b506040805180820190915260038152624d494760e81b602082015260089062000167908262000638565b505f737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001bd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001e3919062000704565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200022f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000255919062000704565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620002a0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002c6919062000704565b601280546001600160a01b03199081166001600160a01b039384161790915560118054909116918316919091179055600160055f6200030c5f546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081015f908120805494151560ff199586161790553081526005909252812080549092166001908117909255600490620003635f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff19968716179055600a5461010090049091168152600490925280822080548416600190811790915530835290822080549093161790915560095490600390620003d95f546001600160a01b031690565b6001600160a01b0316815260208101919091526040015f2055620004045f546001600160a01b031690565b6001600160a01b03165f6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009546040516200044b91815260200190565b60405180910390a3506200072c565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620004ae57815f19048211156200049257620004926200045a565b80851615620004a057918102915b93841c939080029062000473565b509250929050565b5f82620004c65750600162000563565b81620004d457505f62000563565b8160018114620004ed5760028114620004f85762000518565b600191505062000563565b60ff8411156200050c576200050c6200045a565b50506001821b62000563565b5060208310610133831016604e8410600b84101617156200053d575081810a62000563565b6200054983836200046e565b805f19048211156200055f576200055f6200045a565b0290505b92915050565b5f6200057960ff841683620004b6565b9392505050565b80820281158282048414176200056357620005636200045a565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680620005c357607f821691505b602082108103620005e257634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200063357805f5260205f20601f840160051c810160208510156200060f5750805b601f840160051c820191505b8181101562000630575f81556001016200061b565b50505b505050565b81516001600160401b038111156200065457620006546200059a565b6200066c81620006658454620005ae565b84620005e8565b602080601f831160018114620006a2575f84156200068a5750858301515b5f19600386901b1c1916600185901b178555620006fc565b5f85815260208120601f198616915b82811015620006d257888601518255948401946001909101908401620006b1565b5085821015620006f057878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b5f6020828403121562000715575f80fd5b81516001600160a01b038116811462000579575f80fd5b611a90806200073a5f395ff3fe6080604052600436106101d3575f3560e01c8063715018a6116100fd578063d799eef111610092578063e0ff589611610062578063e0ff58961461054f578063e156afd51461056e578063e5d41c6b14610582578063f2fde38b14610597575f80fd5b8063d799eef11461049f578063dd467064146104cd578063dd62ed3e146104ec578063deaa59df14610530575f80fd5b8063a45137ee116100cd578063a45137ee1461042e578063a457c2d71461044d578063a69df4b51461046c578063a9059cbb14610480575f80fd5b8063715018a6146103d557806378109e54146103e95780638da5cb5b146103fe57806395d89b411461041a575f80fd5b8063382020901161017357806352f7c9881161014357806352f7c9881461035c578063557ed1ba1461037b578063602bc62b1461038d57806370a08231146103a1575f80fd5b806338202090146102df57806339509351146102fd57806348a464731461031c57806349bd5a5e1461033d575f80fd5b80631694505e116101ae5780631694505e1461025057806318160ddd1461028757806323b872dd146102a5578063313ce567146102c4575f80fd5b806306fdde03146101de578063095ea7b3146102085780631693e8d414610237575f80fd5b366101da57005b5f80fd5b3480156101e9575f80fd5b506101f26105b6565b6040516101ff919061161e565b60405180910390f35b348015610213575f80fd5b50610227610222366004611681565b610646565b60405190151581526020016101ff565b348015610242575f80fd5b50600a546102279060ff1681565b34801561025b575f80fd5b5060115461026f906001600160a01b031681565b6040516001600160a01b0390911681526020016101ff565b348015610292575f80fd5b506009545b6040519081526020016101ff565b3480156102b0575f80fd5b506102276102bf3660046116ab565b61065c565b3480156102cf575f80fd5b50604051601281526020016101ff565b3480156102ea575f80fd5b50600e5461022790610100900460ff1681565b348015610308575f80fd5b50610227610317366004611681565b610710565b348015610327575f80fd5b5061033b6103363660046116e9565b610746565b005b348015610348575f80fd5b5060125461026f906001600160a01b031681565b348015610367575f80fd5b5061033b610376366004611700565b610774565b348015610386575f80fd5b5042610297565b348015610398575f80fd5b50600254610297565b3480156103ac575f80fd5b506102976103bb366004611720565b6001600160a01b03165f9081526003602052604090205490565b3480156103e0575f80fd5b5061033b610810565b3480156103f4575f80fd5b5061029760105481565b348015610409575f80fd5b505f546001600160a01b031661026f565b348015610425575f80fd5b506101f261086e565b348015610439575f80fd5b5061033b61044836600461174f565b61087d565b348015610458575f80fd5b50610227610467366004611681565b6108fa565b348015610477575f80fd5b5061033b610994565b34801561048b575f80fd5b5061022761049a366004611681565b610a97565b3480156104aa575f80fd5b506102276104b9366004611720565b60046020525f908152604090205460ff1681565b3480156104d8575f80fd5b5061033b6104e73660046116e9565b610aa3565b3480156104f7575f80fd5b50610297610506366004611768565b6001600160a01b039182165f90815260066020908152604080832093909416825291909152205490565b34801561053b575f80fd5b5061033b61054a366004611720565b610b24565b34801561055a575f80fd5b5061033b61056936600461179f565b610b75565b348015610579575f80fd5b5061033b610bc8565b34801561058d575f80fd5b50610297600f5481565b3480156105a2575f80fd5b5061033b6105b1366004611720565b610c00565b6060600780546105c5906117d2565b80601f01602080910402602001604051908101604052809291908181526020018280546105f1906117d2565b801561063c5780601f106106135761010080835404028352916020019161063c565b820191905f5260205f20905b81548152906001019060200180831161061f57829003601f168201915b5050505050905090565b5f610652338484610cd4565b5060015b92915050565b5f610668848484610df7565b6001600160a01b0384165f908152600660209081526040808320338452909152902054828110156106f15760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6107058533610700868561181e565b610cd4565b506001949350505050565b335f8181526006602090815260408083206001600160a01b03871684529091528120549091610652918590610700908690611831565b5f546001600160a01b0316331461076f5760405162461bcd60e51b81526004016106e890611844565b600f55565b5f546001600160a01b0316331461079d5760405162461bcd60e51b81526004016106e890611844565b6028821115806107ae575060288111155b6108055760405162461bcd60e51b815260206004820152602260248201527f556e61626c6520746f20736574206665657320686967686572207468656e2034604482015261302560f01b60648201526084016106e8565b600c91909155600d55565b5f546001600160a01b031633146108395760405162461bcd60e51b81526004016106e890611844565b5f80546040516001600160a01b03909116905f80516020611a3b833981519152908390a35f80546001600160a01b0319169055565b6060600880546105c5906117d2565b5f546001600160a01b031633146108a65760405162461bcd60e51b81526004016106e890611844565b600e80548215156101000261ff00199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159906108ef90831515815260200190565b60405180910390a150565b335f9081526006602090815260408083206001600160a01b03861684529091528120548281101561097b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016106e8565b61098a3385610700868561181e565b5060019392505050565b6001546001600160a01b031633146109fa5760405162461bcd60e51b815260206004820152602360248201527f596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c6044820152626f636b60e81b60648201526084016106e8565b6002544211610a4b5760405162461bcd60e51b815260206004820152601f60248201527f436f6e7472616374206973206c6f636b656420756e74696c203720646179730060448201526064016106e8565b6001545f80546040516001600160a01b0393841693909116915f80516020611a3b83398151915291a36001545f80546001600160a01b0319166001600160a01b03909216919091179055565b5f610652338484610df7565b5f546001600160a01b03163314610acc5760405162461bcd60e51b81526004016106e890611844565b5f8054600180546001600160a01b03199081166001600160a01b03841617909155169055610afa8142611831565b6002555f80546040516001600160a01b03909116905f80516020611a3b833981519152908390a350565b5f546001600160a01b03163314610b4d5760405162461bcd60e51b81526004016106e890611844565b600a80546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b5f546001600160a01b03163314610b9e5760405162461bcd60e51b81526004016106e890611844565b6001600160a01b03919091165f908152600460205260409020805460ff1916911515919091179055565b5f546001600160a01b03163314610bf15760405162461bcd60e51b81526004016106e890611844565b600a805460ff19166001179055565b5f546001600160a01b03163314610c295760405162461bcd60e51b81526004016106e890611844565b6001600160a01b038116610c8e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106e8565b5f80546040516001600160a01b03808516939216915f80516020611a3b83398151915291a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610d365760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106e8565b6001600160a01b038216610d975760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106e8565b6001600160a01b038381165f8181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610e5b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106e8565b6001600160a01b0383165f90815260036020526040902054811115610ed15760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016106e8565b826001600160a01b0316610eec5f546001600160a01b031690565b6001600160a01b03161480610f035750600a5460ff165b610f455760405162461bcd60e51b81526020600482015260136024820152721d1c98591a5b99c81a5cc8191a5cd8589b1959606a1b60448201526064016106e8565b305f90815260036020526040902054600f54600e548392918210159060ff16158015610f6e5750805b8015610f8857506012546001600160a01b03878116911614155b8015610f9b5750600e54610100900460ff165b15610fa957610fa982611207565b6012546001600160a01b0390811690871603611105576001600160a01b0385165f9081526004602052604090205460ff16158015610ff057506001600160a01b0385163014155b801561100457506001600160a01b03851615155b80156110235750600a546001600160a01b038681166101009092041614155b156110c3576001600160a01b0385165f9081526003602052604090205460105461104d8683611831565b11156110c15760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e000060648201526084016106e8565b505b6001600160a01b0385165f9081526005602052604090205460ff161580156110ee5750600e5460ff16155b15611100576110fd8685611277565b92505b611158565b6012546001600160a01b0390811690861603611158576001600160a01b0386165f9081526005602052604090205460ff161580156111465750600e5460ff16155b15611158576111558685611332565b92505b6001600160a01b0386165f908152600360205260408120805486929061117f90849061181e565b90915550506001600160a01b0385165f90815260036020526040812080548592906111ab908490611831565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516111f791815260200190565b60405180910390a3505050505050565b600e805460ff19166001179055600f548111156112235750600f545b61122c8161136a565b600a54604051479161010090046001600160a01b0316906108fc8315029083905f818181858888f19350505050158015611268573d5f803e3d5ffd5b5050600e805460ff1916905550565b600c545f9082901561132b575f6112b5600b5460026112969190611831565b6112a190600a611959565b600c546112af9087906114ba565b90611538565b90506112c18282611579565b305f908152600360205260408120805492945083929091906112e4908490611831565b909155505060405181815230906001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505b9392505050565b600d545f9082901561132b575f6112b5600b5460026113519190611831565b61135c90600a611959565b600d546112af9087906114ba565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061139d5761139d611964565b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156113f4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114189190611978565b8160018151811061142b5761142b611964565b6001600160a01b0392831660209182029290920101526011546114519130911684610cd4565b60115460405163791ac94760e01b81526001600160a01b039091169063791ac947906114899085905f90869030904290600401611993565b5f604051808303815f87803b1580156114a0575f80fd5b505af11580156114b2573d5f803e3d5ffd5b505050505050565b5f825f036114c957505f610656565b5f6114d48385611a04565b9050826114e18583611a1b565b1461132b5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016106e8565b5f61132b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506115ba565b5f61132b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506115ef565b5f81836115da5760405162461bcd60e51b81526004016106e8919061161e565b505f6115e68486611a1b565b95945050505050565b5f81848411156116125760405162461bcd60e51b81526004016106e8919061161e565b505f6115e6848661181e565b5f602080835283518060208501525f5b8181101561164a5785810183015185820160400152820161162e565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461167e575f80fd5b50565b5f8060408385031215611692575f80fd5b823561169d8161166a565b946020939093013593505050565b5f805f606084860312156116bd575f80fd5b83356116c88161166a565b925060208401356116d88161166a565b929592945050506040919091013590565b5f602082840312156116f9575f80fd5b5035919050565b5f8060408385031215611711575f80fd5b50508035926020909101359150565b5f60208284031215611730575f80fd5b813561132b8161166a565b8035801515811461174a575f80fd5b919050565b5f6020828403121561175f575f80fd5b61132b8261173b565b5f8060408385031215611779575f80fd5b82356117848161166a565b915060208301356117948161166a565b809150509250929050565b5f80604083850312156117b0575f80fd5b82356117bb8161166a565b91506117c96020840161173b565b90509250929050565b600181811c908216806117e657607f821691505b60208210810361180457634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156106565761065661180a565b808201808211156106565761065661180a565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181815b808511156118b357815f19048211156118995761189961180a565b808516156118a657918102915b93841c939080029061187e565b509250929050565b5f826118c957506001610656565b816118d557505f610656565b81600181146118eb57600281146118f557611911565b6001915050610656565b60ff8411156119065761190661180a565b50506001821b610656565b5060208310610133831016604e8410600b8410161715611934575081810a610656565b61193e8383611879565b805f19048211156119515761195161180a565b029392505050565b5f61132b83836118bb565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611988575f80fd5b815161132b8161166a565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156119e35784516001600160a01b0316835293830193918301916001016119be565b50506001600160a01b03969096166060850152505050608001529392505050565b80820281158282048414176106565761065661180a565b5f82611a3557634e487b7160e01b5f52601260045260245ffd5b50049056fe8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0a26469706673582212206a3cd94b5e4ef1da9f4975cfeb65538860cc7b56e34a9b6bbfe5c467878662d464736f6c63430008180033
Deployed Bytecode
0x6080604052600436106101d3575f3560e01c8063715018a6116100fd578063d799eef111610092578063e0ff589611610062578063e0ff58961461054f578063e156afd51461056e578063e5d41c6b14610582578063f2fde38b14610597575f80fd5b8063d799eef11461049f578063dd467064146104cd578063dd62ed3e146104ec578063deaa59df14610530575f80fd5b8063a45137ee116100cd578063a45137ee1461042e578063a457c2d71461044d578063a69df4b51461046c578063a9059cbb14610480575f80fd5b8063715018a6146103d557806378109e54146103e95780638da5cb5b146103fe57806395d89b411461041a575f80fd5b8063382020901161017357806352f7c9881161014357806352f7c9881461035c578063557ed1ba1461037b578063602bc62b1461038d57806370a08231146103a1575f80fd5b806338202090146102df57806339509351146102fd57806348a464731461031c57806349bd5a5e1461033d575f80fd5b80631694505e116101ae5780631694505e1461025057806318160ddd1461028757806323b872dd146102a5578063313ce567146102c4575f80fd5b806306fdde03146101de578063095ea7b3146102085780631693e8d414610237575f80fd5b366101da57005b5f80fd5b3480156101e9575f80fd5b506101f26105b6565b6040516101ff919061161e565b60405180910390f35b348015610213575f80fd5b50610227610222366004611681565b610646565b60405190151581526020016101ff565b348015610242575f80fd5b50600a546102279060ff1681565b34801561025b575f80fd5b5060115461026f906001600160a01b031681565b6040516001600160a01b0390911681526020016101ff565b348015610292575f80fd5b506009545b6040519081526020016101ff565b3480156102b0575f80fd5b506102276102bf3660046116ab565b61065c565b3480156102cf575f80fd5b50604051601281526020016101ff565b3480156102ea575f80fd5b50600e5461022790610100900460ff1681565b348015610308575f80fd5b50610227610317366004611681565b610710565b348015610327575f80fd5b5061033b6103363660046116e9565b610746565b005b348015610348575f80fd5b5060125461026f906001600160a01b031681565b348015610367575f80fd5b5061033b610376366004611700565b610774565b348015610386575f80fd5b5042610297565b348015610398575f80fd5b50600254610297565b3480156103ac575f80fd5b506102976103bb366004611720565b6001600160a01b03165f9081526003602052604090205490565b3480156103e0575f80fd5b5061033b610810565b3480156103f4575f80fd5b5061029760105481565b348015610409575f80fd5b505f546001600160a01b031661026f565b348015610425575f80fd5b506101f261086e565b348015610439575f80fd5b5061033b61044836600461174f565b61087d565b348015610458575f80fd5b50610227610467366004611681565b6108fa565b348015610477575f80fd5b5061033b610994565b34801561048b575f80fd5b5061022761049a366004611681565b610a97565b3480156104aa575f80fd5b506102276104b9366004611720565b60046020525f908152604090205460ff1681565b3480156104d8575f80fd5b5061033b6104e73660046116e9565b610aa3565b3480156104f7575f80fd5b50610297610506366004611768565b6001600160a01b039182165f90815260066020908152604080832093909416825291909152205490565b34801561053b575f80fd5b5061033b61054a366004611720565b610b24565b34801561055a575f80fd5b5061033b61056936600461179f565b610b75565b348015610579575f80fd5b5061033b610bc8565b34801561058d575f80fd5b50610297600f5481565b3480156105a2575f80fd5b5061033b6105b1366004611720565b610c00565b6060600780546105c5906117d2565b80601f01602080910402602001604051908101604052809291908181526020018280546105f1906117d2565b801561063c5780601f106106135761010080835404028352916020019161063c565b820191905f5260205f20905b81548152906001019060200180831161061f57829003601f168201915b5050505050905090565b5f610652338484610cd4565b5060015b92915050565b5f610668848484610df7565b6001600160a01b0384165f908152600660209081526040808320338452909152902054828110156106f15760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6107058533610700868561181e565b610cd4565b506001949350505050565b335f8181526006602090815260408083206001600160a01b03871684529091528120549091610652918590610700908690611831565b5f546001600160a01b0316331461076f5760405162461bcd60e51b81526004016106e890611844565b600f55565b5f546001600160a01b0316331461079d5760405162461bcd60e51b81526004016106e890611844565b6028821115806107ae575060288111155b6108055760405162461bcd60e51b815260206004820152602260248201527f556e61626c6520746f20736574206665657320686967686572207468656e2034604482015261302560f01b60648201526084016106e8565b600c91909155600d55565b5f546001600160a01b031633146108395760405162461bcd60e51b81526004016106e890611844565b5f80546040516001600160a01b03909116905f80516020611a3b833981519152908390a35f80546001600160a01b0319169055565b6060600880546105c5906117d2565b5f546001600160a01b031633146108a65760405162461bcd60e51b81526004016106e890611844565b600e80548215156101000261ff00199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159906108ef90831515815260200190565b60405180910390a150565b335f9081526006602090815260408083206001600160a01b03861684529091528120548281101561097b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016106e8565b61098a3385610700868561181e565b5060019392505050565b6001546001600160a01b031633146109fa5760405162461bcd60e51b815260206004820152602360248201527f596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c6044820152626f636b60e81b60648201526084016106e8565b6002544211610a4b5760405162461bcd60e51b815260206004820152601f60248201527f436f6e7472616374206973206c6f636b656420756e74696c203720646179730060448201526064016106e8565b6001545f80546040516001600160a01b0393841693909116915f80516020611a3b83398151915291a36001545f80546001600160a01b0319166001600160a01b03909216919091179055565b5f610652338484610df7565b5f546001600160a01b03163314610acc5760405162461bcd60e51b81526004016106e890611844565b5f8054600180546001600160a01b03199081166001600160a01b03841617909155169055610afa8142611831565b6002555f80546040516001600160a01b03909116905f80516020611a3b833981519152908390a350565b5f546001600160a01b03163314610b4d5760405162461bcd60e51b81526004016106e890611844565b600a80546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b5f546001600160a01b03163314610b9e5760405162461bcd60e51b81526004016106e890611844565b6001600160a01b03919091165f908152600460205260409020805460ff1916911515919091179055565b5f546001600160a01b03163314610bf15760405162461bcd60e51b81526004016106e890611844565b600a805460ff19166001179055565b5f546001600160a01b03163314610c295760405162461bcd60e51b81526004016106e890611844565b6001600160a01b038116610c8e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106e8565b5f80546040516001600160a01b03808516939216915f80516020611a3b83398151915291a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610d365760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106e8565b6001600160a01b038216610d975760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106e8565b6001600160a01b038381165f8181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610e5b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106e8565b6001600160a01b0383165f90815260036020526040902054811115610ed15760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016106e8565b826001600160a01b0316610eec5f546001600160a01b031690565b6001600160a01b03161480610f035750600a5460ff165b610f455760405162461bcd60e51b81526020600482015260136024820152721d1c98591a5b99c81a5cc8191a5cd8589b1959606a1b60448201526064016106e8565b305f90815260036020526040902054600f54600e548392918210159060ff16158015610f6e5750805b8015610f8857506012546001600160a01b03878116911614155b8015610f9b5750600e54610100900460ff165b15610fa957610fa982611207565b6012546001600160a01b0390811690871603611105576001600160a01b0385165f9081526004602052604090205460ff16158015610ff057506001600160a01b0385163014155b801561100457506001600160a01b03851615155b80156110235750600a546001600160a01b038681166101009092041614155b156110c3576001600160a01b0385165f9081526003602052604090205460105461104d8683611831565b11156110c15760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e000060648201526084016106e8565b505b6001600160a01b0385165f9081526005602052604090205460ff161580156110ee5750600e5460ff16155b15611100576110fd8685611277565b92505b611158565b6012546001600160a01b0390811690861603611158576001600160a01b0386165f9081526005602052604090205460ff161580156111465750600e5460ff16155b15611158576111558685611332565b92505b6001600160a01b0386165f908152600360205260408120805486929061117f90849061181e565b90915550506001600160a01b0385165f90815260036020526040812080548592906111ab908490611831565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516111f791815260200190565b60405180910390a3505050505050565b600e805460ff19166001179055600f548111156112235750600f545b61122c8161136a565b600a54604051479161010090046001600160a01b0316906108fc8315029083905f818181858888f19350505050158015611268573d5f803e3d5ffd5b5050600e805460ff1916905550565b600c545f9082901561132b575f6112b5600b5460026112969190611831565b6112a190600a611959565b600c546112af9087906114ba565b90611538565b90506112c18282611579565b305f908152600360205260408120805492945083929091906112e4908490611831565b909155505060405181815230906001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505b9392505050565b600d545f9082901561132b575f6112b5600b5460026113519190611831565b61135c90600a611959565b600d546112af9087906114ba565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061139d5761139d611964565b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156113f4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114189190611978565b8160018151811061142b5761142b611964565b6001600160a01b0392831660209182029290920101526011546114519130911684610cd4565b60115460405163791ac94760e01b81526001600160a01b039091169063791ac947906114899085905f90869030904290600401611993565b5f604051808303815f87803b1580156114a0575f80fd5b505af11580156114b2573d5f803e3d5ffd5b505050505050565b5f825f036114c957505f610656565b5f6114d48385611a04565b9050826114e18583611a1b565b1461132b5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016106e8565b5f61132b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506115ba565b5f61132b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506115ef565b5f81836115da5760405162461bcd60e51b81526004016106e8919061161e565b505f6115e68486611a1b565b95945050505050565b5f81848411156116125760405162461bcd60e51b81526004016106e8919061161e565b505f6115e6848661181e565b5f602080835283518060208501525f5b8181101561164a5785810183015185820160400152820161162e565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461167e575f80fd5b50565b5f8060408385031215611692575f80fd5b823561169d8161166a565b946020939093013593505050565b5f805f606084860312156116bd575f80fd5b83356116c88161166a565b925060208401356116d88161166a565b929592945050506040919091013590565b5f602082840312156116f9575f80fd5b5035919050565b5f8060408385031215611711575f80fd5b50508035926020909101359150565b5f60208284031215611730575f80fd5b813561132b8161166a565b8035801515811461174a575f80fd5b919050565b5f6020828403121561175f575f80fd5b61132b8261173b565b5f8060408385031215611779575f80fd5b82356117848161166a565b915060208301356117948161166a565b809150509250929050565b5f80604083850312156117b0575f80fd5b82356117bb8161166a565b91506117c96020840161173b565b90509250929050565b600181811c908216806117e657607f821691505b60208210810361180457634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156106565761065661180a565b808201808211156106565761065661180a565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181815b808511156118b357815f19048211156118995761189961180a565b808516156118a657918102915b93841c939080029061187e565b509250929050565b5f826118c957506001610656565b816118d557505f610656565b81600181146118eb57600281146118f557611911565b6001915050610656565b60ff8411156119065761190661180a565b50506001821b610656565b5060208310610133831016604e8410600b8410161715611934575081810a610656565b61193e8383611879565b805f19048211156119515761195161180a565b029392505050565b5f61132b83836118bb565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611988575f80fd5b815161132b8161166a565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156119e35784516001600160a01b0316835293830193918301916001016119be565b50506001600160a01b03969096166060850152505050608001529392505050565b80820281158282048414176106565761065661180a565b5f82611a3557634e487b7160e01b5f52601260045260245ffd5b50049056fe8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0a26469706673582212206a3cd94b5e4ef1da9f4975cfeb65538860cc7b56e34a9b6bbfe5c467878662d464736f6c63430008180033
Deployed Bytecode Sourcemap
12137:12898:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14662:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16829:169;;;;;;;;;;-1:-1:-1;16829:169:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;16829:169:0;1023:187:1;12595:33:0;;;;;;;;;;-1:-1:-1;12595:33:0;;;;;;;;13344:41;;;;;;;;;;-1:-1:-1;13344:41:0;;;;-1:-1:-1;;;;;13344:41:0;;;;;;-1:-1:-1;;;;;1405:32:1;;;1387:51;;1375:2;1360:18;13344:41:0;1215:229:1;15782:108:0;;;;;;;;;;-1:-1:-1;15870:12:0;;15782:108;;;1595:25:1;;;1583:2;1568:18;15782:108:0;1449:177:1;17480:422:0;;;;;;;;;;-1:-1:-1;17480:422:0;;;;;:::i;:::-;;:::i;15624:93::-;;;;;;;;;;-1:-1:-1;15624:93:0;;15707:2;2234:36:1;;2222:2;2207:18;15624:93:0;2092:184:1;12934:45:0;;;;;;;;;;-1:-1:-1;12934:45:0;;;;;;;;;;;18311:215;;;;;;;;;;-1:-1:-1;18311:215:0;;;;;:::i;:::-;;:::i;24881:114::-;;;;;;;;;;-1:-1:-1;24881:114:0;;;;;:::i;:::-;;:::i;:::-;;13392:28;;;;;;;;;;-1:-1:-1;13392:28:0;;;;-1:-1:-1;;;;;13392:28:0;;;24239:305;;;;;;;;;;-1:-1:-1;24239:305:0;;;;;:::i;:::-;;:::i;9624:90::-;;;;;;;;;;-1:-1:-1;9691:15:0;9624:90;;9526;;;;;;;;;;-1:-1:-1;9599:9:0;;9526:90;;15953:127;;;;;;;;;;-1:-1:-1;15953:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;16054:18:0;16027:7;16054:18;;;:9;:18;;;;;;;15953:127;9118:148;;;;;;;;;;;;;:::i;13149:66::-;;;;;;;;;;;;;;;;8904:79;;;;;;;;;;-1:-1:-1;8942:7:0;8969:6;-1:-1:-1;;;;;8969:6:0;8904:79;;14881:104;;;;;;;;;;;;;:::i;24693:180::-;;;;;;;;;;-1:-1:-1;24693:180:0;;;;;:::i;:::-;;:::i;19029:377::-;;;;;;;;;;-1:-1:-1;19029:377:0;;;;;:::i;:::-;;:::i;9956:304::-;;;;;;;;;;;;;:::i;16293:175::-;;;;;;;;;;-1:-1:-1;16293:175:0;;;;;:::i;:::-;;:::i;12290:43::-;;;;;;;;;;-1:-1:-1;12290:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;9722:226;;;;;;;;;;-1:-1:-1;9722:226:0;;;;;:::i;:::-;;:::i;16531:151::-;;;;;;;;;;-1:-1:-1;16531:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;16647:18:0;;;16620:7;16647:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;16531:151;24111:120;;;;;;;;;;-1:-1:-1;24111:120:0;;;;;:::i;:::-;;:::i;24552:133::-;;;;;;;;;;-1:-1:-1;24552:133:0;;;;;:::i;:::-;;:::i;24016:87::-;;;;;;;;;;;;;:::i;13045:65::-;;;;;;;;;;;;;;;;9274:244;;;;;;;;;;-1:-1:-1;9274:244:0;;;;;:::i;:::-;;:::i;14662:100::-;14716:13;14749:5;14742:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14662:100;:::o;16829:169::-;16912:4;16929:39;8261:10;16952:7;16961:6;16929:8;:39::i;:::-;-1:-1:-1;16986:4:0;16829:169;;;;;:::o;17480:422::-;17586:4;17603:36;17613:6;17621:9;17632:6;17603:9;:36::i;:::-;-1:-1:-1;;;;;17679:19:0;;17652:24;17679:19;;;:11;:19;;;;;;;;8261:10;17679:33;;;;;;;;17731:26;;;;17723:79;;;;-1:-1:-1;;;17723:79:0;;4829:2:1;17723:79:0;;;4811:21:1;4868:2;4848:18;;;4841:30;4907:34;4887:18;;;4880:62;-1:-1:-1;;;4958:18:1;;;4951:38;5006:19;;17723:79:0;;;;;;;;;17813:57;17822:6;8261:10;17844:25;17863:6;17844:16;:25;:::i;:::-;17813:8;:57::i;:::-;-1:-1:-1;17890:4:0;;17480:422;-1:-1:-1;;;;17480:422:0:o;18311:215::-;8261:10;18399:4;18448:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;18448:34:0;;;;;;;;;;18399:4;;18416:80;;18439:7;;18448:47;;18485:10;;18448:47;:::i;24881:114::-;9031:6;;-1:-1:-1;;;;;9031:6:0;8261:10;9031:22;9023:67;;;;-1:-1:-1;;;9023:67:0;;;;;;;:::i;:::-;24959:19:::1;:28:::0;24881:114::o;24239:305::-;9031:6;;-1:-1:-1;;;;;9031:6:0;8261:10;9031:22;9023:67;;;;-1:-1:-1;;;9023:67:0;;;;;;;:::i;:::-;24366:2:::1;24346:16;:22;;:49;;;;24393:2;24372:17;:23;;24346:49;24338:95;;;::::0;-1:-1:-1;;;24338:95:0;;5994:2:1;24338:95:0::1;::::0;::::1;5976:21:1::0;6033:2;6013:18;;;6006:30;6072:34;6052:18;;;6045:62;-1:-1:-1;;;6123:18:1;;;6116:32;6165:19;;24338:95:0::1;5792:398:1::0;24338:95:0::1;24455:15;:34:::0;;;;24500:16:::1;:36:::0;24239:305::o;9118:148::-;9031:6;;-1:-1:-1;;;;;9031:6:0;8261:10;9031:22;9023:67;;;;-1:-1:-1;;;9023:67:0;;;;;;;:::i;:::-;9225:1:::1;9209:6:::0;;9188:40:::1;::::0;-1:-1:-1;;;;;9209:6:0;;::::1;::::0;-1:-1:-1;;;;;;;;;;;9188:40:0;9225:1;;9188:40:::1;9256:1;9239:19:::0;;-1:-1:-1;;;;;;9239:19:0::1;::::0;;9118:148::o;14881:104::-;14937:13;14970:7;14963:14;;;;;:::i;24693:180::-;9031:6;;-1:-1:-1;;;;;9031:6:0;8261:10;9031:22;9023:67;;;;-1:-1:-1;;;9023:67:0;;;;;;;:::i;:::-;24776:26:::1;:36:::0;;;::::1;;;;-1:-1:-1::0;;24776:36:0;;::::1;;::::0;;24828:37:::1;::::0;::::1;::::0;::::1;::::0;24805:7;1188:14:1;1181:22;1163:41;;1151:2;1136:18;;1023:187;24828:37:0::1;;;;;;;;24693:180:::0;:::o;19029:377::-;8261:10;19122:4;19166:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;19166:34:0;;;;;;;;;;19219:35;;;;19211:85;;;;-1:-1:-1;;;19211:85:0;;6397:2:1;19211:85:0;;;6379:21:1;6436:2;6416:18;;;6409:30;6475:34;6455:18;;;6448:62;-1:-1:-1;;;6526:18:1;;;6519:35;6571:19;;19211:85:0;6195:401:1;19211:85:0;19307:67;8261:10;19330:7;19339:34;19358:15;19339:16;:34;:::i;19307:67::-;-1:-1:-1;19394:4:0;;19029:377;-1:-1:-1;;;19029:377:0:o;9956:304::-;10008:14;;-1:-1:-1;;;;;10008:14:0;10026:10;10008:28;10000:76;;;;-1:-1:-1;;;10000:76:0;;6803:2:1;10000:76:0;;;6785:21:1;6842:2;6822:18;;;6815:30;6881:34;6861:18;;;6854:62;-1:-1:-1;;;6932:18:1;;;6925:33;6975:19;;10000:76:0;6601:399:1;10000:76:0;10113:9;;10095:15;:27;10087:71;;;;-1:-1:-1;;;10087:71:0;;7207:2:1;10087:71:0;;;7189:21:1;7246:2;7226:18;;;7219:30;7285:33;7265:18;;;7258:61;7336:18;;10087:71:0;7005:355:1;10087:71:0;10203:14;;;10195:6;;10174:44;;-1:-1:-1;;;;;10203:14:0;;;;10195:6;;;;-1:-1:-1;;;;;;;;;;;10174:44:0;;10238:14;;;10229:23;;-1:-1:-1;;;;;;10229:23:0;-1:-1:-1;;;;;10238:14:0;;;10229:23;;;;;;9956:304::o;16293:175::-;16379:4;16396:42;8261:10;16420:9;16431:6;16396:9;:42::i;9722:226::-;9031:6;;-1:-1:-1;;;;;9031:6:0;8261:10;9031:22;9023:67;;;;-1:-1:-1;;;9023:67:0;;;;;;;:::i;:::-;9803:6:::1;::::0;;;9786:23;;-1:-1:-1;;;;;;9786:23:0;;::::1;-1:-1:-1::0;;;;;9803:6:0;::::1;9786:23;::::0;;;9820:19:::1;::::0;;9862:22:::1;9880:4:::0;9862:15:::1;:22;:::i;:::-;9850:9;:34:::0;9937:1:::1;9921:6:::0;;9900:40:::1;::::0;-1:-1:-1;;;;;9921:6:0;;::::1;::::0;-1:-1:-1;;;;;;;;;;;9900:40:0;9937:1;;9900:40:::1;9722:226:::0;:::o;24111:120::-;9031:6;;-1:-1:-1;;;;;9031:6:0;8261:10;9031:22;9023:67;;;;-1:-1:-1;;;9023:67:0;;;;;;;:::i;:::-;24187:16:::1;:36:::0;;-1:-1:-1;;;;;24187:36:0;;::::1;;;-1:-1:-1::0;;;;;;24187:36:0;;::::1;::::0;;;::::1;::::0;;24111:120::o;24552:133::-;9031:6;;-1:-1:-1;;;;;9031:6:0;8261:10;9031:22;9023:67;;;;-1:-1:-1;;;9023:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;24649:20:0;;;::::1;;::::0;;;:10:::1;:20;::::0;;;;:28;;-1:-1:-1;;24649:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;24552:133::o;24016:87::-;9031:6;;-1:-1:-1;;;;;9031:6:0;8261:10;9031:22;9023:67;;;;-1:-1:-1;;;9023:67:0;;;;;;;:::i;:::-;24075:13:::1;:20:::0;;-1:-1:-1;;24075:20:0::1;24091:4;24075:20;::::0;;24016:87::o;9274:244::-;9031:6;;-1:-1:-1;;;;;9031:6:0;8261:10;9031:22;9023:67;;;;-1:-1:-1;;;9023:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9363:22:0;::::1;9355:73;;;::::0;-1:-1:-1;;;9355:73:0;;7567:2:1;9355:73:0::1;::::0;::::1;7549:21:1::0;7606:2;7586:18;;;7579:30;7645:34;7625:18;;;7618:62;-1:-1:-1;;;7696:18:1;;;7689:36;7742:19;;9355:73:0::1;7365:402:1::0;9355:73:0::1;9465:6;::::0;;9444:38:::1;::::0;-1:-1:-1;;;;;9444:38:0;;::::1;::::0;9465:6;::::1;::::0;-1:-1:-1;;;;;;;;;;;9444:38:0;::::1;9493:6;:17:::0;;-1:-1:-1;;;;;;9493:17:0::1;-1:-1:-1::0;;;;;9493:17:0;;;::::1;::::0;;;::::1;::::0;;9274:244::o;22551:346::-;-1:-1:-1;;;;;22653:19:0;;22645:68;;;;-1:-1:-1;;;22645:68:0;;7974:2:1;22645:68:0;;;7956:21:1;8013:2;7993:18;;;7986:30;8052:34;8032:18;;;8025:62;-1:-1:-1;;;8103:18:1;;;8096:34;8147:19;;22645:68:0;7772:400:1;22645:68:0;-1:-1:-1;;;;;22732:21:0;;22724:68;;;;-1:-1:-1;;;22724:68:0;;8379:2:1;22724:68:0;;;8361:21:1;8418:2;8398:18;;;8391:30;8457:34;8437:18;;;8430:62;-1:-1:-1;;;8508:18:1;;;8501:32;8550:19;;22724:68:0;8177:398:1;22724:68:0;-1:-1:-1;;;;;22805:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;22857:32;;1595:25:1;;;22857:32:0;;1568:18:1;22857:32:0;;;;;;;22551:346;;;:::o;19896:1584::-;-1:-1:-1;;;;;20002:20:0;;19994:70;;;;-1:-1:-1;;;19994:70:0;;8782:2:1;19994:70:0;;;8764:21:1;8821:2;8801:18;;;8794:30;8860:34;8840:18;;;8833:62;-1:-1:-1;;;8911:18:1;;;8904:35;8956:19;;19994:70:0;8580:401:1;19994:70:0;-1:-1:-1;;;;;20083:17:0;;;;;;:9;:17;;;;;;:27;-1:-1:-1;20083:27:0;20075:78;;;;-1:-1:-1;;;20075:78:0;;9188:2:1;20075:78:0;;;9170:21:1;9227:2;9207:18;;;9200:30;9266:34;9246:18;;;9239:62;-1:-1:-1;;;9317:18:1;;;9310:36;9363:19;;20075:78:0;8986:402:1;20075:78:0;20183:6;-1:-1:-1;;;;;20172:17:0;:7;8942;8969:6;-1:-1:-1;;;;;8969:6:0;;8904:79;20172:7;-1:-1:-1;;;;;20172:17:0;;:34;;;-1:-1:-1;20193:13:0;;;;20172:34;20164:65;;;;-1:-1:-1;;;20164:65:0;;9595:2:1;20164:65:0;;;9577:21:1;9634:2;9614:18;;;9607:30;-1:-1:-1;;;9653:18:1;;;9646:49;9712:18;;20164:65:0;9393:343:1;20164:65:0;20335:4;20242:22;16054:18;;;:9;:18;;;;;;20403:19;;20438:16;;20267:6;;16054:18;20379:43;;;;20438:16;;20437:17;:40;;;;;20458:19;20437:40;:67;;;;-1:-1:-1;20491:13:0;;-1:-1:-1;;;;;20481:23:0;;;20491:13;;20481:23;;20437:67;:97;;;;-1:-1:-1;20508:26:0;;;;;;;20437:97;20433:171;;;20551:41;20571:20;20551:19;:41::i;:::-;20629:13;;-1:-1:-1;;;;;20629:13:0;;;20619:23;;;;20616:680;;-1:-1:-1;;;;;20661:21:0;;;;;;:10;:21;;;;;;;;20660:22;:52;;;;-1:-1:-1;;;;;;20686:26:0;;20707:4;20686:26;;20660:52;:80;;;;-1:-1:-1;;;;;;20717:23:0;;;;20660:80;:113;;;;-1:-1:-1;20757:16:0;;-1:-1:-1;;;;;20744:29:0;;;20757:16;;;;;20744:29;;20660:113;20657:304;;;-1:-1:-1;;;;;16054:18:0;;20789;16054;;;:9;:18;;;;;;20878:15;;20854:19;20867:6;16054:18;20854:19;:::i;:::-;20853:40;;20845:114;;;;-1:-1:-1;;;20845:114:0;;9943:2:1;20845:114:0;;;9925:21:1;9982:2;9962:18;;;9955:30;10021:34;10001:18;;;9994:62;10092:32;10072:18;;;10065:60;10142:19;;20845:114:0;9741:426:1;20845:114:0;20774:187;20657:304;-1:-1:-1;;;;;20988:20:0;;;;;;:9;:20;;;;;;;;20987:21;:42;;;;-1:-1:-1;21013:16:0;;;;21012:17;20987:42;20983:122;;;21063:29;21077:6;21085;21063:13;:29::i;:::-;21046:46;;20983:122;20616:680;;;21137:13;;-1:-1:-1;;;;;21137:13:0;;;21124:26;;;;21121:175;;-1:-1:-1;;;;;21170:17:0;;;;;;:9;:17;;;;;;;;21169:18;:39;;;;-1:-1:-1;21192:16:0;;;;21191:17;21169:39;21165:120;;;21242:30;21257:6;21265;21242:14;:30::i;:::-;21225:47;;21165:120;-1:-1:-1;;;;;21316:17:0;;;;;;:9;:17;;;;;:27;;21337:6;;21316:17;:27;;21337:6;;21316:27;:::i;:::-;;;;-1:-1:-1;;;;;;;21354:20:0;;;;;;:9;:20;;;;;:38;;21378:14;;21354:20;:38;;21378:14;;21354:38;:::i;:::-;;;;;;;;21427:9;-1:-1:-1;;;;;21410:43:0;21419:6;-1:-1:-1;;;;;21410:43:0;;21438:14;21410:43;;;;1595:25:1;;1583:2;1568:18;;1449:177;21410:43:0;;;;;;;;21466:7;;;19896:1584;;;:::o;22905:504::-;13258:16;:23;;-1:-1:-1;;13258:23:0;13277:4;13258:23;;;23022:19:::1;::::0;22999:42;::::1;22995:117;;;-1:-1:-1::0;23081:19:0::1;::::0;22995:117:::1;23156:38;23173:20;23156:16;:38::i;:::-;23363:16;::::0;23355:46:::1;::::0;23276:21:::1;::::0;23363:16:::1;::::0;::::1;-1:-1:-1::0;;;;;23363:16:0::1;::::0;23355:46:::1;::::0;::::1;;::::0;23276:21;;23255:18:::1;23355:46:::0;23255:18;23355:46;23276:21;23363:16;23355:46;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;13304:16:0;:24;;-1:-1:-1;;13304:24:0;;;-1:-1:-1;22905:504:0:o;22025:518::-;22166:15;;22098:7;;22143:6;;22166:20;22162:340;;22220:21;22244:56;22283:11;;22297:1;22283:15;;;;:::i;:::-;22276:23;;:2;:23;:::i;:::-;22255:15;;22244:27;;:6;;:10;:27::i;:::-;:31;;:56::i;:::-;22220:80;-1:-1:-1;22332:33:0;:14;22220:80;22332:18;:33::i;:::-;22398:4;22380:24;;;;:9;:24;;;;;:41;;22315:50;;-1:-1:-1;22408:13:0;;22380:24;;;:41;;22408:13;;22380:41;:::i;:::-;;;;-1:-1:-1;;22443:47:0;;1595:25:1;;;22469:4:0;;-1:-1:-1;;;;;22443:47:0;;;;;1583:2:1;1568:18;22443:47:0;;;;;;;22188:314;22162:340;22521:14;22025:518;-1:-1:-1;;;22025:518:0:o;21494:521::-;21636:16;;21568:7;;21613:6;;21636:21;21632:342;;21691:21;21715:57;21755:11;;21769:1;21755:15;;;;:::i;:::-;21748:23;;:2;:23;:::i;:::-;21726:16;;21715:28;;:6;;:10;:28::i;23417:589::-;23567:16;;;23581:1;23567:16;;;;;;;;23543:21;;23567:16;;;;;;;;;;-1:-1:-1;23567:16:0;23543:40;;23612:4;23594;23599:1;23594:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;23594:23:0;;;:7;;;;;;;;;;:23;;;;23638:15;;:22;;;-1:-1:-1;;;23638:22:0;;;;:15;;;;;:20;;:22;;;;;23594:7;;23638:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23628:4;23633:1;23628:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;23628:32:0;;;:7;;;;;;;;;:32;23705:15;;23673:62;;23690:4;;23705:15;23723:11;23673:8;:62::i;:::-;23774:15;;:224;;-1:-1:-1;;;23774:224:0;;-1:-1:-1;;;;;23774:15:0;;;;:66;;:224;;23855:11;;23774:15;;23925:4;;23952;;23972:15;;23774:224;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23472:534;23417:589;:::o;1796:471::-;1854:7;2099:1;2104;2099:6;2095:47;;-1:-1:-1;2129:1:0;2122:8;;2095:47;2154:9;2166:5;2170:1;2166;:5;:::i;:::-;2154:17;-1:-1:-1;2199:1:0;2190:5;2194:1;2154:17;2190:5;:::i;:::-;:10;2182:56;;;;-1:-1:-1;;;2182:56:0;;13642:2:1;2182:56:0;;;13624:21:1;13681:2;13661:18;;;13654:30;13720:34;13700:18;;;13693:62;-1:-1:-1;;;13771:18:1;;;13764:31;13812:19;;2182:56:0;13440:397:1;2743:132:0;2801:7;2828:39;2832:1;2835;2828:39;;;;;;;;;;;;;;;;;:3;:39::i;906:136::-;964:7;991:43;995:1;998;991:43;;;;;;;;;;;;;;;;;:3;:43::i;3371:278::-;3457:7;3492:12;3485:5;3477:28;;;;-1:-1:-1;;;3477:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3516:9:0;3528:5;3532:1;3528;:5;:::i;:::-;3516:17;3371:278;-1:-1:-1;;;;;3371:278:0:o;1345:192::-;1431:7;1467:12;1459:6;;;;1451:29;;;;-1:-1:-1;;;1451:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1491:9:0;1503:5;1507:1;1503;: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;1631:456::-;1708:6;1716;1724;1777:2;1765:9;1756:7;1752:23;1748:32;1745:52;;;1793:1;1790;1783:12;1745:52;1832:9;1819:23;1851:31;1876:5;1851:31;:::i;:::-;1901:5;-1:-1:-1;1958:2:1;1943:18;;1930:32;1971:33;1930:32;1971:33;:::i;:::-;1631:456;;2023:7;;-1:-1:-1;;;2077:2:1;2062:18;;;;2049:32;;1631:456::o;2281:180::-;2340:6;2393:2;2381:9;2372:7;2368:23;2364:32;2361:52;;;2409:1;2406;2399:12;2361:52;-1:-1:-1;2432:23:1;;2281:180;-1:-1:-1;2281:180:1:o;2674:248::-;2742:6;2750;2803:2;2791:9;2782:7;2778:23;2774:32;2771:52;;;2819:1;2816;2809:12;2771:52;-1:-1:-1;;2842:23:1;;;2912:2;2897:18;;;2884:32;;-1:-1:-1;2674:248:1:o;2927:247::-;2986:6;3039:2;3027:9;3018:7;3014:23;3010:32;3007:52;;;3055:1;3052;3045:12;3007:52;3094:9;3081:23;3113:31;3138:5;3113:31;:::i;3179:160::-;3244:20;;3300:13;;3293:21;3283:32;;3273:60;;3329:1;3326;3319:12;3273:60;3179:160;;;:::o;3344:180::-;3400:6;3453:2;3441:9;3432:7;3428:23;3424:32;3421:52;;;3469:1;3466;3459:12;3421:52;3492:26;3508:9;3492:26;:::i;3529:388::-;3597:6;3605;3658:2;3646:9;3637:7;3633:23;3629:32;3626:52;;;3674:1;3671;3664:12;3626:52;3713:9;3700:23;3732:31;3757:5;3732:31;:::i;:::-;3782:5;-1:-1:-1;3839:2:1;3824:18;;3811:32;3852:33;3811:32;3852:33;:::i;:::-;3904:7;3894:17;;;3529:388;;;;;:::o;3922:315::-;3987:6;3995;4048:2;4036:9;4027:7;4023:23;4019:32;4016:52;;;4064:1;4061;4054:12;4016:52;4103:9;4090:23;4122:31;4147:5;4122:31;:::i;:::-;4172:5;-1:-1:-1;4196:35:1;4227:2;4212:18;;4196:35;:::i;:::-;4186:45;;3922:315;;;;;:::o;4242:380::-;4321:1;4317:12;;;;4364;;;4385:61;;4439:4;4431:6;4427:17;4417:27;;4385:61;4492:2;4484:6;4481:14;4461:18;4458:38;4455:161;;4538:10;4533:3;4529:20;4526:1;4519:31;4573:4;4570:1;4563:15;4601:4;4598:1;4591:15;4455:161;;4242:380;;;:::o;5036:127::-;5097:10;5092:3;5088:20;5085:1;5078:31;5128:4;5125:1;5118:15;5152:4;5149:1;5142:15;5168:128;5235:9;;;5256:11;;;5253:37;;;5270:18;;:::i;5301:125::-;5366:9;;;5387:10;;;5384:36;;;5400:18;;:::i;5431:356::-;5633:2;5615:21;;;5652:18;;;5645:30;5711:34;5706:2;5691:18;;5684:62;5778:2;5763:18;;5431:356::o;10172:416::-;10261:1;10298:5;10261:1;10312:270;10333:7;10323:8;10320:21;10312:270;;;10392:4;10388:1;10384:6;10380:17;10374:4;10371:27;10368:53;;;10401:18;;:::i;:::-;10451:7;10441:8;10437:22;10434:55;;;10471:16;;;;10434:55;10550:22;;;;10510:15;;;;10312:270;;;10316:3;10172:416;;;;;:::o;10593:806::-;10642:5;10672:8;10662:80;;-1:-1:-1;10713:1:1;10727:5;;10662:80;10761:4;10751:76;;-1:-1:-1;10798:1:1;10812:5;;10751:76;10843:4;10861:1;10856:59;;;;10929:1;10924:130;;;;10836:218;;10856:59;10886:1;10877:10;;10900:5;;;10924:130;10961:3;10951:8;10948:17;10945:43;;;10968:18;;:::i;:::-;-1:-1:-1;;11024:1:1;11010:16;;11039:5;;10836:218;;11138:2;11128:8;11125:16;11119:3;11113:4;11110:13;11106:36;11100:2;11090:8;11087:16;11082:2;11076:4;11073:12;11069:35;11066:77;11063:159;;;-1:-1:-1;11175:19:1;;;11207:5;;11063:159;11254:34;11279:8;11273:4;11254:34;:::i;:::-;11324:6;11320:1;11316:6;11312:19;11303:7;11300:32;11297:58;;;11335:18;;:::i;:::-;11373:20;;10593:806;-1:-1:-1;;;10593:806:1:o;11404:131::-;11464:5;11493:36;11520:8;11514:4;11493:36;:::i;11672:127::-;11733:10;11728:3;11724:20;11721:1;11714:31;11764:4;11761:1;11754:15;11788:4;11785:1;11778:15;11804:251;11874:6;11927:2;11915:9;11906:7;11902:23;11898:32;11895:52;;;11943:1;11940;11933:12;11895:52;11975:9;11969:16;11994:31;12019:5;11994:31;:::i;12060:980::-;12322:4;12370:3;12359:9;12355:19;12401:6;12390:9;12383:25;12427:2;12465:6;12460:2;12449:9;12445:18;12438:34;12508:3;12503:2;12492:9;12488:18;12481:31;12532:6;12567;12561:13;12598:6;12590;12583:22;12636:3;12625:9;12621:19;12614:26;;12675:2;12667:6;12663:15;12649:29;;12696:1;12706:195;12720:6;12717:1;12714:13;12706:195;;;12785:13;;-1:-1:-1;;;;;12781:39:1;12769:52;;12876:15;;;;12841:12;;;;12817:1;12735:9;12706:195;;;-1:-1:-1;;;;;;;12957:32:1;;;;12952:2;12937:18;;12930:60;-1:-1:-1;;;13021:3:1;13006:19;12999:35;12918:3;12060:980;-1:-1:-1;;;12060:980:1:o;13045:168::-;13118:9;;;13149;;13166:15;;;13160:22;;13146:37;13136:71;;13187:18;;:::i;13218:217::-;13258:1;13284;13274:132;;13328:10;13323:3;13319:20;13316:1;13309:31;13363:4;13360:1;13353:15;13391:4;13388:1;13381:15;13274:132;-1:-1:-1;13420:9:1;;13218:217::o
Swarm Source
ipfs://6a3cd94b5e4ef1da9f4975cfeb65538860cc7b56e34a9b6bbfe5c467878662d4
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.