ETH Price: $3,439.17 (+0.11%)

Token

Build the Bear (BTB)
 

Overview

Max Total Supply

1,000,000 BTB

Holders

36 (0.00%)

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
Justin Sun
Balance
5,000 BTB

Value
$0.00
0x3ddfa8ec3052539b6c9549f12cea2c295cff5296
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Build the Bear is an open-source platform designed to improve the quality of participation in DeFi through education, support, and access.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
BuildtheBear

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-01-05
*/

//SPDX-License-Identifier: MIT

/**
▄▄▄▄· ▄• ▄▌▪  ▄▄▌  ·▄▄▄▄      ▄▄▄▄▄ ▄ .▄▄▄▄ .    ▄▄▄▄· ▄▄▄ . ▄▄▄· ▄▄▄
▐█ ▀█▪█▪██▌██ ██•  ██▪ ██     •██  ██▪▐█▀▄.▀·    ▐█ ▀█▪▀▄.▀·▐█ ▀█ ▀▄ █·
▐█▀▀█▄█▌▐█▌▐█·██▪  ▐█· ▐█▌     ▐█.▪██▀▐█▐▀▀▪▄    ▐█▀▀█▄▐▀▀▪▄▄█▀▀█ ▐▀▀▄
██▄▪▐█▐█▄█▌▐█▌▐█▌▐▌██. ██      ▐█▌·██▌▐▀▐█▄▄▌    ██▄▪▐█▐█▄▄▌▐█ ▪▐▌▐█•█▌
·▀▀▀▀  ▀▀▀ ▀▀▀.▀▀▀ ▀▀▀▀▀•      ▀▀▀ ▀▀▀ · ▀▀▀     ·▀▀▀▀  ▀▀▀  ▀  ▀ .▀  ▀
           -... ..- .. .-.. -..    - .... .    -... . .- .-.

buildthebear.market, buildthebear.online
t.me/buildthebear, twitter.com/buildingthebear
*/

pragma solidity ^0.8.17;

/* - INTERFACES - */

// Uniswap V2 Factory
interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint256);

    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);
    function setFeeTo(address) external;
    function setFeeToSetter(address) external;

    function createPair(address tokenA, address tokenB) external returns (address pair);
    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint256) external view returns (address pair);
    function allPairsLength() external view returns (uint256);
}

// Uniswap V2 Pair
interface IUniswapV2Pair {
    event Approval(address indexed owner, address indexed spender, uint256 value);
    event Transfer(address indexed from, address indexed to, uint256 value);

    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint256);
    function balanceOf(address owner) external view returns (uint256);
    function allowance(address owner, address spender) external view returns (uint256);

    function approve(address spender, uint256 value) external returns (bool);
    function transfer(address to, uint256 value) external returns (bool);
    function transferFrom(address from, address to, uint256 value) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);

    function nonces(address owner) external view returns (uint256);
    function permit(address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) external;

    event Mint(address indexed sender, uint256 amount0, uint256 amount1);
    event Burn(address indexed sender, uint256 amount0, uint256 amount1, address indexed to);
    event Swap(address indexed sender, uint256 amount0In, uint256 amount1In, uint256 amount0Out, uint256 amount1Out, address indexed to);
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint256);

    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function price0CumulativeLast() external view returns (uint256);
    function price1CumulativeLast() external view returns (uint256);
    function kLast() external view returns (uint256);
    function mint(address to) external returns (uint256 liquidity);
    function burn(address to) external returns (uint256 amount0, uint256 amount1);

    function swap(uint256 amount0Out, uint256 amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;
    function initialize(address, address) external;
}

// Uniswap V1 Router
interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint256 amountADesired,
        uint256 amountBDesired,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline)
    external returns (uint256 amountA, uint256 amountB, uint256 liquidity);

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    ) external payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity);

    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint256 liquidity,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline
    ) external returns (uint256 amountA, uint256 amountB);

    function removeLiquidityETH(
        address token,
        uint256 liquidity,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    ) external returns (uint256 amountToken, uint256 amountETH);

    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint256 liquidity,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline,
        bool approveMax,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external returns (uint256 amountA, uint256 amountB);

    function removeLiquidityETHWithPermit(
        address token,
        uint256 liquidity,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline,
        bool approveMax,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external returns (uint256 amountToken, uint256 amountETH);

    function swapExactTokensForTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);

    function swapTokensForExactTokens(
        uint256 amountOut,
        uint256 amountInMax,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);

    function swapExactETHForTokens(
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable returns (uint256[] memory amounts);

    function swapTokensForExactETH(
        uint256 amountOut,
        uint256 amountInMax,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);

    function swapExactTokensForETH(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);

    function swapETHForExactTokens(
        uint256 amountOut,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable returns (uint256[] memory amounts);

    function quote(uint256 amountA, uint256 reserveA, uint256 reserveB) external pure returns (uint256 amountB);
    function getAmountOut(uint256 amountIn, uint256 reserveIn, uint256 reserveOut) external pure returns (uint256 amountOut);
    function getAmountIn(uint256 amountOut, uint256 reserveIn, uint256 reserveOut) external pure returns (uint256 amountIn);
    function getAmountsIn(uint256 amountOut, address[] calldata path) external view returns (uint256[] memory amounts);
    function getAmountsOut(uint256 amountIn, address[] calldata path) external view returns (uint256[] memory amounts);
}

// Uniswap V2 Router
interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint256 liquidity,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    ) external returns (uint256 amountETH);

    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint256 liquidity,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline,
        bool approveMax,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external returns (uint256 amountETH);

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable;

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
}

// ERC-20
interface IERC20 {
    event Approval(address indexed owner, address indexed spender, uint256 value);
    event Transfer(address indexed from, address indexed to, uint256 value);

    function approve(address spender, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function totalSupply() external view returns (uint256);
    function transfer(address to, uint256 amount) external returns (bool);
    function transferFrom(address from, address to, uint256 amount) external returns (bool);
}

// ERC-20 Metadata
interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
}


/* - CONTRACTS - */

// ERC-20
contract ERC20 is IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;

    string private contractName;
    string private contractSymbol;

    uint8 private constant DECIMALS = 9;
    uint256 private constant SUPPLY = 1000000 gwei;

    constructor(string memory n, string memory s) {
        contractName = n;
        contractSymbol = s;

        _balances[msg.sender] = SUPPLY;

        emit Transfer(address(0), msg.sender, SUPPLY);
    }

    function symbol() external view virtual override returns (string memory) { return contractSymbol; }
    function name() external view virtual override returns (string memory) { return contractName; }
    function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; }
    function decimals() public pure virtual override returns (uint8) { return DECIMALS; }
    function totalSupply() external view virtual override returns (uint256) { return SUPPLY; }

    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) external virtual returns (bool) {
        address owner = msg.sender;

        uint256 currentAllowance = allowance(owner, spender);

        require(currentAllowance >= subtractedValue, "Allowance cannot be less than zero");

        unchecked { _approve(owner, spender, currentAllowance - subtractedValue); }

        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) external virtual returns (bool) {
        address owner = msg.sender;

        _approve(owner, spender, allowance(owner, spender) + addedValue);

        return true;
    }

    function _spendAllowance(address owner, address spender, uint256 amount) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);

        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "Insufficient allowance");

            unchecked { _approve(owner, spender, currentAllowance - amount); }
        }
    }

    function approve(address spender, uint256 amount) external virtual override returns (bool) {
        address owner = msg.sender;

        _approve(owner, spender, amount);

        return true;
    }

    function _approve(address owner, address spender, uint256 amount) internal virtual {
        require(owner != address(0), "Cannot approve from the zero address");
        require(spender != address(0), "Cannot approve to the zero address");

        _allowances[owner][spender] = amount;

        emit Approval(owner, spender, amount);
    }

    function transfer(address to, uint256 amount) external virtual override returns (bool) {
        _transfer(msg.sender, to, amount);

        return true;
    }

    function _transfer(address from, address to, uint256 amount) internal virtual {
        unchecked {
            _balances[from] -= amount;
            _balances[to] += amount;
        }

        emit Transfer(from, to, amount);
    }

    function transferFrom(address from, address to, uint256 amount) external virtual override returns (bool) {
        address spender = msg.sender;

        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);

        return true;
    }
}

// ʕ •ᴥ•ʔ Build the Bear, Bring the Bull
contract BuildtheBear is ERC20 {
    IUniswapV2Router02 public immutable uniswapV2Router;

    address public owner;
    address public immutable uniswapV2Pair;

    mapping(address => bool) private isExcludedFromFee;

    // 99% tax at launch to prevent snipers, gradually lowered to 4%
    uint8 public preLaunchFee = 99;
    uint8 public swapInFee = preLaunchFee;
    uint8 public swapOutFee = preLaunchFee;
    uint256 public maximumHold = 10000 gwei;
    // Thresholds that trigger liquidity additions and contract swaps
    uint256 public thresholdForLiquidityAdd = 2000 gwei;
    uint256 public amountForLiquidityAdd = 500 gwei;
    uint256 public thresholdForETHSwap = 3000 gwei;
    uint256 public amountForETHSwap = 500 gwei;

    bool contractSwapping;
    bool contractAddingLiquidity;

    event ContractSwappedTokens(uint256 tokensSwapped);
    event ContractAddedLiquidity(uint256 tokensAdded);

    modifier contractSwap() { contractSwapping = true; _; contractSwapping = false; }
    modifier contractAdd() { contractAddingLiquidity = true; _; contractAddingLiquidity = false; }
    modifier onlyOwner() { require(msg.sender == owner, "Function can only be called by the contract owner"); _; }

    // Create the contract and Uniswap pair (BTB/WETH), exclude router, contract, and owner from swap fees
    constructor() ERC20("Build the Bear", "BTB") {
        owner = msg.sender;

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router = _uniswapV2Router;

        isExcludedFromFee[address(uniswapV2Router)] = true;
        isExcludedFromFee[address(this)] = true;
        isExcludedFromFee[msg.sender] = true;

        _approve(address(this), address(uniswapV2Router), type(uint256).max);
    }

    // On transfer of BTB tokens
    function _transfer(address from, address to, uint256 amount) internal override {
        require(balanceOf(from) >= amount, "Transfer exceeds account balance");

        uint256 transferAmount;
        uint8 swapFee = swapOutFee;

        // Determine if transferring to or from liquidity pair, calculate fee & transferAmount
        if (from == uniswapV2Pair || to == uniswapV2Pair && !contractSwapping && !contractAddingLiquidity) {
            if (from != uniswapV2Pair) {
                uint256 contractTokenBalance = balanceOf(address(this));

                swapFee = swapInFee;

                // Determine if contract's token balance exceeds the threshold for swapping tokens
                if (contractTokenBalance >= thresholdForETHSwap) {
                    contractSwapTokens(amountForETHSwap);
                } else if (contractTokenBalance >= thresholdForLiquidityAdd) {
                    // Or if contract's token balance exceeds the threshold for adding liquidity
                    contractAddLiquidity(amountForLiquidityAdd);
                }
            }

            if (isExcludedFromFee[from] || isExcludedFromFee[to]) {
                transferAmount = amount;
            } else {
                require(amount <= maximumHold, "Transfer exceeds maximum amount");

                if (from == uniswapV2Pair) {
                    require((amount + balanceOf(to)) <= maximumHold, "Transfer exceeds maximum hold");

                    swapFee = swapOutFee;
                }

                uint256 fee;

                unchecked {
                    swapFee > 0 ? fee = ((amount * swapFee) / 100) : fee = 0;
                    transferAmount = amount - fee;
                }

                if (fee > 0) { super._transfer(from, address(this), fee); }
            }

            super._transfer(from, to, transferAmount);
        } else {
            super._transfer(from, to, amount);
        }
    }

    // Swap a portion of the contract's token balance collected from marketing and development fees
    function contractSwapTokens(uint256 tokenAmount) private contractSwap {
        address[] memory path = new address[](2);

        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

        try uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount, 0, path, address(this), (block.timestamp + 300)) {
            emit ContractSwappedTokens(tokenAmount);
        } catch {}
    }

    // Prioritize adding liquidity
    function contractAddLiquidity(uint256 tokenAmount) private contractAdd {
        uint256 initialBalance = address(this).balance;
        uint256 swapHalf = (tokenAmount / 2);
        uint256 addHalf = (tokenAmount - swapHalf);

        contractSwapTokens(swapHalf);

        uint256 newBalance = (address(this).balance - initialBalance);

        try uniswapV2Router.addLiquidityETH{value: newBalance}(address(this), addHalf, 0, 0, owner, block.timestamp) {
            emit ContractAddedLiquidity(tokenAmount);
        } catch {}
    }

    function updateOwner(address newOwner) external onlyOwner {
        require (newOwner != address(0), "New owner cannot be the zero address");

        owner = newOwner;
    }

    function updateMaximumHold(uint256 newMaximumHold) external onlyOwner {
        require (newMaximumHold >= 10000 gwei && newMaximumHold <= 50000 gwei, "Maximum hold must be between 1% and 5%");

        maximumHold = newMaximumHold;
    }

    function updateSwapFees(uint8 newSwapInFee, uint8 newSwapOutFee) external onlyOwner {
        require (newSwapInFee <= 30 && newSwapOutFee <= 30, "Fees cannot exceed 30%");

        swapInFee = newSwapInFee;
        swapOutFee = newSwapOutFee;
    }

    function updateContractLiquidityAdd(uint256 newThresholdForLiquidityAdd, uint256 newAmountForLiquidityAdd) external onlyOwner {
        require ((newThresholdForLiquidityAdd >= 500 gwei && newThresholdForLiquidityAdd <= 20000 gwei) &&
            newAmountForLiquidityAdd <= 10000 gwei, "newThresholdForLiquidityAdd must be between 0.05% and 2% supply");
        require (newThresholdForLiquidityAdd >= (newAmountForLiquidityAdd * 2), "newThresholdForLiquidityAdd must be at least 2x greater than newAmountForLiquidityAdd");

        thresholdForLiquidityAdd = newThresholdForLiquidityAdd;
        amountForLiquidityAdd = newAmountForLiquidityAdd;
    }

    function updateContractETHSwap(uint256 newThresholdForETHSwap, uint256 newAmountForETHSwap) external onlyOwner {
        require ((newThresholdForETHSwap > thresholdForLiquidityAdd) && newAmountForETHSwap <= 10000 gwei, "newAmountForETHSwap must be 1% supply or less");
        require (newThresholdForETHSwap >= (newAmountForETHSwap * 2), "newThresholdForETHSwap must be at least 2x greater than newAmountForETHSwap");

        thresholdForETHSwap = newThresholdForETHSwap;
        amountForETHSwap = newAmountForETHSwap;
    }

    // Allow owner to claim misdirected tokens
    function claimEther() external onlyOwner {
        payable(owner).transfer(address(this).balance);
    }

    function claimContractTokens() external onlyOwner {
        _transfer(address(this), owner, balanceOf(address(this)));
    }

    receive() external payable {}
}

/** 01000010 01110101 01101001 01101100 01100100  01110100 01101000 01100101  01000010 01100101 01100001 01110010 */

Contract Security Audit

Contract ABI

[{"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":false,"internalType":"uint256","name":"tokensAdded","type":"uint256"}],"name":"ContractAddedLiquidity","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"}],"name":"ContractSwappedTokens","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":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"amountForETHSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"amountForLiquidityAdd","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":"claimContractTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimEther","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","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":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maximumHold","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":"preLaunchFee","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapInFee","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapOutFee","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"thresholdForETHSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"thresholdForLiquidityAdd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newThresholdForETHSwap","type":"uint256"},{"internalType":"uint256","name":"newAmountForETHSwap","type":"uint256"}],"name":"updateContractETHSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newThresholdForLiquidityAdd","type":"uint256"},{"internalType":"uint256","name":"newAmountForLiquidityAdd","type":"uint256"}],"name":"updateContractLiquidityAdd","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaximumHold","type":"uint256"}],"name":"updateMaximumHold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"updateOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"newSwapInFee","type":"uint8"},{"internalType":"uint8","name":"newSwapOutFee","type":"uint8"}],"name":"updateSwapFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c06040526006805462ffffff1916626363631790556509184e72a0006007556501d1a94a200060085564746a52880060098190556502ba7def3000600a55600b553480156200004e57600080fd5b506040518060400160405280600e81526020016d213ab4b632103a3432902132b0b960911b81525060405180604001604052806003815260200162212a2160e91b8152508160029081620000a39190620004a8565b506003620000b28282620004a8565b503360008181526020818152604080832066038d7ea4c680009081905590519081527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050600480546001600160a01b031916331781556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d92839263c45a015592818301926020928290030181865afa15801562000162573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000188919062000574565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001d6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001fc919062000574565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200024a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000270919062000574565b6001600160a01b0390811660a052811660808190526000818152600560205260408082208054600160ff19918216811790925530808552838520805483168417905533855292909320805490931617909155620002d091600019620002d7565b50620005a6565b6001600160a01b0383166200033f5760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084015b60405180910390fd5b6001600160a01b038216620003a25760405162461bcd60e51b815260206004820152602260248201527f43616e6e6f7420617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840162000336565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200042e57607f821691505b6020821081036200044f57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620004a357600081815260208120601f850160051c810160208610156200047e5750805b601f850160051c820191505b818110156200049f578281556001016200048a565b5050505b505050565b81516001600160401b03811115620004c457620004c462000403565b620004dc81620004d5845462000419565b8462000455565b602080601f831160018114620005145760008415620004fb5750858301515b600019600386901b1c1916600185901b1785556200049f565b600085815260208120601f198616915b82811015620005455788860151825594840194600190910190840162000524565b5085821015620005645787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156200058757600080fd5b81516001600160a01b03811681146200059f57600080fd5b9392505050565b60805160a0516118e3620005fd6000396000818161037601528181610ee401528181610f1a01528181610f77015261109c01526000818161025f01528181611215015281816112c0015261141301526118e36000f3fe6080604052600436106101c65760003560e01c806370a08231116100f7578063a9059cbb11610095578063dd62ed3e11610064578063dd62ed3e14610515578063de45d15d14610535578063f917781f14610555578063ffeb55901461057557600080fd5b8063a9059cbb146104aa578063be1518b9146104ca578063c3dc355e146104ea578063d39f6c2c1461050057600080fd5b80638da5cb5b116100d15780638da5cb5b1461043557806395d89b411461045557806398ee9f841461046a578063a457c2d71461048a57600080fd5b806370a08231146103c957806376238656146103ff578063880cdc311461041557600080fd5b80632fc834a71161016457806339f904511161013e57806339f904511461034e57806349bd5a5e1461036457806355291dbd14610398578063645966a3146103af57600080fd5b80632fc834a714610304578063313ce5671461031a578063395093511461032e57600080fd5b80631694505e116101a05780631694505e1461024d57806318160ddd14610299578063219d58fb146102b357806323b872dd146102e457600080fd5b8063065e1d65146101d257806306fdde03146101fb578063095ea7b31461021d57600080fd5b366101cd57005b600080fd5b3480156101de57600080fd5b506101e860075481565b6040519081526020015b60405180910390f35b34801561020757600080fd5b50610210610595565b6040516101f2919061152a565b34801561022957600080fd5b5061023d61023836600461158d565b610627565b60405190151581526020016101f2565b34801561025957600080fd5b506102817f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101f2565b3480156102a557600080fd5b5066038d7ea4c680006101e8565b3480156102bf57600080fd5b506006546102d290610100900460ff1681565b60405160ff90911681526020016101f2565b3480156102f057600080fd5b5061023d6102ff3660046115b9565b610641565b34801561031057600080fd5b506101e860085481565b34801561032657600080fd5b5060096102d2565b34801561033a57600080fd5b5061023d61034936600461158d565b610665565b34801561035a57600080fd5b506101e8600b5481565b34801561037057600080fd5b506102817f000000000000000000000000000000000000000000000000000000000000000081565b3480156103a457600080fd5b506103ad610687565b005b3480156103bb57600080fd5b506006546102d29060ff1681565b3480156103d557600080fd5b506101e86103e43660046115fa565b6001600160a01b031660009081526020819052604090205490565b34801561040b57600080fd5b506101e860095481565b34801561042157600080fd5b506103ad6104303660046115fa565b6106f6565b34801561044157600080fd5b50600454610281906001600160a01b031681565b34801561046157600080fd5b506102106107a4565b34801561047657600080fd5b506103ad61048536600461161e565b6107b3565b34801561049657600080fd5b5061023d6104a536600461158d565b610859565b3480156104b657600080fd5b5061023d6104c536600461158d565b6108d1565b3480156104d657600080fd5b506103ad6104e536600461164d565b6108e7565b3480156104f657600080fd5b506101e8600a5481565b34801561050c57600080fd5b506103ad61099c565b34801561052157600080fd5b506101e8610530366004611680565b6109ee565b34801561054157600080fd5b506103ad6105503660046116b9565b610a19565b34801561056157600080fd5b506103ad6105703660046116b9565b610b8b565b34801561058157600080fd5b506006546102d29062010000900460ff1681565b6060600280546105a4906116db565b80601f01602080910402602001604051908101604052809291908181526020018280546105d0906116db565b801561061d5780601f106105f25761010080835404028352916020019161061d565b820191906000526020600020905b81548152906001019060200180831161060057829003601f168201915b5050505050905090565b600033610635818585610ccd565b60019150505b92915050565b60003361064f858285610df2565b61065a858585610e65565b506001949350505050565b60003361063581858561067883836109ee565b610682919061172b565b610ccd565b6004546001600160a01b031633146106ba5760405162461bcd60e51b81526004016106b19061173e565b60405180910390fd5b6004546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156106f3573d6000803e3d6000fd5b50565b6004546001600160a01b031633146107205760405162461bcd60e51b81526004016106b19061173e565b6001600160a01b0381166107825760405162461bcd60e51b8152602060048201526024808201527f4e6577206f776e65722063616e6e6f7420626520746865207a65726f206164646044820152637265737360e01b60648201526084016106b1565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6060600380546105a4906116db565b6004546001600160a01b031633146107dd5760405162461bcd60e51b81526004016106b19061173e565b6509184e72a00081101580156107f95750652d79883d20008111155b6108545760405162461bcd60e51b815260206004820152602660248201527f4d6178696d756d20686f6c64206d757374206265206265747765656e20312520604482015265616e6420352560d01b60648201526084016106b1565b600755565b6000338161086782866109ee565b9050838110156108c45760405162461bcd60e51b815260206004820152602260248201527f416c6c6f77616e63652063616e6e6f74206265206c657373207468616e207a65604482015261726f60f01b60648201526084016106b1565b61065a8286868403610ccd565b60006108de338484610e65565b50600192915050565b6004546001600160a01b031633146109115760405162461bcd60e51b81526004016106b19061173e565b601e8260ff16111580156109295750601e8160ff1611155b61096e5760405162461bcd60e51b8152602060048201526016602482015275466565732063616e6e6f74206578636565642033302560501b60448201526064016106b1565b6006805462ffff00191661010060ff9485160262ff0000191617620100009290931691909102919091179055565b6004546001600160a01b031633146109c65760405162461bcd60e51b81526004016106b19061173e565b600454306000818152602081905260409020546109ec926001600160a01b031690610e65565b565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6004546001600160a01b03163314610a435760405162461bcd60e51b81526004016106b19061173e565b64746a5288008210158015610a5e57506512309ce540008211155b8015610a7057506509184e72a0008111155b610ae25760405162461bcd60e51b815260206004820152603f60248201527f6e65775468726573686f6c64466f724c6971756964697479416464206d75737460448201527f206265206265747765656e20302e30352520616e6420322520737570706c790060648201526084016106b1565b610aed81600261178f565b821015610b805760405162461bcd60e51b815260206004820152605560248201527f6e65775468726573686f6c64466f724c6971756964697479416464206d75737460448201527f206265206174206c656173742032782067726561746572207468616e206e6577606482015274105b5bdd5b9d119bdc931a5c5d5a591a5d1e505919605a1b608482015260a4016106b1565b600891909155600955565b6004546001600160a01b03163314610bb55760405162461bcd60e51b81526004016106b19061173e565b60085482118015610bcc57506509184e72a0008111155b610c2e5760405162461bcd60e51b815260206004820152602d60248201527f6e6577416d6f756e74466f7245544853776170206d757374206265203125207360448201526c7570706c79206f72206c65737360981b60648201526084016106b1565b610c3981600261178f565b821015610cc25760405162461bcd60e51b815260206004820152604b60248201527f6e65775468726573686f6c64466f7245544853776170206d757374206265206160448201527f74206c656173742032782067726561746572207468616e206e6577416d6f756e60648201526a074466f72455448537761760ac1b608482015260a4016106b1565b600a91909155600b55565b6001600160a01b038316610d2f5760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106b1565b6001600160a01b038216610d905760405162461bcd60e51b815260206004820152602260248201527f43616e6e6f7420617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106b1565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6000610dfe84846109ee565b90506000198114610e5f5781811015610e525760405162461bcd60e51b8152602060048201526016602482015275496e73756666696369656e7420616c6c6f77616e636560501b60448201526064016106b1565b610e5f8484848403610ccd565b50505050565b80610e85846001600160a01b031660009081526020819052604090205490565b1015610ed35760405162461bcd60e51b815260206004820181905260248201527f5472616e736665722065786365656473206163636f756e742062616c616e636560448201526064016106b1565b60065460009062010000900460ff167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b039081169086161480610f7057507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b0316148015610f5c5750600c5460ff16155b8015610f705750600c54610100900460ff16155b1561119f577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b031614610ffc575030600090815260208190526040902054600654600a5461010090910460ff1691908110610fe657610fe1600b546111b1565b610ffa565b6008548110610ffa57610ffa600954611388565b505b6001600160a01b03851660009081526005602052604090205460ff168061103b57506001600160a01b03841660009081526005602052604090205460ff165b156110485782915061118f565b60075483111561109a5760405162461bcd60e51b815260206004820152601f60248201527f5472616e736665722065786365656473206d6178696d756d20616d6f756e740060448201526064016106b1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b031603611155576007546001600160a01b0385166000908152602081905260409020546110f9908561172b565b11156111475760405162461bcd60e51b815260206004820152601d60248201527f5472616e736665722065786365656473206d6178696d756d20686f6c6400000060448201526064016106b1565b5060065462010000900460ff165b6000808260ff161161116a5750600080611176565b50606460ff8216840204805b508084039250801561118d5761118d8630836114ca565b505b61119a8585846114ca565b6111aa565b6111aa8585856114ca565b5050505050565b600c805460ff1916600117905560408051600280825260608201835260009260208301908036833701905050905030816000815181106111f3576111f36117a6565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611271573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061129591906117bc565b816001815181106112a8576112a86117a6565b6001600160a01b0392831660209182029290920101527f00000000000000000000000000000000000000000000000000000000000000001663791ac94783600084306112f64261012c61172b565b6040518663ffffffff1660e01b81526004016113169594939291906117d9565b600060405180830381600087803b15801561133057600080fd5b505af1925050508015611341575060015b1561137a576040518281527f492e1b723f3e8facf9b67a4a59d76c74581eee370bee8c4a7031f720a4e0efc49060200160405180910390a15b5050600c805460ff19169055565b600c805461ff0019166101001790554760006113a560028461184a565b905060006113b3828561186c565b90506113be826111b1565b60006113ca844761186c565b6004805460405163f305d71960e01b815230928101929092526024820185905260006044830181905260648301526001600160a01b0390811660848301524260a48301529192507f00000000000000000000000000000000000000000000000000000000000000009091169063f305d71990839060c40160606040518083038185885af19350505050801561147c575060408051601f3d908101601f191682019092526114799181019061187f565b60015b156114b85750506040518681527fb6b650e125f0fcb059a3dae5bfb3d0893d974538ad95ba9521560b0a267c1f2d915060200160405180910390a15b5050600c805461ff0019169055505050565b6001600160a01b038381166000818152602081815260408083208054879003905593861680835291849020805486019055925184815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101610de5565b600060208083528351808285015260005b818110156115575785810183015185820160400152820161153b565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146106f357600080fd5b600080604083850312156115a057600080fd5b82356115ab81611578565b946020939093013593505050565b6000806000606084860312156115ce57600080fd5b83356115d981611578565b925060208401356115e981611578565b929592945050506040919091013590565b60006020828403121561160c57600080fd5b813561161781611578565b9392505050565b60006020828403121561163057600080fd5b5035919050565b803560ff8116811461164857600080fd5b919050565b6000806040838503121561166057600080fd5b61166983611637565b915061167760208401611637565b90509250929050565b6000806040838503121561169357600080fd5b823561169e81611578565b915060208301356116ae81611578565b809150509250929050565b600080604083850312156116cc57600080fd5b50508035926020909101359150565b600181811c908216806116ef57607f821691505b60208210810361170f57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561063b5761063b611715565b60208082526031908201527f46756e6374696f6e2063616e206f6e6c792062652063616c6c6564206279207460408201527034329031b7b73a3930b1ba1037bbb732b960791b606082015260800190565b808202811582820484141761063b5761063b611715565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156117ce57600080fd5b815161161781611578565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156118295784516001600160a01b031683529383019391830191600101611804565b50506001600160a01b03969096166060850152505050608001529392505050565b60008261186757634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561063b5761063b611715565b60008060006060848603121561189457600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220b5971c4e8eff45e2da03e7fc301c6a526308e3b1d52fc0844324737d83b05d2464736f6c63430008110033

Deployed Bytecode

0x6080604052600436106101c65760003560e01c806370a08231116100f7578063a9059cbb11610095578063dd62ed3e11610064578063dd62ed3e14610515578063de45d15d14610535578063f917781f14610555578063ffeb55901461057557600080fd5b8063a9059cbb146104aa578063be1518b9146104ca578063c3dc355e146104ea578063d39f6c2c1461050057600080fd5b80638da5cb5b116100d15780638da5cb5b1461043557806395d89b411461045557806398ee9f841461046a578063a457c2d71461048a57600080fd5b806370a08231146103c957806376238656146103ff578063880cdc311461041557600080fd5b80632fc834a71161016457806339f904511161013e57806339f904511461034e57806349bd5a5e1461036457806355291dbd14610398578063645966a3146103af57600080fd5b80632fc834a714610304578063313ce5671461031a578063395093511461032e57600080fd5b80631694505e116101a05780631694505e1461024d57806318160ddd14610299578063219d58fb146102b357806323b872dd146102e457600080fd5b8063065e1d65146101d257806306fdde03146101fb578063095ea7b31461021d57600080fd5b366101cd57005b600080fd5b3480156101de57600080fd5b506101e860075481565b6040519081526020015b60405180910390f35b34801561020757600080fd5b50610210610595565b6040516101f2919061152a565b34801561022957600080fd5b5061023d61023836600461158d565b610627565b60405190151581526020016101f2565b34801561025957600080fd5b506102817f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b0390911681526020016101f2565b3480156102a557600080fd5b5066038d7ea4c680006101e8565b3480156102bf57600080fd5b506006546102d290610100900460ff1681565b60405160ff90911681526020016101f2565b3480156102f057600080fd5b5061023d6102ff3660046115b9565b610641565b34801561031057600080fd5b506101e860085481565b34801561032657600080fd5b5060096102d2565b34801561033a57600080fd5b5061023d61034936600461158d565b610665565b34801561035a57600080fd5b506101e8600b5481565b34801561037057600080fd5b506102817f000000000000000000000000e708fe7fce0c3fcac741e49a20439d79177753fa81565b3480156103a457600080fd5b506103ad610687565b005b3480156103bb57600080fd5b506006546102d29060ff1681565b3480156103d557600080fd5b506101e86103e43660046115fa565b6001600160a01b031660009081526020819052604090205490565b34801561040b57600080fd5b506101e860095481565b34801561042157600080fd5b506103ad6104303660046115fa565b6106f6565b34801561044157600080fd5b50600454610281906001600160a01b031681565b34801561046157600080fd5b506102106107a4565b34801561047657600080fd5b506103ad61048536600461161e565b6107b3565b34801561049657600080fd5b5061023d6104a536600461158d565b610859565b3480156104b657600080fd5b5061023d6104c536600461158d565b6108d1565b3480156104d657600080fd5b506103ad6104e536600461164d565b6108e7565b3480156104f657600080fd5b506101e8600a5481565b34801561050c57600080fd5b506103ad61099c565b34801561052157600080fd5b506101e8610530366004611680565b6109ee565b34801561054157600080fd5b506103ad6105503660046116b9565b610a19565b34801561056157600080fd5b506103ad6105703660046116b9565b610b8b565b34801561058157600080fd5b506006546102d29062010000900460ff1681565b6060600280546105a4906116db565b80601f01602080910402602001604051908101604052809291908181526020018280546105d0906116db565b801561061d5780601f106105f25761010080835404028352916020019161061d565b820191906000526020600020905b81548152906001019060200180831161060057829003601f168201915b5050505050905090565b600033610635818585610ccd565b60019150505b92915050565b60003361064f858285610df2565b61065a858585610e65565b506001949350505050565b60003361063581858561067883836109ee565b610682919061172b565b610ccd565b6004546001600160a01b031633146106ba5760405162461bcd60e51b81526004016106b19061173e565b60405180910390fd5b6004546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156106f3573d6000803e3d6000fd5b50565b6004546001600160a01b031633146107205760405162461bcd60e51b81526004016106b19061173e565b6001600160a01b0381166107825760405162461bcd60e51b8152602060048201526024808201527f4e6577206f776e65722063616e6e6f7420626520746865207a65726f206164646044820152637265737360e01b60648201526084016106b1565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6060600380546105a4906116db565b6004546001600160a01b031633146107dd5760405162461bcd60e51b81526004016106b19061173e565b6509184e72a00081101580156107f95750652d79883d20008111155b6108545760405162461bcd60e51b815260206004820152602660248201527f4d6178696d756d20686f6c64206d757374206265206265747765656e20312520604482015265616e6420352560d01b60648201526084016106b1565b600755565b6000338161086782866109ee565b9050838110156108c45760405162461bcd60e51b815260206004820152602260248201527f416c6c6f77616e63652063616e6e6f74206265206c657373207468616e207a65604482015261726f60f01b60648201526084016106b1565b61065a8286868403610ccd565b60006108de338484610e65565b50600192915050565b6004546001600160a01b031633146109115760405162461bcd60e51b81526004016106b19061173e565b601e8260ff16111580156109295750601e8160ff1611155b61096e5760405162461bcd60e51b8152602060048201526016602482015275466565732063616e6e6f74206578636565642033302560501b60448201526064016106b1565b6006805462ffff00191661010060ff9485160262ff0000191617620100009290931691909102919091179055565b6004546001600160a01b031633146109c65760405162461bcd60e51b81526004016106b19061173e565b600454306000818152602081905260409020546109ec926001600160a01b031690610e65565b565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6004546001600160a01b03163314610a435760405162461bcd60e51b81526004016106b19061173e565b64746a5288008210158015610a5e57506512309ce540008211155b8015610a7057506509184e72a0008111155b610ae25760405162461bcd60e51b815260206004820152603f60248201527f6e65775468726573686f6c64466f724c6971756964697479416464206d75737460448201527f206265206265747765656e20302e30352520616e6420322520737570706c790060648201526084016106b1565b610aed81600261178f565b821015610b805760405162461bcd60e51b815260206004820152605560248201527f6e65775468726573686f6c64466f724c6971756964697479416464206d75737460448201527f206265206174206c656173742032782067726561746572207468616e206e6577606482015274105b5bdd5b9d119bdc931a5c5d5a591a5d1e505919605a1b608482015260a4016106b1565b600891909155600955565b6004546001600160a01b03163314610bb55760405162461bcd60e51b81526004016106b19061173e565b60085482118015610bcc57506509184e72a0008111155b610c2e5760405162461bcd60e51b815260206004820152602d60248201527f6e6577416d6f756e74466f7245544853776170206d757374206265203125207360448201526c7570706c79206f72206c65737360981b60648201526084016106b1565b610c3981600261178f565b821015610cc25760405162461bcd60e51b815260206004820152604b60248201527f6e65775468726573686f6c64466f7245544853776170206d757374206265206160448201527f74206c656173742032782067726561746572207468616e206e6577416d6f756e60648201526a074466f72455448537761760ac1b608482015260a4016106b1565b600a91909155600b55565b6001600160a01b038316610d2f5760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106b1565b6001600160a01b038216610d905760405162461bcd60e51b815260206004820152602260248201527f43616e6e6f7420617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106b1565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6000610dfe84846109ee565b90506000198114610e5f5781811015610e525760405162461bcd60e51b8152602060048201526016602482015275496e73756666696369656e7420616c6c6f77616e636560501b60448201526064016106b1565b610e5f8484848403610ccd565b50505050565b80610e85846001600160a01b031660009081526020819052604090205490565b1015610ed35760405162461bcd60e51b815260206004820181905260248201527f5472616e736665722065786365656473206163636f756e742062616c616e636560448201526064016106b1565b60065460009062010000900460ff167f000000000000000000000000e708fe7fce0c3fcac741e49a20439d79177753fa6001600160a01b039081169086161480610f7057507f000000000000000000000000e708fe7fce0c3fcac741e49a20439d79177753fa6001600160a01b0316846001600160a01b0316148015610f5c5750600c5460ff16155b8015610f705750600c54610100900460ff16155b1561119f577f000000000000000000000000e708fe7fce0c3fcac741e49a20439d79177753fa6001600160a01b0316856001600160a01b031614610ffc575030600090815260208190526040902054600654600a5461010090910460ff1691908110610fe657610fe1600b546111b1565b610ffa565b6008548110610ffa57610ffa600954611388565b505b6001600160a01b03851660009081526005602052604090205460ff168061103b57506001600160a01b03841660009081526005602052604090205460ff165b156110485782915061118f565b60075483111561109a5760405162461bcd60e51b815260206004820152601f60248201527f5472616e736665722065786365656473206d6178696d756d20616d6f756e740060448201526064016106b1565b7f000000000000000000000000e708fe7fce0c3fcac741e49a20439d79177753fa6001600160a01b0316856001600160a01b031603611155576007546001600160a01b0385166000908152602081905260409020546110f9908561172b565b11156111475760405162461bcd60e51b815260206004820152601d60248201527f5472616e736665722065786365656473206d6178696d756d20686f6c6400000060448201526064016106b1565b5060065462010000900460ff165b6000808260ff161161116a5750600080611176565b50606460ff8216840204805b508084039250801561118d5761118d8630836114ca565b505b61119a8585846114ca565b6111aa565b6111aa8585856114ca565b5050505050565b600c805460ff1916600117905560408051600280825260608201835260009260208301908036833701905050905030816000815181106111f3576111f36117a6565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611271573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061129591906117bc565b816001815181106112a8576112a86117a6565b6001600160a01b0392831660209182029290920101527f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d1663791ac94783600084306112f64261012c61172b565b6040518663ffffffff1660e01b81526004016113169594939291906117d9565b600060405180830381600087803b15801561133057600080fd5b505af1925050508015611341575060015b1561137a576040518281527f492e1b723f3e8facf9b67a4a59d76c74581eee370bee8c4a7031f720a4e0efc49060200160405180910390a15b5050600c805460ff19169055565b600c805461ff0019166101001790554760006113a560028461184a565b905060006113b3828561186c565b90506113be826111b1565b60006113ca844761186c565b6004805460405163f305d71960e01b815230928101929092526024820185905260006044830181905260648301526001600160a01b0390811660848301524260a48301529192507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d9091169063f305d71990839060c40160606040518083038185885af19350505050801561147c575060408051601f3d908101601f191682019092526114799181019061187f565b60015b156114b85750506040518681527fb6b650e125f0fcb059a3dae5bfb3d0893d974538ad95ba9521560b0a267c1f2d915060200160405180910390a15b5050600c805461ff0019169055505050565b6001600160a01b038381166000818152602081815260408083208054879003905593861680835291849020805486019055925184815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101610de5565b600060208083528351808285015260005b818110156115575785810183015185820160400152820161153b565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146106f357600080fd5b600080604083850312156115a057600080fd5b82356115ab81611578565b946020939093013593505050565b6000806000606084860312156115ce57600080fd5b83356115d981611578565b925060208401356115e981611578565b929592945050506040919091013590565b60006020828403121561160c57600080fd5b813561161781611578565b9392505050565b60006020828403121561163057600080fd5b5035919050565b803560ff8116811461164857600080fd5b919050565b6000806040838503121561166057600080fd5b61166983611637565b915061167760208401611637565b90509250929050565b6000806040838503121561169357600080fd5b823561169e81611578565b915060208301356116ae81611578565b809150509250929050565b600080604083850312156116cc57600080fd5b50508035926020909101359150565b600181811c908216806116ef57607f821691505b60208210810361170f57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561063b5761063b611715565b60208082526031908201527f46756e6374696f6e2063616e206f6e6c792062652063616c6c6564206279207460408201527034329031b7b73a3930b1ba1037bbb732b960791b606082015260800190565b808202811582820484141761063b5761063b611715565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156117ce57600080fd5b815161161781611578565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156118295784516001600160a01b031683529383019391830191600101611804565b50506001600160a01b03969096166060850152505050608001529392505050565b60008261186757634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561063b5761063b611715565b60008060006060848603121561189457600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220b5971c4e8eff45e2da03e7fc301c6a526308e3b1d52fc0844324737d83b05d2464736f6c63430008110033

Deployed Bytecode Sourcemap

14234:7360:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14661:39;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;14661:39:0;;;;;;;;11287:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;12924:205::-;;;;;;;;;;-1:-1:-1;12924:205:0;;;;;:::i;:::-;;:::i;:::-;;;1370:14:1;;1363:22;1345:41;;1333:2;1318:18;12924:205:0;1205:187:1;14272:51:0;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1587:32:1;;;1569:51;;1557:2;1542:18;14272:51:0;1397:229:1;11598:90:0;;;;;;;;;;-1:-1:-1;10942:12:0;11598:90;;14572:37;;;;;;;;;;-1:-1:-1;14572:37:0;;;;;;;;;;;;;;1803:4:1;1791:17;;;1773:36;;1761:2;1746:18;14572:37:0;1631:184:1;13912:265:0;;;;;;;;;;-1:-1:-1;13912:265:0;;;;;:::i;:::-;;:::i;14778:51::-;;;;;;;;;;;;;;;;11507:85;;;;;;;;;;-1:-1:-1;10900:1:0;11507:85;;12280:242;;;;;;;;;;-1:-1:-1;12280:242:0;;;;;:::i;:::-;;:::i;14943:42::-;;;;;;;;;;;;;;;;14359:38;;;;;;;;;;;;;;;21314:106;;;;;;;;;;;;;:::i;:::-;;14535:30;;;;;;;;;;-1:-1:-1;14535:30:0;;;;;;;;11388:113;;;;;;;;;;-1:-1:-1;11388:113:0;;;;;:::i;:::-;-1:-1:-1;;;;;11480:18:0;11462:7;11480:18;;;;;;;;;;;;11388:113;14836:47;;;;;;;;;;;;;;;;19358:178;;;;;;;;;;-1:-1:-1;19358:178:0;;;;;:::i;:::-;;:::i;14332:20::-;;;;;;;;;;-1:-1:-1;14332:20:0;;;;-1:-1:-1;;;;;14332:20:0;;;11182:99;;;;;;;;;;;;;:::i;19544:242::-;;;;;;;;;;-1:-1:-1;19544:242:0;;;;;:::i;:::-;;:::i;11855:417::-;;;;;;;;;;-1:-1:-1;11855:417:0;;;;;:::i;:::-;;:::i;13493:163::-;;;;;;;;;;-1:-1:-1;13493:163:0;;;;;:::i;:::-;;:::i;19794:254::-;;;;;;;;;;-1:-1:-1;19794:254:0;;;;;:::i;:::-;;:::i;14890:46::-;;;;;;;;;;;;;;;;21428:126;;;;;;;;;;;;;:::i;11696:151::-;;;;;;;;;;-1:-1:-1;11696:151:0;;;;;:::i;:::-;;:::i;20056:660::-;;;;;;;;;;-1:-1:-1;20056:660:0;;;;;:::i;:::-;;:::i;20724:534::-;;;;;;;;;;-1:-1:-1;20724:534:0;;;;;:::i;:::-;;:::i;14616:38::-;;;;;;;;;;-1:-1:-1;14616:38:0;;;;;;;;;;;11287:95;11343:13;11367:12;11360:19;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11287:95;:::o;12924:205::-;13009:4;13042:10;13065:32;13042:10;13081:7;13090:6;13065:8;:32::i;:::-;13117:4;13110:11;;;12924:205;;;;;:::o;13912:265::-;14011:4;14046:10;14069:38;14085:4;14046:10;14100:6;14069:15;:38::i;:::-;14118:27;14128:4;14134:2;14138:6;14118:9;:27::i;:::-;-1:-1:-1;14165:4:0;;13912:265;-1:-1:-1;;;;13912:265:0:o;12280:242::-;12370:4;12403:10;12426:64;12403:10;12442:7;12479:10;12451:25;12403:10;12442:7;12451:9;:25::i;:::-;:38;;;;:::i;:::-;12426:8;:64::i;21314:106::-;15406:5;;-1:-1:-1;;;;;15406:5:0;15392:10;:19;15384:81;;;;-1:-1:-1;;;15384:81:0;;;;;;;:::i;:::-;;;;;;;;;21374:5:::1;::::0;21366:46:::1;::::0;-1:-1:-1;;;;;21374:5:0;;::::1;::::0;21390:21:::1;21366:46:::0;::::1;;;::::0;21374:5:::1;21366:46:::0;21374:5;21366:46;21390:21;21374:5;21366:46;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;21314:106::o:0;19358:178::-;15406:5;;-1:-1:-1;;;;;15406:5:0;15392:10;:19;15384:81;;;;-1:-1:-1;;;15384:81:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19436:22:0;::::1;19427:72;;;::::0;-1:-1:-1;;;19427:72:0;;5257:2:1;19427:72:0::1;::::0;::::1;5239:21:1::0;5296:2;5276:18;;;5269:30;5335:34;5315:18;;;5308:62;-1:-1:-1;;;5386:18:1;;;5379:34;5430:19;;19427:72:0::1;5055:400:1::0;19427:72:0::1;19512:5;:16:::0;;-1:-1:-1;;;;;;19512:16:0::1;-1:-1:-1::0;;;;;19512:16:0;;;::::1;::::0;;;::::1;::::0;;19358:178::o;11182:99::-;11240:13;11264:14;11257:21;;;;;:::i;19544:242::-;15406:5;;-1:-1:-1;;;;;15406:5:0;15392:10;:19;15384:81;;;;-1:-1:-1;;;15384:81:0;;;;;;;:::i;:::-;19652:10:::1;19634:14;:28;;:60;;;;;19684:10;19666:14;:28;;19634:60;19625:112;;;::::0;-1:-1:-1;;;19625:112:0;;5662:2:1;19625:112:0::1;::::0;::::1;5644:21:1::0;5701:2;5681:18;;;5674:30;5740:34;5720:18;;;5713:62;-1:-1:-1;;;5791:18:1;;;5784:36;5837:19;;19625:112:0::1;5460:402:1::0;19625:112:0::1;19750:11;:28:::0;19544:242::o;11855:417::-;11950:4;11983:10;11950:4;12033:25;11983:10;12050:7;12033:9;:25::i;:::-;12006:52;;12099:15;12079:16;:35;;12071:82;;;;-1:-1:-1;;;12071:82:0;;6069:2:1;12071:82:0;;;6051:21:1;6108:2;6088:18;;;6081:30;6147:34;6127:18;;;6120:62;-1:-1:-1;;;6198:18:1;;;6191:32;6240:19;;12071:82:0;5867:398:1;12071:82:0;12178:60;12187:5;12194:7;12222:15;12203:16;:34;12178:8;:60::i;13493:163::-;13574:4;13591:33;13601:10;13613:2;13617:6;13591:9;:33::i;:::-;-1:-1:-1;13644:4:0;13493:163;;;;:::o;19794:254::-;15406:5;;-1:-1:-1;;;;;15406:5:0;15392:10;:19;15384:81;;;;-1:-1:-1;;;15384:81:0;;;;;;;:::i;:::-;19914:2:::1;19898:12;:18;;;;:41;;;;;19937:2;19920:13;:19;;;;19898:41;19889:77;;;::::0;-1:-1:-1;;;19889:77:0;;6472:2:1;19889:77:0::1;::::0;::::1;6454:21:1::0;6511:2;6491:18;;;6484:30;-1:-1:-1;;;6530:18:1;;;6523:52;6592:18;;19889:77:0::1;6270:346:1::0;19889:77:0::1;19979:9;:24:::0;;-1:-1:-1;;20014:26:0;19979:24:::1;;::::0;;::::1;;-1:-1:-1::0;;20014:26:0;;;;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;19794:254::o;21428:126::-;15406:5;;-1:-1:-1;;;;;15406:5:0;15392:10;:19;15384:81;;;;-1:-1:-1;;;15384:81:0;;;;;;;:::i;:::-;21514:5:::1;::::0;21507:4:::1;11462:7:::0;11480:18;;;;;;;;;;;21489:57:::1;::::0;-1:-1:-1;;;;;21514:5:0::1;::::0;21489:9:::1;:57::i;:::-;21428:126::o:0;11696:151::-;-1:-1:-1;;;;;11812:18:0;;;11785:7;11812:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;11696:151::o;20056:660::-;15406:5;;-1:-1:-1;;;;;15406:5:0;15392:10;:19;15384:81;;;;-1:-1:-1;;;15384:81:0;;;;;;;:::i;:::-;20234:8:::1;20203:27;:39;;:84;;;;;20277:10;20246:27;:41;;20203:84;20202:141;;;;;20333:10;20305:24;:38;;20202:141;20193:218;;;::::0;-1:-1:-1;;;20193:218:0;;6823:2:1;20193:218:0::1;::::0;::::1;6805:21:1::0;6862:2;6842:18;;;6835:30;6901:34;6881:18;;;6874:62;6972:33;6952:18;;;6945:61;7023:19;;20193:218:0::1;6621:427:1::0;20193:218:0::1;20463:28;:24:::0;20490:1:::1;20463:28;:::i;:::-;20431:27;:61;;20422:160;;;::::0;-1:-1:-1;;;20422:160:0;;7428:2:1;20422:160:0::1;::::0;::::1;7410:21:1::0;7467:2;7447:18;;;7440:30;7506:34;7486:18;;;7479:62;7577:34;7557:18;;;7550:62;-1:-1:-1;;;7628:19:1;;;7621:52;7690:19;;20422:160:0::1;7226:489:1::0;20422:160:0::1;20595:24;:54:::0;;;;20660:21:::1;:48:::0;20056:660::o;20724:534::-;15406:5;;-1:-1:-1;;;;;15406:5:0;15392:10;:19;15384:81;;;;-1:-1:-1;;;15384:81:0;;;;;;;:::i;:::-;20881:24:::1;;20856:22;:49;20855:88;;;;;20933:10;20910:19;:33;;20855:88;20846:147;;;::::0;-1:-1:-1;;;20846:147:0;;7922:2:1;20846:147:0::1;::::0;::::1;7904:21:1::0;7961:2;7941:18;;;7934:30;8000:34;7980:18;;;7973:62;-1:-1:-1;;;8051:18:1;;;8044:43;8104:19;;20846:147:0::1;7720:409:1::0;20846:147:0::1;21040:23;:19:::0;21062:1:::1;21040:23;:::i;:::-;21013:22;:51;;21004:140;;;::::0;-1:-1:-1;;;21004:140:0;;8336:2:1;21004:140:0::1;::::0;::::1;8318:21:1::0;8375:2;8355:18;;;8348:30;8414:34;8394:18;;;8387:62;8485:34;8465:18;;;8458:62;-1:-1:-1;;;8536:19:1;;;8529:42;8588:19;;21004:140:0::1;8134:479:1::0;21004:140:0::1;21157:19;:44:::0;;;;21212:16:::1;:38:::0;20724:534::o;13137:348::-;-1:-1:-1;;;;;13239:19:0;;13231:68;;;;-1:-1:-1;;;13231:68:0;;8820:2:1;13231:68:0;;;8802:21:1;8859:2;8839:18;;;8832:30;8898:34;8878:18;;;8871:62;-1:-1:-1;;;8949:18:1;;;8942:34;8993:19;;13231:68:0;8618:400:1;13231:68:0;-1:-1:-1;;;;;13318:21:0;;13310:68;;;;-1:-1:-1;;;13310:68:0;;9225:2:1;13310:68:0;;;9207:21:1;9264:2;9244:18;;;9237:30;9303:34;9283:18;;;9276:62;-1:-1:-1;;;9354:18:1;;;9347:32;9396:19;;13310:68:0;9023:398:1;13310:68:0;-1:-1:-1;;;;;13391:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;13445:32;;160:25:1;;;13445:32:0;;133:18:1;13445:32:0;;;;;;;;13137:348;;;:::o;12530:386::-;12631:24;12658:25;12668:5;12675:7;12658:9;:25::i;:::-;12631:52;;-1:-1:-1;;12700:16:0;:37;12696:213;;12782:6;12762:16;:26;;12754:61;;;;-1:-1:-1;;;12754:61:0;;9628:2:1;12754:61:0;;;9610:21:1;9667:2;9647:18;;;9640:30;-1:-1:-1;;;9686:18:1;;;9679:52;9748:18;;12754:61:0;9426:346:1;12754:61:0;12844:51;12853:5;12860:7;12888:6;12869:16;:25;12844:8;:51::i;:::-;12620:296;12530:386;;;:::o;16233:1988::-;16350:6;16331:15;16341:4;-1:-1:-1;;;;;11480:18:0;11462:7;11480:18;;;;;;;;;;;;11388:113;16331:15;:25;;16323:70;;;;-1:-1:-1;;;16323:70:0;;9979:2:1;16323:70:0;;;9961:21:1;;;9998:18;;;9991:30;10057:34;10037:18;;;10030:62;10109:18;;16323:70:0;9777:356:1;16323:70:0;16455:10;;16406:22;;16455:10;;;;;16586:13;-1:-1:-1;;;;;16578:21:0;;;;;;;;:93;;;16609:13;-1:-1:-1;;;;;16603:19:0;:2;-1:-1:-1;;;;;16603:19:0;;:40;;;;-1:-1:-1;16627:16:0;;;;16626:17;16603:40;:68;;;;-1:-1:-1;16648:23:0;;;;;;;16647:24;16603:68;16574:1640;;;16700:13;-1:-1:-1;;;;;16692:21:0;:4;-1:-1:-1;;;;;16692:21:0;;16688:649;;-1:-1:-1;16783:4:0;16734:28;11480:18;;;;;;;;;;;16820:9;;16978:19;;16820:9;;;;;;;11480:18;16954:43;;16950:372;;17022:36;17041:16;;17022:18;:36::i;:::-;16950:372;;;17112:24;;17088:20;:48;17084:238;;17259:43;17280:21;;17259:20;:43::i;:::-;16715:622;16688:649;-1:-1:-1;;;;;17357:23:0;;;;;;:17;:23;;;;;;;;;:48;;-1:-1:-1;;;;;;17384:21:0;;;;;;:17;:21;;;;;;;;17357:48;17353:726;;;17443:6;17426:23;;17353:726;;;17508:11;;17498:6;:21;;17490:65;;;;-1:-1:-1;;;17490:65:0;;10340:2:1;17490:65:0;;;10322:21:1;10379:2;10359:18;;;10352:30;10418:33;10398:18;;;10391:61;10469:18;;17490:65:0;10138:355:1;17490:65:0;17588:13;-1:-1:-1;;;;;17580:21:0;:4;-1:-1:-1;;;;;17580:21:0;;17576:196;;17662:11;;-1:-1:-1;;;;;11480:18:0;;11462:7;11480:18;;;;;;;;;;;17635:22;;:6;:22;:::i;:::-;17634:39;;17626:81;;;;-1:-1:-1;;;17626:81:0;;10700:2:1;17626:81:0;;;10682:21:1;10739:2;10719:18;;;10712:30;10778:31;10758:18;;;10751:59;10827:18;;17626:81:0;10498:353:1;17626:81:0;-1:-1:-1;17742:10:0;;;;;;;17576:196;17792:11;17867:1;17857:7;:11;;;:56;;-1:-1:-1;17912:1:0;;17857:56;;;-1:-1:-1;17899:3:0;17879:16;;;;;17878:24;;17857:56;-1:-1:-1;17953:12:0;;;;-1:-1:-1;18009:7:0;;18005:59;;18020:41;18036:4;18050;18057:3;18020:15;:41::i;:::-;17471:608;17353:726;18095:41;18111:4;18117:2;18121:14;18095:15;:41::i;:::-;16574:1640;;;18169:33;18185:4;18191:2;18195:6;18169:15;:33::i;:::-;16312:1909;;16233:1988;;;:::o;18330:428::-;15200:16;:23;;-1:-1:-1;;15200:23:0;15219:4;15200:23;;;18435:16:::1;::::0;;18449:1:::1;18435:16:::0;;;;;::::1;::::0;;-1:-1:-1;;18435:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;18435:16:0::1;18411:40;;18482:4;18464;18469:1;18464:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;18464:23:0::1;;;-1:-1:-1::0;;;;;18464:23:0::1;;;::::0;::::1;18508:15;-1:-1:-1::0;;;;;18508:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18498:4;18503:1;18498:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;18498:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;18547:15:::1;:66;;18614:11:::0;18627:1:::1;18630:4:::0;18644::::1;18652:21;:15;18670:3;18652:21;:::i;:::-;18547:128;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;18543:208:::0;::::1;;18696:34;::::0;160:25:1;;;18696:34:0::1;::::0;148:2:1;133:18;18696:34:0::1;;;;;;;18543:208;-1:-1:-1::0;;15228:16:0;:24;;-1:-1:-1;;15228:24:0;;;18330:428::o;18802:548::-;15286:23;:30;;-1:-1:-1;;15286:30:0;;;;;18909:21:::1;15286:30:::0;18961:15:::1;18975:1;18961:11:::0;:15:::1;:::i;:::-;18941:36:::0;-1:-1:-1;18988:15:0::1;19007:22;18941:36:::0;19007:11;:22:::1;:::i;:::-;18988:42;;19043:28;19062:8;19043:18;:28::i;:::-;19084:18;19106:38;19130:14:::0;19106:21:::1;:38;:::i;:::-;19243:5;::::0;;19162:104:::1;::::0;-1:-1:-1;;;19162:104:0;;19221:4:::1;19162:104:::0;;::::1;13189:34:1::0;;;;13239:18;;;13232:34;;;19237:1:0::1;13282:18:1::0;;;13275:34;;;13325:18;;;13318:34;-1:-1:-1;;;;;19243:5:0;;::::1;13368:19:1::0;;;13361:44;19250:15:0::1;13421:19:1::0;;;13414:35;19084:61:0;;-1:-1:-1;19162:15:0::1;:31:::0;;::::1;::::0;::::1;::::0;19084:61;;13123:19:1;;19162:104:0::1;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;19162:104:0::1;::::0;;::::1;;::::0;;::::1;-1:-1:-1::0;;19162:104:0::1;::::0;::::1;::::0;;;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;;;19158:185:::0;::::1;;-1:-1:-1::0;;19287:35:0::1;::::0;160:25:1;;;19287:35:0::1;::::0;-1:-1:-1;148:2:1;133:18;19287:35:0::1;;;;;;;19158:185;-1:-1:-1::0;;15321:23:0;:31;;-1:-1:-1;;15321:31:0;;;-1:-1:-1;;;18802:548:0:o;13664:240::-;-1:-1:-1;;;;;13778:15:0;;;:9;:15;;;;;;;;;;;:25;;;;;;;13818:13;;;;;;;;;;:23;;;;;;13870:26;;160:25:1;;;13818:13:0;;13870:26;;133:18:1;13870:26:0;14:177:1;196:548;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;749:131::-;-1:-1:-1;;;;;824:31:1;;814:42;;804:70;;870:1;867;860:12;885:315;953:6;961;1014:2;1002:9;993:7;989:23;985:32;982:52;;;1030:1;1027;1020:12;982:52;1069:9;1056:23;1088:31;1113:5;1088:31;:::i;:::-;1138:5;1190:2;1175:18;;;;1162:32;;-1:-1:-1;;;885:315:1:o;1820:456::-;1897:6;1905;1913;1966:2;1954:9;1945:7;1941:23;1937:32;1934:52;;;1982:1;1979;1972:12;1934:52;2021:9;2008:23;2040:31;2065:5;2040:31;:::i;:::-;2090:5;-1:-1:-1;2147:2:1;2132:18;;2119:32;2160:33;2119:32;2160:33;:::i;:::-;1820:456;;2212:7;;-1:-1:-1;;;2266:2:1;2251:18;;;;2238:32;;1820:456::o;2489:247::-;2548:6;2601:2;2589:9;2580:7;2576:23;2572:32;2569:52;;;2617:1;2614;2607:12;2569:52;2656:9;2643:23;2675:31;2700:5;2675:31;:::i;:::-;2725:5;2489:247;-1:-1:-1;;;2489:247:1:o;2741:180::-;2800:6;2853:2;2841:9;2832:7;2828:23;2824:32;2821:52;;;2869:1;2866;2859:12;2821:52;-1:-1:-1;2892:23:1;;2741:180;-1:-1:-1;2741:180:1:o;2926:156::-;2992:20;;3052:4;3041:16;;3031:27;;3021:55;;3072:1;3069;3062:12;3021:55;2926:156;;;:::o;3087:252::-;3151:6;3159;3212:2;3200:9;3191:7;3187:23;3183:32;3180:52;;;3228:1;3225;3218:12;3180:52;3251:27;3268:9;3251:27;:::i;:::-;3241:37;;3297:36;3329:2;3318:9;3314:18;3297:36;:::i;:::-;3287:46;;3087:252;;;;;:::o;3344:388::-;3412:6;3420;3473:2;3461:9;3452:7;3448:23;3444:32;3441:52;;;3489:1;3486;3479:12;3441:52;3528:9;3515:23;3547:31;3572:5;3547:31;:::i;:::-;3597:5;-1:-1:-1;3654:2:1;3639:18;;3626:32;3667:33;3626:32;3667:33;:::i;:::-;3719:7;3709:17;;;3344:388;;;;;:::o;3737:248::-;3805:6;3813;3866:2;3854:9;3845:7;3841:23;3837:32;3834:52;;;3882:1;3879;3872:12;3834:52;-1:-1:-1;;3905:23:1;;;3975:2;3960:18;;;3947:32;;-1:-1:-1;3737:248:1:o;3990:380::-;4069:1;4065:12;;;;4112;;;4133:61;;4187:4;4179:6;4175:17;4165:27;;4133:61;4240:2;4232:6;4229:14;4209:18;4206:38;4203:161;;4286:10;4281:3;4277:20;4274:1;4267:31;4321:4;4318:1;4311:15;4349:4;4346:1;4339:15;4203:161;;3990:380;;;:::o;4375:127::-;4436:10;4431:3;4427:20;4424:1;4417:31;4467:4;4464:1;4457:15;4491:4;4488:1;4481:15;4507:125;4572:9;;;4593:10;;;4590:36;;;4606:18;;:::i;4637:413::-;4839:2;4821:21;;;4878:2;4858:18;;;4851:30;4917:34;4912:2;4897:18;;4890:62;-1:-1:-1;;;4983:2:1;4968:18;;4961:47;5040:3;5025:19;;4637:413::o;7053:168::-;7126:9;;;7157;;7174:15;;;7168:22;;7154:37;7144:71;;7195:18;;:::i;11120:127::-;11181:10;11176:3;11172:20;11169:1;11162:31;11212:4;11209:1;11202:15;11236:4;11233:1;11226:15;11252:251;11322:6;11375:2;11363:9;11354:7;11350:23;11346:32;11343:52;;;11391:1;11388;11381:12;11343:52;11423:9;11417:16;11442:31;11467:5;11442:31;:::i;11508:980::-;11770:4;11818:3;11807:9;11803:19;11849:6;11838:9;11831:25;11875:2;11913:6;11908:2;11897:9;11893:18;11886:34;11956:3;11951:2;11940:9;11936:18;11929:31;11980:6;12015;12009:13;12046:6;12038;12031:22;12084:3;12073:9;12069:19;12062:26;;12123:2;12115:6;12111:15;12097:29;;12144:1;12154:195;12168:6;12165:1;12162:13;12154:195;;;12233:13;;-1:-1:-1;;;;;12229:39:1;12217:52;;12324:15;;;;12289:12;;;;12265:1;12183:9;12154:195;;;-1:-1:-1;;;;;;;12405:32:1;;;;12400:2;12385:18;;12378:60;-1:-1:-1;;;12469:3:1;12454:19;12447:35;12366:3;11508:980;-1:-1:-1;;;11508:980:1:o;12493:217::-;12533:1;12559;12549:132;;12603:10;12598:3;12594:20;12591:1;12584:31;12638:4;12635:1;12628:15;12666:4;12663:1;12656:15;12549:132;-1:-1:-1;12695:9:1;;12493:217::o;12715:128::-;12782:9;;;12803:11;;;12800:37;;;12817:18;;:::i;13460:306::-;13548:6;13556;13564;13617:2;13605:9;13596:7;13592:23;13588:32;13585:52;;;13633:1;13630;13623:12;13585:52;13662:9;13656:16;13646:26;;13712:2;13701:9;13697:18;13691:25;13681:35;;13756:2;13745:9;13741:18;13735:25;13725:35;;13460:306;;;;;:::o

Swarm Source

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