ETH Price: $3,457.84 (+1.54%)
Gas: 8 Gwei

Token

SakamotoRyoma (SAKAMOTO)
 

Overview

Max Total Supply

1,000,000 SAKAMOTO

Holders

30

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
shinkiro.eth
Balance
7,622.481504913 SAKAMOTO

Value
$0.00
0xe7d8d3fb3ddb219bdb743274d4147293438aacbc
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
SakamotoRyoma

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-07-21
*/

// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.9;
contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}
contract ERC20Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }
    function owner() public view virtual returns (address) {
        return _owner;
    }
    modifier onlyOwner() {
        require(owner() == _msgSender(), "ERC20Ownable: caller is not the owner");
        _;
    }
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "ERC20Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}
library SafeMath {
    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }
    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }
    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
            // benefit is lost if 'b' is also tested.
            // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }
    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }
    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}
interface IERC20 {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);
    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);
}
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 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}
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;
}
library Address {
    function isContract(address account) internal view returns (bool) {
        // According to EIP-1052, 0x0 is the value returned for not-yet created accounts
        // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned
        // for accounts without code, i.e. `keccak256('')`
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        // solhint-disable-next-line no-inline-assembly
        assembly {
            codehash := extcodehash(account)
        }
        return (codehash != accountHash && codehash != 0x0);
    }
    function sendValue(address payable recipient, uint256 amount) internal {
        require(
            address(this).balance >= amount,
            "Address: insufficient balance"
        );

        // solhint-disable-next-line avoid-low-level-calls, avoid-call-value
        (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"
        );
        return _functionCallWithValue(target, data, value, errorMessage);
    }
    function _functionCallWithValue(
        address target,
        bytes memory data,
        uint256 weiValue,
        string memory errorMessage
    ) private returns (bytes memory) {
        require(isContract(target), "Address: call to non-contract");

        (bool success, bytes memory returndata) = target.call{value: weiValue}(
            data
        );
        if (success) {
            return returndata;
        } else {
            if (returndata.length > 0) {
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

contract SakamotoRyoma is Context, IERC20, ERC20Ownable {
    using SafeMath for uint256;
    using Address for address;
    string private constant tokenName = "SakamotoRyoma";
    string private constant tokenSymbol = "SAKAMOTO";
    uint8 private constant tokenDecimal = 9;
    uint256 private constant tokenSupply = 1e6 * 10**tokenDecimal;
    mapping(address => mapping(address => uint256)) private tokenAllowances;
    mapping(address => uint256) private tokenBalance;
    mapping(address => bool) private isMaxWalletExcluded;
    mapping(address => bool) private isLiveExcluded;
    mapping(address => bool) public isBot;
    address payable liquidityAddress;
    address public uniV2Pair;
    IUniswapV2Router02 public uniV2Router;
    uint256 private maxWallet;
    uint256 public activeTradingBlock;
    bool public maxWalletOn = false;
    bool public live = false;
    constructor() payable {
        tokenBalance[address(this)] = tokenSupply;
        maxWallet = tokenSupply.mul(4).div(100);
        liquidityAddress = payable(owner());
        isLiveExcluded[address(this)] = true;
        isLiveExcluded[owner()] = true;
        isLiveExcluded[liquidityAddress] = true;
        isMaxWalletExcluded[address(this)] = true;
        isMaxWalletExcluded[owner()] = true;
        isMaxWalletExcluded[liquidityAddress] = true;
        emit Transfer(address(0), address(this), tokenSupply);
    }
    receive() external payable {}
    function name() external pure override returns (string memory) {
        return tokenName;
    }
    function symbol() external pure override returns (string memory) {
        return tokenSymbol;
    }
    function decimals() external pure override returns (uint8) {
        return tokenDecimal;
    }
    function totalSupply() external pure override returns (uint256) {
        return tokenSupply;
    }
    function balanceOf(address account) public view override returns (uint256) {
        return tokenBalance[account];
    }
    function allowance(address owner, address spender) external view override returns (uint256) {
        return tokenAllowances[owner][spender];
    }
    function approve(address spender, uint256 amount) public override returns (bool) {
        require(_msgSender() != address(0), "ERC20: Can not approve from zero address");
        require(spender != address(0), "ERC20: Can not approve to zero address");
        tokenAllowances[_msgSender()][spender] = amount;
        emit Approval(_msgSender(), spender, amount);
        return true;
    }
    function internalApprove(address owner,address spender,uint256 amount) internal {
        require(owner != address(0), "ERC20: Can not approve from zero address");
        require(spender != address(0), "ERC20: Can not approve to zero address");
        tokenAllowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
    function transfer(address recipient, uint256 amount) external override returns (bool) {
        internalTransfer(_msgSender(), recipient, amount);
        return true;
    }
    function transferFrom(address sender,address recipient,uint256 amount) external override returns (bool) {
        internalTransfer(sender, recipient, amount);
        internalApprove(sender,_msgSender(),tokenAllowances[sender][_msgSender()].sub(amount, "ERC20: Can not transfer. Amount exceeds allowance"));
        return true;
    }
    function GoLive() external onlyOwner returns (bool){
        require(!live, "ERC20: Trades already Live!");
        activeTradingBlock = block.number;
        IUniswapV2Router02 _uniV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniV2Router = _uniV2Router;
        isMaxWalletExcluded[address(uniV2Router)] = true;
        internalApprove(address(this), address(uniV2Router), tokenSupply);
        uniV2Pair = IUniswapV2Factory(_uniV2Router.factory()).createPair(address(this), _uniV2Router.WETH());
        isMaxWalletExcluded[address(uniV2Pair)] = true;
        require(address(this).balance > 0, "ERC20: Must have ETH on contract to Go Live!");
        addLiquidity(balanceOf(address(this)), address(this).balance);
        maxWalletOn = true;
        live = true;
        return true;
    }
    function internalTransfer(address from, address to, uint256 amount) internal {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "ERC20: Transfer amount must be greater than zero");
        require(!isBot[from], "ERC20: Can not transfer from BOT");
        if(!live){
            require(isLiveExcluded[from] || isLiveExcluded[to], "ERC20: Trading Is Not Live!");
        }
        if (maxWalletOn == true && !isMaxWalletExcluded[to]) {
            require(balanceOf(to).add(amount) <= maxWallet, "ERC20: Max amount of tokens for wallet reached");
        }
        tokenTransfer(from, to, amount);
    }
    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) internal {
        internalApprove(address(this), address(uniV2Router), tokenAmount);
        uniV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            liquidityAddress,
            block.timestamp
        );
    }
    function tokenTransfer(address sender,address recipient,uint256 amount) internal {
        tokenBalance[sender] -= amount;
        tokenBalance[recipient] += amount;
        emit Transfer(sender, recipient, amount);
    }
    function withdrawStuckETH() external onlyOwner {
        bool success;
        (success,) = address(owner()).call{value: address(this).balance}("");
    }
    function addBot(address account) external onlyOwner {
        require(!isBot[account], "ERC20: Account already added");
        isBot[account] = true;
    }
	function removeBot(address account) external onlyOwner {
        require(isBot[account], "ERC20: Account is not bot");
        isBot[account] = false;
    }
    function setMaxWalletAmount(uint256 percent, uint256 divider) external onlyOwner {
        maxWallet = tokenSupply.mul(percent).div(divider);
        require(maxWallet <=tokenSupply.mul(4).div(100), "ERC20: Can not set max wallet more than 4%");
    }
    function setStatusMaxWallet(bool trueORfalse) external onlyOwner {
       maxWalletOn = trueORfalse;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"GoLive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"activeTradingBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"live","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletOn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"},{"internalType":"uint256","name":"divider","type":"uint256"}],"name":"setMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"trueORfalse","type":"bool"}],"name":"setStatusMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040819052600b805461ffff19169055600080546001600160a01b031916339081178255918291907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506200005d6009600a620002fb565b6200006c90620f42406200030c565b30600090815260026020526040902055620000cd6064620000b96004620000966009600a620002fb565b620000a590620f42406200030c565b620001c360201b62000dd51790919060201c565b620001da60201b62000de81790919060201c565b600990815560008054600680546001600160a01b0319166001600160a01b0392831617815530808452600460209081526040808620805460ff19908116600190811790925587548716885282882080548216831790558554871688528288208054821683179055848852600390935281872080548416821790558654861687528187208054841682179055935490941685529284208054909316909117909155917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906200019d90600a620002fb565b620001ac90620f42406200030c565b60405190815260200160405180910390a362000351565b6000620001d182846200030c565b90505b92915050565b6000620001d182846200032e565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200023f578160001904821115620002235762000223620001e8565b808516156200023157918102915b93841c939080029062000203565b509250929050565b6000826200025857506001620001d4565b816200026757506000620001d4565b81600181146200028057600281146200028b57620002ab565b6001915050620001d4565b60ff8411156200029f576200029f620001e8565b50506001821b620001d4565b5060208310610133831016604e8410600b8410161715620002d0575081810a620001d4565b620002dc8383620001fe565b8060001904821115620002f357620002f3620001e8565b029392505050565b6000620001d160ff84168362000247565b6000816000190483118215151615620003295762000329620001e8565b500290565b6000826200034c57634e487b7160e01b600052601260045260246000fd5b500490565b6117b880620003616000396000f3fe60806040526004361061014f5760003560e01c80638c714f80116100b6578063dd62ed3e1161006f578063dd62ed3e14610404578063ea090d971461044a578063f2fde38b14610460578063f35900d014610480578063f5648a4f146104a0578063ffecf516146104b557600080fd5b80638c714f80146103365780638da5cb5b14610356578063957aa58c14610374578063958c2e521461039357806395d89b41146103b3578063a9059cbb146103e457600080fd5b80633bbac579116101085780633bbac579146102475780635fecd9261461027757806370a0823114610299578063715018a6146102cf578063745d032f146102e45780638bcea939146102fe57600080fd5b806306fdde031461015b578063095ea7b3146101a357806318160ddd146101d357806323b872dd146101f6578063313ce567146102165780633b4e935a1461023257600080fd5b3661015657005b600080fd5b34801561016757600080fd5b5060408051808201909152600d81526c53616b616d6f746f52796f6d6160981b60208201525b60405161019a9190611346565b60405180910390f35b3480156101af57600080fd5b506101c36101be3660046113b3565b6104d5565b604051901515815260200161019a565b3480156101df57600080fd5b506101e8610588565b60405190815260200161019a565b34801561020257600080fd5b506101c36102113660046113df565b6105a8565b34801561022257600080fd5b506040516009815260200161019a565b34801561023e57600080fd5b506101c3610611565b34801561025357600080fd5b506101c3610262366004611420565b60056020526000908152604090205460ff1681565b34801561028357600080fd5b50610297610292366004611420565b610956565b005b3480156102a557600080fd5b506101e86102b4366004611420565b6001600160a01b031660009081526002602052604090205490565b3480156102db57600080fd5b50610297610a09565b3480156102f057600080fd5b50600b546101c39060ff1681565b34801561030a57600080fd5b5060075461031e906001600160a01b031681565b6040516001600160a01b03909116815260200161019a565b34801561034257600080fd5b5061029761035136600461143d565b610a7d565b34801561036257600080fd5b506000546001600160a01b031661031e565b34801561038057600080fd5b50600b546101c390610100900460ff1681565b34801561039f57600080fd5b5060085461031e906001600160a01b031681565b3480156103bf57600080fd5b5060408051808201909152600881526753414b414d4f544f60c01b602082015261018d565b3480156103f057600080fd5b506101c36103ff3660046113b3565b610aba565b34801561041057600080fd5b506101e861041f36600461145f565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561045657600080fd5b506101e8600a5481565b34801561046c57600080fd5b5061029761047b366004611420565b610ad0565b34801561048c57600080fd5b5061029761049b366004611498565b610bbf565b3480156104ac57600080fd5b50610297610c9c565b3480156104c157600080fd5b506102976104d0366004611420565b610d1e565b6000336104fd5760405162461bcd60e51b81526004016104f4906114ba565b60405180910390fd5b6001600160a01b0383166105235760405162461bcd60e51b81526004016104f490611502565b3360008181526001602090815260408083206001600160a01b03881680855290835292819020869055518581529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35060015b92915050565b60006105966009600a611642565b6105a390620f4240611651565b905090565b60006105b5848484610df4565b610607843361060285604051806060016040528060318152602001611752603191396001600160a01b038a16600090815260016020908152604080832033845290915290205491906110fc565b611128565b5060019392505050565b600080546001600160a01b0316331461063c5760405162461bcd60e51b81526004016104f490611670565b600b54610100900460ff16156106945760405162461bcd60e51b815260206004820152601b60248201527f45524332303a2054726164657320616c7265616479204c69766521000000000060448201526064016104f4565b43600a908155600880546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155600081905260036020527ffb19a963956c9cb662dd3ae48988c4b90766df71ea130109840abe0a1b23dba8805460ff191660011790559061071b903090839061070e90600990611642565b61060290620f4240611651565b806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561075457600080fd5b505afa158015610768573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078c91906116b5565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156107d457600080fd5b505afa1580156107e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061080c91906116b5565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b15801561085457600080fd5b505af1158015610868573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088c91906116b5565b600780546001600160a01b0319166001600160a01b039290921691821790556000908152600360205260409020805460ff19166001179055476109265760405162461bcd60e51b815260206004820152602c60248201527f45524332303a204d757374206861766520455448206f6e20636f6e747261637460448201526b20746f20476f204c6976652160a01b60648201526084016104f4565b3060009081526002602052604090205461094090476111d6565b5050600b805461ffff1916610101179055600190565b6000546001600160a01b031633146109805760405162461bcd60e51b81526004016104f490611670565b6001600160a01b03811660009081526005602052604090205460ff166109e85760405162461bcd60e51b815260206004820152601960248201527f45524332303a204163636f756e74206973206e6f7420626f740000000000000060448201526064016104f4565b6001600160a01b03166000908152600560205260409020805460ff19169055565b6000546001600160a01b03163314610a335760405162461bcd60e51b81526004016104f490611670565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610aa75760405162461bcd60e51b81526004016104f490611670565b600b805460ff1916911515919091179055565b6000610ac7338484610df4565b50600192915050565b6000546001600160a01b03163314610afa5760405162461bcd60e51b81526004016104f490611670565b6001600160a01b038116610b645760405162461bcd60e51b815260206004820152602b60248201527f45524332304f776e61626c653a206e6577206f776e657220697320746865207a60448201526a65726f206164647265737360a81b60648201526084016104f4565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610be95760405162461bcd60e51b81526004016104f490611670565b610c1681610c1084610bfd6009600a611642565b610c0a90620f4240611651565b90610dd5565b90610de8565b600981905550610c346064610c1060046009600a610bfd9190611642565b6009541115610c985760405162461bcd60e51b815260206004820152602a60248201527f45524332303a2043616e206e6f7420736574206d61782077616c6c6574206d6f6044820152697265207468616e20342560b01b60648201526084016104f4565b5050565b6000546001600160a01b03163314610cc65760405162461bcd60e51b81526004016104f490611670565b600080546040516001600160a01b039091169047908381818185875af1925050503d8060008114610d13576040519150601f19603f3d011682016040523d82523d6000602084013e610d18565b606091505b50505050565b6000546001600160a01b03163314610d485760405162461bcd60e51b81526004016104f490611670565b6001600160a01b03811660009081526005602052604090205460ff1615610db15760405162461bcd60e51b815260206004820152601c60248201527f45524332303a204163636f756e7420616c72656164792061646465640000000060448201526064016104f4565b6001600160a01b03166000908152600560205260409020805460ff19166001179055565b6000610de18284611651565b9392505050565b6000610de182846116d2565b6001600160a01b038316610e585760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104f4565b6001600160a01b038216610eba5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104f4565b60008111610f235760405162461bcd60e51b815260206004820152603060248201527f45524332303a205472616e7366657220616d6f756e74206d757374206265206760448201526f726561746572207468616e207a65726f60801b60648201526084016104f4565b6001600160a01b03831660009081526005602052604090205460ff1615610f8c5760405162461bcd60e51b815260206004820181905260248201527f45524332303a2043616e206e6f74207472616e736665722066726f6d20424f5460448201526064016104f4565b600b54610100900460ff16611026576001600160a01b03831660009081526004602052604090205460ff1680610fda57506001600160a01b03821660009081526004602052604090205460ff165b6110265760405162461bcd60e51b815260206004820152601b60248201527f45524332303a2054726164696e67204973204e6f74204c69766521000000000060448201526064016104f4565b600b5460ff161515600114801561105657506001600160a01b03821660009081526003602052604090205460ff16155b156110ec5760095461108782611081856001600160a01b031660009081526002602052604090205490565b90611299565b11156110ec5760405162461bcd60e51b815260206004820152602e60248201527f45524332303a204d617820616d6f756e74206f6620746f6b656e7320666f722060448201526d1dd85b1b195d081c995858da195960921b60648201526084016104f4565b6110f78383836112a5565b505050565b600081848411156111205760405162461bcd60e51b81526004016104f49190611346565b505050900390565b6001600160a01b03831661114e5760405162461bcd60e51b81526004016104f4906114ba565b6001600160a01b0382166111745760405162461bcd60e51b81526004016104f490611502565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6008546111ee9030906001600160a01b031684611128565b60085460065460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c4016060604051808303818588803b15801561125957600080fd5b505af115801561126d573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061129291906116f4565b5050505050565b6000610de18284611722565b6001600160a01b038316600090815260026020526040812080548392906112cd90849061173a565b90915550506001600160a01b038216600090815260026020526040812080548392906112fa908490611722565b92505081905550816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516111c991815260200190565b600060208083528351808285015260005b8181101561137357858101830151858201604001528201611357565b81811115611385576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b03811681146113b057600080fd5b50565b600080604083850312156113c657600080fd5b82356113d18161139b565b946020939093013593505050565b6000806000606084860312156113f457600080fd5b83356113ff8161139b565b9250602084013561140f8161139b565b929592945050506040919091013590565b60006020828403121561143257600080fd5b8135610de18161139b565b60006020828403121561144f57600080fd5b81358015158114610de157600080fd5b6000806040838503121561147257600080fd5b823561147d8161139b565b9150602083013561148d8161139b565b809150509250929050565b600080604083850312156114ab57600080fd5b50508035926020909101359150565b60208082526028908201527f45524332303a2043616e206e6f7420617070726f76652066726f6d207a65726f604082015267206164647265737360c01b606082015260800190565b60208082526026908201527f45524332303a2043616e206e6f7420617070726f766520746f207a65726f206160408201526564647265737360d01b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561159957816000190482111561157f5761157f611548565b8085161561158c57918102915b93841c9390800290611563565b509250929050565b6000826115b057506001610582565b816115bd57506000610582565b81600181146115d357600281146115dd576115f9565b6001915050610582565b60ff8411156115ee576115ee611548565b50506001821b610582565b5060208310610133831016604e8410600b841016171561161c575081810a610582565b611626838361155e565b806000190482111561163a5761163a611548565b029392505050565b6000610de160ff8416836115a1565b600081600019048311821515161561166b5761166b611548565b500290565b60208082526025908201527f45524332304f776e61626c653a2063616c6c6572206973206e6f74207468652060408201526437bbb732b960d91b606082015260800190565b6000602082840312156116c757600080fd5b8151610de18161139b565b6000826116ef57634e487b7160e01b600052601260045260246000fd5b500490565b60008060006060848603121561170957600080fd5b8351925060208401519150604084015190509250925092565b6000821982111561173557611735611548565b500190565b60008282101561174c5761174c611548565b50039056fe45524332303a2043616e206e6f74207472616e736665722e20416d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220d948d6f9370d0053c460d21b6c1383cdfe8784d5e795bdafc6ca9a109dbc85b364736f6c63430008090033

Deployed Bytecode

0x60806040526004361061014f5760003560e01c80638c714f80116100b6578063dd62ed3e1161006f578063dd62ed3e14610404578063ea090d971461044a578063f2fde38b14610460578063f35900d014610480578063f5648a4f146104a0578063ffecf516146104b557600080fd5b80638c714f80146103365780638da5cb5b14610356578063957aa58c14610374578063958c2e521461039357806395d89b41146103b3578063a9059cbb146103e457600080fd5b80633bbac579116101085780633bbac579146102475780635fecd9261461027757806370a0823114610299578063715018a6146102cf578063745d032f146102e45780638bcea939146102fe57600080fd5b806306fdde031461015b578063095ea7b3146101a357806318160ddd146101d357806323b872dd146101f6578063313ce567146102165780633b4e935a1461023257600080fd5b3661015657005b600080fd5b34801561016757600080fd5b5060408051808201909152600d81526c53616b616d6f746f52796f6d6160981b60208201525b60405161019a9190611346565b60405180910390f35b3480156101af57600080fd5b506101c36101be3660046113b3565b6104d5565b604051901515815260200161019a565b3480156101df57600080fd5b506101e8610588565b60405190815260200161019a565b34801561020257600080fd5b506101c36102113660046113df565b6105a8565b34801561022257600080fd5b506040516009815260200161019a565b34801561023e57600080fd5b506101c3610611565b34801561025357600080fd5b506101c3610262366004611420565b60056020526000908152604090205460ff1681565b34801561028357600080fd5b50610297610292366004611420565b610956565b005b3480156102a557600080fd5b506101e86102b4366004611420565b6001600160a01b031660009081526002602052604090205490565b3480156102db57600080fd5b50610297610a09565b3480156102f057600080fd5b50600b546101c39060ff1681565b34801561030a57600080fd5b5060075461031e906001600160a01b031681565b6040516001600160a01b03909116815260200161019a565b34801561034257600080fd5b5061029761035136600461143d565b610a7d565b34801561036257600080fd5b506000546001600160a01b031661031e565b34801561038057600080fd5b50600b546101c390610100900460ff1681565b34801561039f57600080fd5b5060085461031e906001600160a01b031681565b3480156103bf57600080fd5b5060408051808201909152600881526753414b414d4f544f60c01b602082015261018d565b3480156103f057600080fd5b506101c36103ff3660046113b3565b610aba565b34801561041057600080fd5b506101e861041f36600461145f565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561045657600080fd5b506101e8600a5481565b34801561046c57600080fd5b5061029761047b366004611420565b610ad0565b34801561048c57600080fd5b5061029761049b366004611498565b610bbf565b3480156104ac57600080fd5b50610297610c9c565b3480156104c157600080fd5b506102976104d0366004611420565b610d1e565b6000336104fd5760405162461bcd60e51b81526004016104f4906114ba565b60405180910390fd5b6001600160a01b0383166105235760405162461bcd60e51b81526004016104f490611502565b3360008181526001602090815260408083206001600160a01b03881680855290835292819020869055518581529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35060015b92915050565b60006105966009600a611642565b6105a390620f4240611651565b905090565b60006105b5848484610df4565b610607843361060285604051806060016040528060318152602001611752603191396001600160a01b038a16600090815260016020908152604080832033845290915290205491906110fc565b611128565b5060019392505050565b600080546001600160a01b0316331461063c5760405162461bcd60e51b81526004016104f490611670565b600b54610100900460ff16156106945760405162461bcd60e51b815260206004820152601b60248201527f45524332303a2054726164657320616c7265616479204c69766521000000000060448201526064016104f4565b43600a908155600880546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155600081905260036020527ffb19a963956c9cb662dd3ae48988c4b90766df71ea130109840abe0a1b23dba8805460ff191660011790559061071b903090839061070e90600990611642565b61060290620f4240611651565b806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561075457600080fd5b505afa158015610768573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078c91906116b5565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156107d457600080fd5b505afa1580156107e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061080c91906116b5565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b15801561085457600080fd5b505af1158015610868573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088c91906116b5565b600780546001600160a01b0319166001600160a01b039290921691821790556000908152600360205260409020805460ff19166001179055476109265760405162461bcd60e51b815260206004820152602c60248201527f45524332303a204d757374206861766520455448206f6e20636f6e747261637460448201526b20746f20476f204c6976652160a01b60648201526084016104f4565b3060009081526002602052604090205461094090476111d6565b5050600b805461ffff1916610101179055600190565b6000546001600160a01b031633146109805760405162461bcd60e51b81526004016104f490611670565b6001600160a01b03811660009081526005602052604090205460ff166109e85760405162461bcd60e51b815260206004820152601960248201527f45524332303a204163636f756e74206973206e6f7420626f740000000000000060448201526064016104f4565b6001600160a01b03166000908152600560205260409020805460ff19169055565b6000546001600160a01b03163314610a335760405162461bcd60e51b81526004016104f490611670565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610aa75760405162461bcd60e51b81526004016104f490611670565b600b805460ff1916911515919091179055565b6000610ac7338484610df4565b50600192915050565b6000546001600160a01b03163314610afa5760405162461bcd60e51b81526004016104f490611670565b6001600160a01b038116610b645760405162461bcd60e51b815260206004820152602b60248201527f45524332304f776e61626c653a206e6577206f776e657220697320746865207a60448201526a65726f206164647265737360a81b60648201526084016104f4565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610be95760405162461bcd60e51b81526004016104f490611670565b610c1681610c1084610bfd6009600a611642565b610c0a90620f4240611651565b90610dd5565b90610de8565b600981905550610c346064610c1060046009600a610bfd9190611642565b6009541115610c985760405162461bcd60e51b815260206004820152602a60248201527f45524332303a2043616e206e6f7420736574206d61782077616c6c6574206d6f6044820152697265207468616e20342560b01b60648201526084016104f4565b5050565b6000546001600160a01b03163314610cc65760405162461bcd60e51b81526004016104f490611670565b600080546040516001600160a01b039091169047908381818185875af1925050503d8060008114610d13576040519150601f19603f3d011682016040523d82523d6000602084013e610d18565b606091505b50505050565b6000546001600160a01b03163314610d485760405162461bcd60e51b81526004016104f490611670565b6001600160a01b03811660009081526005602052604090205460ff1615610db15760405162461bcd60e51b815260206004820152601c60248201527f45524332303a204163636f756e7420616c72656164792061646465640000000060448201526064016104f4565b6001600160a01b03166000908152600560205260409020805460ff19166001179055565b6000610de18284611651565b9392505050565b6000610de182846116d2565b6001600160a01b038316610e585760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104f4565b6001600160a01b038216610eba5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104f4565b60008111610f235760405162461bcd60e51b815260206004820152603060248201527f45524332303a205472616e7366657220616d6f756e74206d757374206265206760448201526f726561746572207468616e207a65726f60801b60648201526084016104f4565b6001600160a01b03831660009081526005602052604090205460ff1615610f8c5760405162461bcd60e51b815260206004820181905260248201527f45524332303a2043616e206e6f74207472616e736665722066726f6d20424f5460448201526064016104f4565b600b54610100900460ff16611026576001600160a01b03831660009081526004602052604090205460ff1680610fda57506001600160a01b03821660009081526004602052604090205460ff165b6110265760405162461bcd60e51b815260206004820152601b60248201527f45524332303a2054726164696e67204973204e6f74204c69766521000000000060448201526064016104f4565b600b5460ff161515600114801561105657506001600160a01b03821660009081526003602052604090205460ff16155b156110ec5760095461108782611081856001600160a01b031660009081526002602052604090205490565b90611299565b11156110ec5760405162461bcd60e51b815260206004820152602e60248201527f45524332303a204d617820616d6f756e74206f6620746f6b656e7320666f722060448201526d1dd85b1b195d081c995858da195960921b60648201526084016104f4565b6110f78383836112a5565b505050565b600081848411156111205760405162461bcd60e51b81526004016104f49190611346565b505050900390565b6001600160a01b03831661114e5760405162461bcd60e51b81526004016104f4906114ba565b6001600160a01b0382166111745760405162461bcd60e51b81526004016104f490611502565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6008546111ee9030906001600160a01b031684611128565b60085460065460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c4016060604051808303818588803b15801561125957600080fd5b505af115801561126d573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061129291906116f4565b5050505050565b6000610de18284611722565b6001600160a01b038316600090815260026020526040812080548392906112cd90849061173a565b90915550506001600160a01b038216600090815260026020526040812080548392906112fa908490611722565b92505081905550816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516111c991815260200190565b600060208083528351808285015260005b8181101561137357858101830151858201604001528201611357565b81811115611385576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b03811681146113b057600080fd5b50565b600080604083850312156113c657600080fd5b82356113d18161139b565b946020939093013593505050565b6000806000606084860312156113f457600080fd5b83356113ff8161139b565b9250602084013561140f8161139b565b929592945050506040919091013590565b60006020828403121561143257600080fd5b8135610de18161139b565b60006020828403121561144f57600080fd5b81358015158114610de157600080fd5b6000806040838503121561147257600080fd5b823561147d8161139b565b9150602083013561148d8161139b565b809150509250929050565b600080604083850312156114ab57600080fd5b50508035926020909101359150565b60208082526028908201527f45524332303a2043616e206e6f7420617070726f76652066726f6d207a65726f604082015267206164647265737360c01b606082015260800190565b60208082526026908201527f45524332303a2043616e206e6f7420617070726f766520746f207a65726f206160408201526564647265737360d01b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561159957816000190482111561157f5761157f611548565b8085161561158c57918102915b93841c9390800290611563565b509250929050565b6000826115b057506001610582565b816115bd57506000610582565b81600181146115d357600281146115dd576115f9565b6001915050610582565b60ff8411156115ee576115ee611548565b50506001821b610582565b5060208310610133831016604e8410600b841016171561161c575081810a610582565b611626838361155e565b806000190482111561163a5761163a611548565b029392505050565b6000610de160ff8416836115a1565b600081600019048311821515161561166b5761166b611548565b500290565b60208082526025908201527f45524332304f776e61626c653a2063616c6c6572206973206e6f74207468652060408201526437bbb732b960d91b606082015260800190565b6000602082840312156116c757600080fd5b8151610de18161139b565b6000826116ef57634e487b7160e01b600052601260045260246000fd5b500490565b60008060006060848603121561170957600080fd5b8351925060208401519150604084015190509250925092565b6000821982111561173557611735611548565b500190565b60008282101561174c5761174c611548565b50039056fe45524332303a2043616e206e6f74207472616e736665722e20416d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220d948d6f9370d0053c460d21b6c1383cdfe8784d5e795bdafc6ca9a109dbc85b364736f6c63430008090033

Deployed Bytecode Sourcemap

15809:6536:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17283:98;;;;;;;;;;-1:-1:-1;17364:9:0;;;;;;;;;;;;-1:-1:-1;;;17364:9:0;;;;17283:98;;;;;;;:::i;:::-;;;;;;;;17988:397;;;;;;;;;;-1:-1:-1;17988:397:0;;;;;:::i;:::-;;:::i;:::-;;;1237:14:1;;1230:22;1212:41;;1200:2;1185:18;17988:397:0;1072:187:1;17598:101:0;;;;;;;;;;;;;:::i;:::-;;;1410:25:1;;;1398:2;1383:18;17598:101:0;1264:177:1;18932:338:0;;;;;;;;;;-1:-1:-1;18932:338:0;;;;;:::i;:::-;;:::i;17495:97::-;;;;;;;;;;-1:-1:-1;17495:97:0;;16088:1;2049:36:1;;2037:2;2022:18;17495:97:0;1907:184:1;19276:844:0;;;;;;;;;;;;;:::i;16410:37::-;;;;;;;;;;-1:-1:-1;16410:37:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;21809:159;;;;;;;;;;-1:-1:-1;21809:159:0;;;;;:::i;:::-;;:::i;:::-;;17705:122;;;;;;;;;;-1:-1:-1;17705:122:0;;;;;:::i;:::-;-1:-1:-1;;;;;17798:21:0;17771:7;17798:21;;;:12;:21;;;;;;;17705:122;734:148;;;;;;;;;;;;;:::i;16640:31::-;;;;;;;;;;-1:-1:-1;16640:31:0;;;;;;;;16493:24;;;;;;;;;;-1:-1:-1;16493:24:0;;;;-1:-1:-1;;;;;16493:24:0;;;;;;-1:-1:-1;;;;;2512:32:1;;;2494:51;;2482:2;2467:18;16493:24:0;2348:203:1;22234:108:0;;;;;;;;;;-1:-1:-1;22234:108:0;;;;;:::i;:::-;;:::i;510:87::-;;;;;;;;;;-1:-1:-1;556:7:0;583:6;-1:-1:-1;;;;;583:6:0;510:87;;16678:24;;;;;;;;;;-1:-1:-1;16678:24:0;;;;;;;;;;;16524:37;;;;;;;;;;-1:-1:-1;16524:37:0;;;;-1:-1:-1;;;;;16524:37:0;;;17387:102;;;;;;;;;;-1:-1:-1;17470:11:0;;;;;;;;;;;;-1:-1:-1;;;17470:11:0;;;;17387:102;;18750:176;;;;;;;;;;-1:-1:-1;18750:176:0;;;;;:::i;:::-;;:::i;17833:149::-;;;;;;;;;;-1:-1:-1;17833:149:0;;;;;:::i;:::-;-1:-1:-1;;;;;17943:22:0;;;17916:7;17943:22;;;:15;:22;;;;;;;;:31;;;;;;;;;;;;;17833:149;16600:33;;;;;;;;;;;;;;;;888:249;;;;;;;;;;-1:-1:-1;888:249:0;;;;;:::i;:::-;;:::i;21974:254::-;;;;;;;;;;-1:-1:-1;21974:254:0;;;;;:::i;:::-;;:::i;21484:157::-;;;;;;;;;;;;;:::i;21647:159::-;;;;;;;;;;-1:-1:-1;21647:159:0;;;;;:::i;:::-;;:::i;17988:397::-;18063:4;169:10;18080:79;;;;-1:-1:-1;;;18080:79:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;18178:21:0;;18170:72;;;;-1:-1:-1;;;18170:72:0;;;;;;;:::i;:::-;169:10;18253:29;;;;:15;:29;;;;;;;;-1:-1:-1;;;;;18253:38:0;;;;;;;;;;;;:47;;;18316:39;1410:25:1;;;18253:38:0;;169:10;18316:39;;1383:18:1;18316:39:0;;;;;;;-1:-1:-1;18373:4:0;17988:397;;;;;:::o;17598:101::-;17653:7;16141:16;16088:1;16141:2;:16;:::i;:::-;16135:22;;:3;:22;:::i;:::-;17673:18;;17598:101;:::o;18932:338::-;19030:4;19047:43;19064:6;19072:9;19083:6;19047:16;:43::i;:::-;19101:139;19117:6;169:10;19137:102;19179:6;19137:102;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19137:23:0;;;;;;:15;:23;;;;;;;;169:10;19137:37;;;;;;;;;;:41;:102::i;:::-;19101:15;:139::i;:::-;-1:-1:-1;19258:4:0;18932:338;;;;;:::o;19276:844::-;19322:4;583:6;;-1:-1:-1;;;;;583:6:0;169:10;643:23;635:73;;;;-1:-1:-1;;;635:73:0;;;;;;;:::i;:::-;19347:4:::1;::::0;::::1;::::0;::::1;;;19346:5;19338:45;;;::::0;-1:-1:-1;;;19338:45:0;;6827:2:1;19338:45:0::1;::::0;::::1;6809:21:1::0;6866:2;6846:18;;;6839:30;6905:29;6885:18;;;6878:57;6952:18;;19338:45:0::1;6625:351:1::0;19338:45:0::1;19415:12;19394:18;:33:::0;;;19545:11:::1;:26:::0;;-1:-1:-1;;;;;;19545:26:0::1;19491:42;19545:26:::0;;::::1;::::0;;;19438:31:::1;19582:41:::0;;;:19:::1;:41;::::0;;:48;;-1:-1:-1;;19582:48:0::1;19545:26:::0;19582:48:::1;::::0;;19491:42;19641:65:::1;::::0;19665:4:::1;::::0;19491:42;;16141:16:::1;::::0;16088:1:::1;::::0;16141:16:::1;:::i;:::-;16135:22;::::0;:3:::1;:22;:::i;19641:65::-;19747:12;-1:-1:-1::0;;;;;19747:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;19729:52:0::1;;19790:4;19797:12;-1:-1:-1::0;;;;;19797:17:0::1;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19729:88;::::0;-1:-1:-1;;;;;;19729:88:0::1;::::0;;;;;;-1:-1:-1;;;;;7467:15:1;;;19729:88:0::1;::::0;::::1;7449:34:1::0;7519:15;;7499:18;;;7492:43;7384:18;;19729:88:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19717:9;:100:::0;;-1:-1:-1;;;;;;19717:100:0::1;-1:-1:-1::0;;;;;19717:100:0;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;19828:39:0;;;:19:::1;:39;::::0;;;;:46;;-1:-1:-1;;19828:46:0::1;-1:-1:-1::0;19828:46:0::1;::::0;;19893:21:::1;19885:82;;;::::0;-1:-1:-1;;;19885:82:0;;7748:2:1;19885:82:0::1;::::0;::::1;7730:21:1::0;7787:2;7767:18;;;7760:30;7826:34;7806:18;;;7799:62;-1:-1:-1;;;7877:18:1;;;7870:42;7929:19;;19885:82:0::1;7546:408:1::0;19885:82:0::1;20009:4;17771:7:::0;17798:21;;;:12;:21;;;;;;19978:61:::1;::::0;20017:21:::1;19978:12;:61::i;:::-;-1:-1:-1::0;;20050:11:0::1;:18:::0;;-1:-1:-1;;20079:11:0;;;;;-1:-1:-1;;19276:844:0:o;21809:159::-;556:7;583:6;-1:-1:-1;;;;;583:6:0;169:10;643:23;635:73;;;;-1:-1:-1;;;635:73:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21883:14:0;::::1;;::::0;;;:5:::1;:14;::::0;;;;;::::1;;21875:52;;;::::0;-1:-1:-1;;;21875:52:0;;8161:2:1;21875:52:0::1;::::0;::::1;8143:21:1::0;8200:2;8180:18;;;8173:30;8239:27;8219:18;;;8212:55;8284:18;;21875:52:0::1;7959:349:1::0;21875:52:0::1;-1:-1:-1::0;;;;;21938:14:0::1;21955:5;21938:14:::0;;;:5:::1;:14;::::0;;;;:22;;-1:-1:-1;;21938:22:0::1;::::0;;21809:159::o;734:148::-;556:7;583:6;-1:-1:-1;;;;;583:6:0;169:10;643:23;635:73;;;;-1:-1:-1;;;635:73:0;;;;;;;:::i;:::-;841:1:::1;825:6:::0;;804:40:::1;::::0;-1:-1:-1;;;;;825:6:0;;::::1;::::0;804:40:::1;::::0;841:1;;804:40:::1;872:1;855:19:::0;;-1:-1:-1;;;;;;855:19:0::1;::::0;;734:148::o;22234:108::-;556:7;583:6;-1:-1:-1;;;;;583:6:0;169:10;643:23;635:73;;;;-1:-1:-1;;;635:73:0;;;;;;;:::i;:::-;22309:11:::1;:25:::0;;-1:-1:-1;;22309:25:0::1;::::0;::::1;;::::0;;;::::1;::::0;;22234:108::o;18750:176::-;18830:4;18847:49;169:10;18878:9;18889:6;18847:16;:49::i;:::-;-1:-1:-1;18914:4:0;18750:176;;;;:::o;888:249::-;556:7;583:6;-1:-1:-1;;;;;583:6:0;169:10;643:23;635:73;;;;-1:-1:-1;;;635:73:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;977:22:0;::::1;969:78;;;::::0;-1:-1:-1;;;969:78:0;;8515:2:1;969:78:0::1;::::0;::::1;8497:21:1::0;8554:2;8534:18;;;8527:30;8593:34;8573:18;;;8566:62;-1:-1:-1;;;8644:18:1;;;8637:41;8695:19;;969:78:0::1;8313:407:1::0;969:78:0::1;1084:6;::::0;;1063:38:::1;::::0;-1:-1:-1;;;;;1063:38:0;;::::1;::::0;1084:6;::::1;::::0;1063:38:::1;::::0;::::1;1112:6;:17:::0;;-1:-1:-1;;;;;;1112:17:0::1;-1:-1:-1::0;;;;;1112:17:0;;;::::1;::::0;;;::::1;::::0;;888:249::o;21974:254::-;556:7;583:6;-1:-1:-1;;;;;583:6:0;169:10;643:23;635:73;;;;-1:-1:-1;;;635:73:0;;;;;;;:::i;:::-;22078:37:::1;22107:7:::0;22078:24:::1;22094:7:::0;16141:16:::1;16088:1;16141:2;:16;:::i;:::-;16135:22;::::0;:3:::1;:22;:::i;:::-;22078:15:::0;::::1;:24::i;:::-;:28:::0;::::1;:37::i;:::-;22066:9;:49;;;;22146:27;22169:3;22146:18;22162:1;16088;16141:2;:16;;;;:::i;22146:27::-;22134:9;;:39;;22126:94;;;::::0;-1:-1:-1;;;22126:94:0;;8927:2:1;22126:94:0::1;::::0;::::1;8909:21:1::0;8966:2;8946:18;;;8939:30;9005:34;8985:18;;;8978:62;-1:-1:-1;;;9056:18:1;;;9049:40;9106:19;;22126:94:0::1;8725:406:1::0;22126:94:0::1;21974:254:::0;;:::o;21484:157::-;556:7;583:6;-1:-1:-1;;;;;583:6:0;169:10;643:23;635:73;;;;-1:-1:-1;;;635:73:0;;;;;;;:::i;:::-;21542:12:::1;583:6:::0;;21578:55:::1;::::0;-1:-1:-1;;;;;583:6:0;;;;21607:21:::1;::::0;21542:12;21578:55;21542:12;21578:55;21607:21;583:6;21578:55:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;21484:157:0:o;21647:159::-;556:7;583:6;-1:-1:-1;;;;;583:6:0;169:10;643:23;635:73;;;;-1:-1:-1;;;635:73:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21719:14:0;::::1;;::::0;;;:5:::1;:14;::::0;;;;;::::1;;21718:15;21710:56;;;::::0;-1:-1:-1;;;21710:56:0;;9548:2:1;21710:56:0::1;::::0;::::1;9530:21:1::0;9587:2;9567:18;;;9560:30;9626;9606:18;;;9599:58;9674:18;;21710:56:0::1;9346:352:1::0;21710:56:0::1;-1:-1:-1::0;;;;;21777:14:0::1;;::::0;;;:5:::1;:14;::::0;;;;:21;;-1:-1:-1;;21777:21:0::1;21794:4;21777:21;::::0;;21647:159::o;2713:98::-;2771:7;2798:5;2802:1;2798;:5;:::i;:::-;2791:12;2713:98;-1:-1:-1;;;2713:98:0:o;2817:::-;2875:7;2902:5;2906:1;2902;:5;:::i;20126:746::-;-1:-1:-1;;;;;20222:18:0;;20214:68;;;;-1:-1:-1;;;20214:68:0;;10127:2:1;20214:68:0;;;10109:21:1;10166:2;10146:18;;;10139:30;10205:34;10185:18;;;10178:62;-1:-1:-1;;;10256:18:1;;;10249:35;10301:19;;20214:68:0;9925:401:1;20214:68:0;-1:-1:-1;;;;;20301:16:0;;20293:64;;;;-1:-1:-1;;;20293:64:0;;10533:2:1;20293:64:0;;;10515:21:1;10572:2;10552:18;;;10545:30;10611:34;10591:18;;;10584:62;-1:-1:-1;;;10662:18:1;;;10655:33;10705:19;;20293:64:0;10331:399:1;20293:64:0;20385:1;20376:6;:10;20368:71;;;;-1:-1:-1;;;20368:71:0;;10937:2:1;20368:71:0;;;10919:21:1;10976:2;10956:18;;;10949:30;11015:34;10995:18;;;10988:62;-1:-1:-1;;;11066:18:1;;;11059:46;11122:19;;20368:71:0;10735:412:1;20368:71:0;-1:-1:-1;;;;;20459:11:0;;;;;;:5;:11;;;;;;;;20458:12;20450:57;;;;-1:-1:-1;;;20450:57:0;;11354:2:1;20450:57:0;;;11336:21:1;;;11373:18;;;11366:30;11432:34;11412:18;;;11405:62;11484:18;;20450:57:0;11152:356:1;20450:57:0;20522:4;;;;;;;20518:118;;-1:-1:-1;;;;;20550:20:0;;;;;;:14;:20;;;;;;;;;:42;;-1:-1:-1;;;;;;20574:18:0;;;;;;:14;:18;;;;;;;;20550:42;20542:82;;;;-1:-1:-1;;;20542:82:0;;11715:2:1;20542:82:0;;;11697:21:1;11754:2;11734:18;;;11727:30;11793:29;11773:18;;;11766:57;11840:18;;20542:82:0;11513:351:1;20542:82:0;20650:11;;;;:19;;:11;:19;:47;;;;-1:-1:-1;;;;;;20674:23:0;;;;;;:19;:23;;;;;;;;20673:24;20650:47;20646:177;;;20751:9;;20722:25;20740:6;20722:13;20732:2;-1:-1:-1;;;;;17798:21:0;17771:7;17798:21;;;:12;:21;;;;;;;17705:122;20722:13;:17;;:25::i;:::-;:38;;20714:97;;;;-1:-1:-1;;;20714:97:0;;12071:2:1;20714:97:0;;;12053:21:1;12110:2;12090:18;;;12083:30;12149:34;12129:18;;;12122:62;-1:-1:-1;;;12200:18:1;;;12193:44;12254:19;;20714:97:0;11869:410:1;20714:97:0;20833:31;20847:4;20853:2;20857:6;20833:13;:31::i;:::-;20126:746;;;:::o;3025:206::-;3111:7;3172:12;3164:6;;;;3156:29;;;;-1:-1:-1;;;3156:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;3207:5:0;;;3025:206::o;18391:353::-;-1:-1:-1;;;;;18490:19:0;;18482:72;;;;-1:-1:-1;;;18482:72:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18573:21:0;;18565:72;;;;-1:-1:-1;;;18565:72:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18648:22:0;;;;;;;:15;:22;;;;;;;;:31;;;;;;;;;;;;;:40;;;18704:32;;1410:25:1;;;18704:32:0;;1383:18:1;18704:32:0;;;;;;;;18391:353;;;:::o;20878:369::-;20999:11;;20960:65;;20984:4;;-1:-1:-1;;;;;20999:11:0;21013;20960:15;:65::i;:::-;21036:11;;21182:16;;21036:203;;-1:-1:-1;;;21036:203:0;;21104:4;21036:203;;;12633:34:1;12683:18;;;12676:34;;;21036:11:0;12726:18:1;;;12719:34;;;12769:18;;;12762:34;-1:-1:-1;;;;;21182:16:0;;;12812:19:1;;;12805:44;21213:15:0;12865:19:1;;;12858:35;21036:11:0;;;:27;;21071:9;;12567:19:1;;21036:203:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;20878:369;;:::o;2505:98::-;2563:7;2590:5;2594:1;2590;:5;:::i;21253:225::-;-1:-1:-1;;;;;21345:20:0;;;;;;:12;:20;;;;;:30;;21369:6;;21345:20;:30;;21369:6;;21345:30;:::i;:::-;;;;-1:-1:-1;;;;;;;21386:23:0;;;;;;:12;:23;;;;;:33;;21413:6;;21386:23;:33;;21413:6;;21386:33;:::i;:::-;;;;;;;;21452:9;-1:-1:-1;;;;;21435:35:0;21444:6;-1:-1:-1;;;;;21435:35:0;;21463:6;21435:35;;;;1410:25:1;;1398:2;1383:18;;1264:177;14:597;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;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:131::-;-1:-1:-1;;;;;691:31:1;;681:42;;671:70;;737:1;734;727:12;671:70;616:131;:::o;752:315::-;820:6;828;881:2;869:9;860:7;856:23;852:32;849:52;;;897:1;894;887:12;849:52;936:9;923:23;955:31;980:5;955:31;:::i;:::-;1005:5;1057:2;1042:18;;;;1029:32;;-1:-1:-1;;;752:315:1:o;1446:456::-;1523:6;1531;1539;1592:2;1580:9;1571:7;1567:23;1563:32;1560:52;;;1608:1;1605;1598:12;1560:52;1647:9;1634:23;1666:31;1691:5;1666:31;:::i;:::-;1716:5;-1:-1:-1;1773:2:1;1758:18;;1745:32;1786:33;1745:32;1786:33;:::i;:::-;1446:456;;1838:7;;-1:-1:-1;;;1892:2:1;1877:18;;;;1864:32;;1446:456::o;2096:247::-;2155:6;2208:2;2196:9;2187:7;2183:23;2179:32;2176:52;;;2224:1;2221;2214:12;2176:52;2263:9;2250:23;2282:31;2307:5;2282:31;:::i;2556:273::-;2612:6;2665:2;2653:9;2644:7;2640:23;2636:32;2633:52;;;2681:1;2678;2671:12;2633:52;2720:9;2707:23;2773:5;2766:13;2759:21;2752:5;2749:32;2739:60;;2795:1;2792;2785:12;3069:388;3137:6;3145;3198:2;3186:9;3177:7;3173:23;3169:32;3166:52;;;3214:1;3211;3204:12;3166:52;3253:9;3240:23;3272:31;3297:5;3272:31;:::i;:::-;3322:5;-1:-1:-1;3379:2:1;3364:18;;3351:32;3392:33;3351:32;3392:33;:::i;:::-;3444:7;3434:17;;;3069:388;;;;;:::o;3462:248::-;3530:6;3538;3591:2;3579:9;3570:7;3566:23;3562:32;3559:52;;;3607:1;3604;3597:12;3559:52;-1:-1:-1;;3630:23:1;;;3700:2;3685:18;;;3672:32;;-1:-1:-1;3462:248:1:o;3715:404::-;3917:2;3899:21;;;3956:2;3936:18;;;3929:30;3995:34;3990:2;3975:18;;3968:62;-1:-1:-1;;;4061:2:1;4046:18;;4039:38;4109:3;4094:19;;3715:404::o;4124:402::-;4326:2;4308:21;;;4365:2;4345:18;;;4338:30;4404:34;4399:2;4384:18;;4377:62;-1:-1:-1;;;4470:2:1;4455:18;;4448:36;4516:3;4501:19;;4124:402::o;4531:127::-;4592:10;4587:3;4583:20;4580:1;4573:31;4623:4;4620:1;4613:15;4647:4;4644:1;4637:15;4663:422;4752:1;4795:5;4752:1;4809:270;4830:7;4820:8;4817:21;4809:270;;;4889:4;4885:1;4881:6;4877:17;4871:4;4868:27;4865:53;;;4898:18;;:::i;:::-;4948:7;4938:8;4934:22;4931:55;;;4968:16;;;;4931:55;5047:22;;;;5007:15;;;;4809:270;;;4813:3;4663:422;;;;;:::o;5090:806::-;5139:5;5169:8;5159:80;;-1:-1:-1;5210:1:1;5224:5;;5159:80;5258:4;5248:76;;-1:-1:-1;5295:1:1;5309:5;;5248:76;5340:4;5358:1;5353:59;;;;5426:1;5421:130;;;;5333:218;;5353:59;5383:1;5374:10;;5397:5;;;5421:130;5458:3;5448:8;5445:17;5442:43;;;5465:18;;:::i;:::-;-1:-1:-1;;5521:1:1;5507:16;;5536:5;;5333:218;;5635:2;5625:8;5622:16;5616:3;5610:4;5607:13;5603:36;5597:2;5587:8;5584:16;5579:2;5573:4;5570:12;5566:35;5563:77;5560:159;;;-1:-1:-1;5672:19:1;;;5704:5;;5560:159;5751:34;5776:8;5770:4;5751:34;:::i;:::-;5821:6;5817:1;5813:6;5809:19;5800:7;5797:32;5794:58;;;5832:18;;:::i;:::-;5870:20;;5090:806;-1:-1:-1;;;5090:806:1:o;5901:140::-;5959:5;5988:47;6029:4;6019:8;6015:19;6009:4;5988:47;:::i;6046:168::-;6086:7;6152:1;6148;6144:6;6140:14;6137:1;6134:21;6129:1;6122:9;6115:17;6111:45;6108:71;;;6159:18;;:::i;:::-;-1:-1:-1;6199:9:1;;6046:168::o;6219:401::-;6421:2;6403:21;;;6460:2;6440:18;;;6433:30;6499:34;6494:2;6479:18;;6472:62;-1:-1:-1;;;6565:2:1;6550:18;;6543:35;6610:3;6595:19;;6219:401::o;6981:251::-;7051:6;7104:2;7092:9;7083:7;7079:23;7075:32;7072:52;;;7120:1;7117;7110:12;7072:52;7152:9;7146:16;7171:31;7196:5;7171:31;:::i;9703:217::-;9743:1;9769;9759:132;;9813:10;9808:3;9804:20;9801:1;9794:31;9848:4;9845:1;9838:15;9876:4;9873:1;9866:15;9759:132;-1:-1:-1;9905:9:1;;9703:217::o;12904:306::-;12992:6;13000;13008;13061:2;13049:9;13040:7;13036:23;13032:32;13029:52;;;13077:1;13074;13067:12;13029:52;13106:9;13100:16;13090:26;;13156:2;13145:9;13141:18;13135:25;13125:35;;13200:2;13189:9;13185:18;13179:25;13169:35;;12904:306;;;;;:::o;13215:128::-;13255:3;13286:1;13282:6;13279:1;13276:13;13273:39;;;13292:18;;:::i;:::-;-1:-1:-1;13328:9:1;;13215:128::o;13348:125::-;13388:4;13416:1;13413;13410:8;13407:34;;;13421:18;;:::i;:::-;-1:-1:-1;13458:9:1;;13348:125::o

Swarm Source

ipfs://d948d6f9370d0053c460d21b6c1383cdfe8784d5e795bdafc6ca9a109dbc85b3
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.