ETH Price: $3,913.58 (+0.13%)

Token

ERC-20: Jikan Ryoko No Owari (Tabi)
 

Overview

Max Total Supply

1,000,000,000 Tabi

Holders

45

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
8,370,000.000000000358864651 Tabi

Value
$0.00
0xa4bd1840ece832affef4444ab289b84ecd55b959
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.

Contract Source Code Verified (Exact Match)

Contract Name:
KUJIRA

Compiler Version
v0.8.14+commit.80d49f37

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-07
*/

//SPDX-License-Identifier: MIT
pragma solidity 0.8.14;


abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        this;
        return msg.data;
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address recipient, uint256 amount) external returns (bool);

    function allowance(address owner, address spender) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(address indexed owner, address indexed spender, uint256 value);
}

interface IERC20Metadata is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

    /**
     * @dev Returns the symbol of the token.
     */
    function symbol() external view returns (string memory);

    /**
     * @dev Returns the decimals places of the token.
     */
    function decimals() external view returns (uint8);
}


contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping (address => uint256) internal _balances;

    mapping (address => mapping (address => uint256)) internal _allowances;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * The defaut value of {decimals} is 18. To select a different value for
     * {decimals} you should overload it.
     *
     * All two of these values are immutable: they can only be set once during
     * construction.
     */
    constructor (string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    /**
     * @dev Returns the name of the token.
     */
    function name() public view virtual override returns (string memory) {
        return _name;
    }

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    /**
     * @dev Returns the number of decimals used to get its user representation.
     * For example, if `decimals` equals `2`, a balance of `505` tokens should
     * be displayed to a user as `5,05` (`505 / 10 ** 2`).
     *
     * Tokens usually opt for a value of 18, imitating the relationship between
     * Ether and Wei. This is the value {ERC20} uses, unless this function is
     * overridden;
     *
     * NOTE: This information is only used for _display_ purposes: it in
     * no way affects any of the arithmetic of the contract, including
     * {IERC20-balanceOf} and {IERC20-transfer}.
     */
    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    /**
     * @dev See {IERC20-totalSupply}.
     */
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }

    /**
     * @dev See {IERC20-transfer}.
     *
     * Requirements:
     *
     * - `recipient` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    /**
     * @dev See {IERC20-allowance}.
     */
    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    /**
     * @dev See {IERC20-approve}.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {ERC20}.
     *
     * Requirements:
     *
     * - `sender` and `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     * - the caller must have allowance for ``sender``'s tokens of at least
     * `amount`.
     */
    function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        _approve(sender, _msgSender(), currentAllowance - amount);

        return true;
    }

    /**
     * @dev Atomically increases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

    /**
     * @dev Atomically decreases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     * - `spender` must have allowance for the caller of at least
     * `subtractedValue`.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        _approve(_msgSender(), spender, currentAllowance - subtractedValue);

        return true;
    }

    /**
     * @dev Moves tokens `amount` from `sender` to `recipient`.
     *
     * This is internal function is equivalent to {transfer}, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     *
     * Emits a {Transfer} event.
     *
     * Requirements:
     *
     * - `sender` cannot be the zero address.
     * - `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     */
    function _transfer(address sender, address recipient, uint256 amount) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        _balances[sender] = senderBalance - amount;
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);
    }

    /** @dev Creates `amount` tokens and assigns them to `account`, increasing
     * the total supply.
     *
     * Emits a {Transfer} event with `from` set to the zero address.
     *
     * Requirements:
     *
     * - `to` cannot be the zero address.
     */
    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);
    }

    /**
     * @dev Destroys `amount` tokens from `account`, reducing the
     * total supply.
     *
     * Emits a {Transfer} event with `to` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     * - `account` must have at least `amount` tokens.
     */
    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        _balances[account] = accountBalance - amount;
        _totalSupply -= amount;

        emit Transfer(account, address(0), amount);
    }

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
     *
     * This internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an {Approval} event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     */
    function _approve(address owner, address spender, uint256 amount) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    /**
     * @dev Hook that is called before any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * will be to transferred to `to`.
     * - when `from` is zero, `amount` tokens will be minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { }
}

library Address{
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        (bool success, ) = recipient.call{value: amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
}

abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor() {
        _setOwner(_msgSender());
    }

    function owner() public view virtual returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _setOwner(newOwner);
    }

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

interface IFactory{
        function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

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

contract KUJIRA is ERC20, Ownable{
    using Address for address payable;
    
    IRouter public router;
    address public pair;
    
    bool private swapping;
    bool public swapEnabled;
    bool public tradingEnabled;
    bool public jackpotEnabled;

    mapping(address => bool) public isBlacklisted;
    mapping (address => bool) public excludedFromFees;

    uint256 public jackpotValue;
    uint256 public jackpotThreshold = 50;
    uint256 public buyerCounter;

    uint256 public swapThreshold = 100000 * 10**18;
    uint256 public maxWalletAmount = 20000000 * 10**18;
    uint256 public maxTxAmount = 10000000 * 10**18;
    
    address public marketingWallet = 0x648c6D78680e1C1282144bB129E4b7FfCBcd0fa0;
    address public lpRecipient = 0xe55baC754EEa306E3251955880b478454EFFDD25;

    //Cooldown settings
    mapping(address => uint256) public lastTradeByUser;
    uint256 coolDownTime = 30 seconds;
    bool coolDownEnabled = true;
    
    struct Taxes {
        uint256 marketing;
        uint256 lp;
        uint256 jackpot;
    }
    
    Taxes public taxes = Taxes(4,1,2);
    uint256 public totalTax = 7;
    
    modifier inSwap() {
        if (!swapping) {
            swapping = true;
            _;
            swapping = false;
        }
    }

    event JackpotSent(address winner, uint256 amount);
        
    constructor() ERC20("Jikan Ryoko No Owari", "Tabi") {
        _mint(msg.sender, 1e9 * 10 ** 18);
        excludedFromFees[msg.sender] = true;

        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IFactory(_router.factory())
            .createPair(address(this), _router.WETH());

        router = _router;
        pair = _pair;
        excludedFromFees[address(this)] = true;
        excludedFromFees[marketingWallet] = true;
        excludedFromFees[lpRecipient] = true;
    }


    function _transfer(address sender, address recipient, uint256 amount) internal override {
        require(amount > 0, "Transfer amount must be greater than zero");
        require(!isBlacklisted[sender] && !isBlacklisted[recipient], "Dev says: Bye Bye Bots");
                
        if(!excludedFromFees[sender] && !excludedFromFees[recipient] && !swapping){
            require(tradingEnabled, "Trading not enabled yet");
            require(amount <= maxTxAmount, "You are exceeding maxTxAmount");
            if(recipient != pair){
                require(balanceOf(recipient) + amount <= maxWalletAmount, "You are exceeding maxWalletAmount");
                require(!coolDownEnabled || lastTradeByUser[recipient] + coolDownTime <= block.timestamp, "Cooldown Enabled. Wait please");
                lastTradeByUser[recipient] = block.timestamp;
            }
            if(sender != pair){
                require(!coolDownEnabled || lastTradeByUser[sender] + coolDownTime <= block.timestamp, "Cooldown Enabled. Wait please");
                lastTradeByUser[sender] = block.timestamp;
            }
        }

        uint256 fee;
        
        //set fee to zero if fees in contract are handled or exempted
        if (swapping || excludedFromFees[sender] || excludedFromFees[recipient] || (sender != pair && recipient != pair)) fee = 0;
        
        //calculate fee
        else fee = amount * totalTax / 100;

        
        //send fees if threshold has been reached
        //don't do this on buys, breaks swap
        if (swapEnabled && !swapping && sender != pair && fee > 0) swapForFees();

        if(sender == pair && jackpotEnabled) {
            buyerCounter++;
            if(buyerCounter == jackpotThreshold) {
                buyerCounter = 0; //reset the counter
                if(jackpotValue > 0) {
                    payable(recipient).sendValue(jackpotValue);
                    emit JackpotSent(recipient, jackpotValue);
                }
            }
        }

        super._transfer(sender, recipient, amount - fee);
        if(fee > 0) super._transfer(sender, address(this) ,fee);

    }

    function swapForFees() private inSwap {
        uint256 contractBalance = balanceOf(address(this));
        if (contractBalance >= swapThreshold) {

            uint256 denominator = totalTax * 2;
            uint256 tokensToAddLiquidityWith = swapThreshold * taxes.lp / denominator;
            uint256 toSwap = swapThreshold - tokensToAddLiquidityWith;

            uint256 initialBalance = address(this).balance;

            swapTokensForETH(toSwap);

            uint256 deltaBalance = address(this).balance - initialBalance;
            uint256 unitBalance = deltaBalance / (denominator - taxes.lp);
            uint256 ethToAddLiquidityWith = unitBalance * taxes.lp;

            if (ethToAddLiquidityWith > 0) {

                addLiquidity(tokensToAddLiquidityWith, ethToAddLiquidityWith);
            }

            uint256 marketingAmt = unitBalance * 2 * taxes.marketing;
            if (marketingAmt > 0) {
                payable(marketingWallet).sendValue(marketingAmt);
            }

            uint256 jackpotAmt = unitBalance * 2 * taxes.jackpot;
            if (jackpotAmt > 0) {
                jackpotValue += jackpotAmt;
            }
        }
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {

        _approve(address(this), address(router), tokenAmount);


        router.addLiquidityETH{value : ethAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            lpRecipient,
            block.timestamp
        );
    }


    function swapTokensForETH(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

        _approve(address(this), address(router), tokenAmount);

        // make the swap
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount, 0, path, address(this), block.timestamp);

    }

    function setSwapEnabled(bool state) external onlyOwner {
        swapEnabled = state;
    }

    function setJackpotThreshold(uint256 amount) external onlyOwner{
        jackpotThreshold = amount;
    }

    function setSwapThreshold(uint256 new_amount) external onlyOwner {
        swapThreshold = new_amount * 10**18;
    }

    function enableTrading() external onlyOwner{
        require(!tradingEnabled, "Trading already active");
        tradingEnabled = true;
        swapEnabled = true;
    }

    function setJackpotEnabled(bool status) external onlyOwner{
        jackpotEnabled = status;
    }

    function bulkSetBlacklist(address[] memory accounts, bool state) external onlyOwner{
        for(uint256 i = 0; i < accounts.length; i++){
            isBlacklisted[accounts[i]] = state;
        }
    }

    function setBlacklist(address account, bool state) external onlyOwner{
        isBlacklisted[account] = state;
    }

    function setTaxes(uint256 _marketing, uint256 _lp, uint256 _jackpot) external onlyOwner{
        require(_jackpot + _marketing + _lp <= 15, "Max Fee is 15%");
        taxes = Taxes(_marketing, _lp, _jackpot);
        totalTax = _jackpot + _marketing + _lp;
    }

    function setCooldownSettings(bool _enabled, uint256 _timer) external onlyOwner{
        coolDownEnabled = _enabled;
        coolDownTime = _timer;
    }
    
    function updateMarketingWallet(address newWallet) external onlyOwner{
        marketingWallet = newWallet;
    }
    
    function updateLpRecipient(address newWallet) external onlyOwner{
        lpRecipient = newWallet;
    }

    function updateRouterAndPair(IRouter _router, address _pair) external onlyOwner{

        router = _router;
        pair = _pair;
    }
    
    function updateExcludedFromFees(address _address, bool state) external onlyOwner {
        excludedFromFees[_address] = state;
    }
    
    
    function updateMaxWalletAmount(uint256 amount) external onlyOwner{
        require(amount > 0, "Max Wallet can't be 0");
        maxWalletAmount = amount * 10**18;
    }

    function updateMaxTxAmount(uint256 amount) external onlyOwner{
        require(amount > 0, "Max Tx can't be 0");
        maxTxAmount = amount * 10**18;
    }

    function rescueTokens(address tokenAddress, uint256 amount) external onlyOwner{
        IERC20(tokenAddress).transfer(owner(), amount);
    }

    function rescueETH(uint256 weiAmount) external onlyOwner{
        payable(owner()).sendValue(weiAmount);
    }

    // fallbacks
    receive() external payable {}
    
}

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":"address","name":"winner","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"JackpotSent","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":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"bulkSetBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buyerCounter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"excludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"jackpotEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"jackpotThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"jackpotValue","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lastTradeByUser","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpRecipient","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","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":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"setBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_timer","type":"uint256"}],"name":"setCooldownSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"name":"setJackpotEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setJackpotThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"new_amount","type":"uint256"}],"name":"setSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_lp","type":"uint256"},{"internalType":"uint256","name":"_jackpot","type":"uint256"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"lp","type":"uint256"},{"internalType":"uint256","name":"jackpot","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateLpRecipient","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IRouter","name":"_router","type":"address"},{"internalType":"address","name":"_pair","type":"address"}],"name":"updateRouterAndPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6032600b5569152d02c7e14af6800000600d556a108b2a2c28029094000000600e556a084595161401484a000000600f55601080546001600160a01b031990811673648c6d78680e1c1282144bb129e4b7ffcbcd0fa0179091556011805490911673e55bac754eea306e3251955880b478454effdd25179055601e6013556014805460ff1916600190811790915560e06040526004608081905260a0829052600260c08190526015919091556016919091556017556007601855348015620000c657600080fd5b50604080518082018252601481527f4a696b616e2052796f6b6f204e6f204f776172690000000000000000000000006020808301918252835180850190945260048452635461626960e01b9084015281519192916200012891600391620004a4565b5080516200013e906004906020840190620004a4565b5050506200015b620001556200036660201b60201c565b6200036a565b62000173336b033b2e3c9fd0803ce8000000620003bc565b336000908152600960209081526040808320805460ff19166001179055805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9392849263c45a015592600480830193928290030181865afa158015620001de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200020491906200054a565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000252573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200027891906200054a565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002c6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ec91906200054a565b600680546001600160a01b03199081166001600160a01b0395861617909155600780549091169184169190911790555030600090815260096020526040808220805460ff199081166001908117909255601054851684528284208054821683179055601154909416835291208054909216179055620005df565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216620004175760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b80600260008282546200042b91906200057c565b90915550506001600160a01b038216600090815260208190526040812080548392906200045a9084906200057c565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b828054620004b290620005a3565b90600052602060002090601f016020900481019282620004d6576000855562000521565b82601f10620004f157805160ff191683800117855562000521565b8280016001018555821562000521579182015b828111156200052157825182559160200191906001019062000504565b506200052f92915062000533565b5090565b5b808211156200052f576000815560010162000534565b6000602082840312156200055d57600080fd5b81516001600160a01b03811681146200057557600080fd5b9392505050565b600082198211156200059e57634e487b7160e01b600052601160045260246000fd5b500190565b600181811c90821680620005b857607f821691505b602082108103620005d957634e487b7160e01b600052602260045260246000fd5b50919050565b61260480620005ef6000396000f3fe6080604052600436106102b25760003560e01c80638a8c523c11610175578063c18bc195116100dc578063e01af92c11610095578063f2fde38b1161006f578063f2fde38b146108a5578063f887ea40146108c5578063fe575a87146108e5578063fe85b42b1461091557600080fd5b8063e01af92c14610845578063e545fd6d14610865578063e9dae5ed1461088557600080fd5b8063c18bc19514610759578063c8b6887514610779578063cdb3858f14610799578063d11bd5d2146107b9578063dbe66ca0146107cf578063dd62ed3e146107ff57600080fd5b80639e252f001161012e5780639e252f00146106a3578063a457c2d7146106c3578063a8aa1b31146106e3578063a9059cbb14610703578063aa4bde2814610723578063aacebbe31461073957600080fd5b80638a8c523c146106045780638c0b5e22146106195780638da5cb5b1461062f57806395d89b411461064d5780639d0014b1146106625780639d2aee5f1461068257600080fd5b80634ada218b11610219578063715018a6116101d2578063715018a614610532578063728f8eea1461054757806375f0a87414610581578063778bf9be146105a15780637a7fdaa0146105c157806382ac49c6146105d757600080fd5b80634ada218b1461045a578063573761981461047b5780636256d1811461049b57806367524d62146104bb5780636ddd1713146104db57806370a08231146104fc57600080fd5b8063313ce5671161026b578063313ce5671461039057806338a392e6146103ac57806339509351146103cc5780633ad202b5146103ec57806340b28c2f14610402578063452e68dd1461042257600080fd5b80630445b667146102be57806306fdde03146102e7578063095ea7b314610309578063153b0d1e1461033957806318160ddd1461035b57806323b872dd1461037057600080fd5b366102b957005b600080fd5b3480156102ca57600080fd5b506102d4600d5481565b6040519081526020015b60405180910390f35b3480156102f357600080fd5b506102fc61092b565b6040516102de91906120d9565b34801561031557600080fd5b50610329610324366004612153565b6109bd565b60405190151581526020016102de565b34801561034557600080fd5b50610359610354366004612198565b6109d3565b005b34801561036757600080fd5b506002546102d4565b34801561037c57600080fd5b5061032961038b3660046121d1565b610a31565b34801561039c57600080fd5b50604051601281526020016102de565b3480156103b857600080fd5b506103596103c7366004612212565b610ae2565b3480156103d857600080fd5b506103296103e7366004612153565b610b23565b3480156103f857600080fd5b506102d4600b5481565b34801561040e57600080fd5b5061035961041d366004612230565b610b5a565b34801561042e57600080fd5b50601154610442906001600160a01b031681565b6040516001600160a01b0390911681526020016102de565b34801561046657600080fd5b5060075461032990600160b01b900460ff1681565b34801561048757600080fd5b50610359610496366004612153565b610bb2565b3480156104a757600080fd5b506103596104b636600461225e565b610c73565b3480156104c757600080fd5b506103596104d636600461225e565b610cf9565b3480156104e757600080fd5b5060075461032990600160a81b900460ff1681565b34801561050857600080fd5b506102d4610517366004612277565b6001600160a01b031660009081526020819052604090205490565b34801561053e57600080fd5b50610359610d28565b34801561055357600080fd5b5060155460165460175461056692919083565b604080519384526020840192909252908201526060016102de565b34801561058d57600080fd5b50601054610442906001600160a01b031681565b3480156105ad57600080fd5b506103596105bc3660046122b1565b610d5e565b3480156105cd57600080fd5b506102d4600c5481565b3480156105e357600080fd5b506102d46105f2366004612277565b60126020526000908152604090205481565b34801561061057600080fd5b50610359610def565b34801561062557600080fd5b506102d4600f5481565b34801561063b57600080fd5b506005546001600160a01b0316610442565b34801561065957600080fd5b506102fc610e83565b34801561066e57600080fd5b5061035961067d36600461225e565b610e92565b34801561068e57600080fd5b5060075461032990600160b81b900460ff1681565b3480156106af57600080fd5b506103596106be36600461225e565b610ed4565b3480156106cf57600080fd5b506103296106de366004612153565b610f26565b3480156106ef57600080fd5b50600754610442906001600160a01b031681565b34801561070f57600080fd5b5061032961071e366004612153565b610fc1565b34801561072f57600080fd5b506102d4600e5481565b34801561074557600080fd5b50610359610754366004612277565b610fce565b34801561076557600080fd5b5061035961077436600461225e565b61101a565b34801561078557600080fd5b50610359610794366004612388565b6110a4565b3480156107a557600080fd5b506103596107b4366004612277565b6110ec565b3480156107c557600080fd5b506102d4600a5481565b3480156107db57600080fd5b506103296107ea366004612277565b60096020526000908152604090205460ff1681565b34801561080b57600080fd5b506102d461081a366004612230565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561085157600080fd5b50610359610860366004612388565b611138565b34801561087157600080fd5b50610359610880366004612198565b611180565b34801561089157600080fd5b506103596108a03660046123a5565b6111d5565b3480156108b157600080fd5b506103596108c0366004612277565b611299565b3480156108d157600080fd5b50600654610442906001600160a01b031681565b3480156108f157600080fd5b50610329610900366004612277565b60086020526000908152604090205460ff1681565b34801561092157600080fd5b506102d460185481565b60606003805461093a906123d1565b80601f0160208091040260200160405190810160405280929190818152602001828054610966906123d1565b80156109b35780601f10610988576101008083540402835291602001916109b3565b820191906000526020600020905b81548152906001019060200180831161099657829003601f168201915b5050505050905090565b60006109ca338484611331565b50600192915050565b6005546001600160a01b03163314610a065760405162461bcd60e51b81526004016109fd9061240b565b60405180910390fd5b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6000610a3e848484611455565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610ac35760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016109fd565b610ad78533610ad28685612456565b611331565b506001949350505050565b6005546001600160a01b03163314610b0c5760405162461bcd60e51b81526004016109fd9061240b565b6014805460ff191692151592909217909155601355565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916109ca918590610ad290869061246d565b6005546001600160a01b03163314610b845760405162461bcd60e51b81526004016109fd9061240b565b600680546001600160a01b039384166001600160a01b03199182161790915560078054929093169116179055565b6005546001600160a01b03163314610bdc5760405162461bcd60e51b81526004016109fd9061240b565b816001600160a01b031663a9059cbb610bfd6005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af1158015610c4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c6e9190612485565b505050565b6005546001600160a01b03163314610c9d5760405162461bcd60e51b81526004016109fd9061240b565b60008111610ce15760405162461bcd60e51b815260206004820152601160248201527004d61782054782063616e2774206265203607c1b60448201526064016109fd565b610cf381670de0b6b3a76400006124a2565b600f5550565b6005546001600160a01b03163314610d235760405162461bcd60e51b81526004016109fd9061240b565b600b55565b6005546001600160a01b03163314610d525760405162461bcd60e51b81526004016109fd9061240b565b610d5c6000611a1c565b565b6005546001600160a01b03163314610d885760405162461bcd60e51b81526004016109fd9061240b565b60005b8251811015610c6e578160086000858481518110610dab57610dab6124c1565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610de7816124d7565b915050610d8b565b6005546001600160a01b03163314610e195760405162461bcd60e51b81526004016109fd9061240b565b600754600160b01b900460ff1615610e6c5760405162461bcd60e51b815260206004820152601660248201527554726164696e6720616c72656164792061637469766560501b60448201526064016109fd565b6007805461ffff60a81b191661010160a81b179055565b60606004805461093a906123d1565b6005546001600160a01b03163314610ebc5760405162461bcd60e51b81526004016109fd9061240b565b610ece81670de0b6b3a76400006124a2565b600d5550565b6005546001600160a01b03163314610efe5760405162461bcd60e51b81526004016109fd9061240b565b610f2381610f146005546001600160a01b031690565b6001600160a01b031690611a6e565b50565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610fa85760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016109fd565b610fb73385610ad28685612456565b5060019392505050565b60006109ca338484611455565b6005546001600160a01b03163314610ff85760405162461bcd60e51b81526004016109fd9061240b565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146110445760405162461bcd60e51b81526004016109fd9061240b565b6000811161108c5760405162461bcd60e51b815260206004820152601560248201527404d61782057616c6c65742063616e2774206265203605c1b60448201526064016109fd565b61109e81670de0b6b3a76400006124a2565b600e5550565b6005546001600160a01b031633146110ce5760405162461bcd60e51b81526004016109fd9061240b565b60078054911515600160b81b0260ff60b81b19909216919091179055565b6005546001600160a01b031633146111165760405162461bcd60e51b81526004016109fd9061240b565b601180546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146111625760405162461bcd60e51b81526004016109fd9061240b565b60078054911515600160a81b0260ff60a81b19909216919091179055565b6005546001600160a01b031633146111aa5760405162461bcd60e51b81526004016109fd9061240b565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146111ff5760405162461bcd60e51b81526004016109fd9061240b565b600f8261120c858461246d565b611216919061246d565b11156112555760405162461bcd60e51b815260206004820152600e60248201526d4d6178204665652069732031352560901b60448201526064016109fd565b60408051606081018252848152602081018490520181905260158390556016829055601781905581611287848361246d565b611291919061246d565b601855505050565b6005546001600160a01b031633146112c35760405162461bcd60e51b81526004016109fd9061240b565b6001600160a01b0381166113285760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109fd565b610f2381611a1c565b6001600160a01b0383166113935760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016109fd565b6001600160a01b0382166113f45760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016109fd565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600081116114b75760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016109fd565b6001600160a01b03831660009081526008602052604090205460ff161580156114f957506001600160a01b03821660009081526008602052604090205460ff16155b61153e5760405162461bcd60e51b815260206004820152601660248201527544657620736179733a204279652042796520426f747360501b60448201526064016109fd565b6001600160a01b03831660009081526009602052604090205460ff1615801561158057506001600160a01b03821660009081526009602052604090205460ff16155b80156115965750600754600160a01b900460ff16155b1561183357600754600160b01b900460ff166115f45760405162461bcd60e51b815260206004820152601760248201527f54726164696e67206e6f7420656e61626c65642079657400000000000000000060448201526064016109fd565b600f548111156116465760405162461bcd60e51b815260206004820152601d60248201527f596f752061726520657863656564696e67206d61785478416d6f756e7400000060448201526064016109fd565b6007546001600160a01b0383811691161461177f57600e548161167e846001600160a01b031660009081526020819052604090205490565b611688919061246d565b11156116e05760405162461bcd60e51b815260206004820152602160248201527f596f752061726520657863656564696e67206d617857616c6c6574416d6f756e6044820152601d60fa1b60648201526084016109fd565b60145460ff16158061171757506013546001600160a01b03831660009081526012602052604090205442916117149161246d565b11155b6117635760405162461bcd60e51b815260206004820152601d60248201527f436f6f6c646f776e20456e61626c65642e205761697420706c6561736500000060448201526064016109fd565b6001600160a01b03821660009081526012602052604090204290555b6007546001600160a01b038481169116146118335760145460ff1615806117cb57506013546001600160a01b03841660009081526012602052604090205442916117c89161246d565b11155b6118175760405162461bcd60e51b815260206004820152601d60248201527f436f6f6c646f776e20456e61626c65642e205761697420706c6561736500000060448201526064016109fd565b6001600160a01b03831660009081526012602052604090204290555b600754600090600160a01b900460ff168061186657506001600160a01b03841660009081526009602052604090205460ff165b8061188957506001600160a01b03831660009081526009602052604090205460ff165b806118bb57506007546001600160a01b038581169116148015906118bb57506007546001600160a01b03848116911614155b156118c8575060006118e5565b6064601854836118d891906124a2565b6118e291906124f0565b90505b600754600160a81b900460ff1680156119085750600754600160a01b900460ff16155b801561192257506007546001600160a01b03858116911614155b801561192e5750600081115b1561193b5761193b611b87565b6007546001600160a01b0385811691161480156119615750600754600160b81b900460ff165b156119f157600c8054906000611976836124d7565b9190505550600b54600c54036119f1576000600c55600a54156119f157600a546119aa906001600160a01b03851690611a6e565b600a54604080516001600160a01b038616815260208101929092527ff8265ef397392d4fed7d3ea625ae5af47b0aef752d323bb2acd4bcaed42b2000910160405180910390a15b611a058484611a008486612456565b611cf3565b8015611a1657611a16843083611cf3565b50505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b80471015611abe5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016109fd565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611b0b576040519150601f19603f3d011682016040523d82523d6000602084013e611b10565b606091505b5050905080610c6e5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016109fd565b600754600160a01b900460ff16610d5c576007805460ff60a01b1916600160a01b179055306000908152602081905260408120549050600d548110611ce35760006018546002611bd791906124a2565b9050600081601560010154600d54611bef91906124a2565b611bf991906124f0565b9050600081600d54611c0b9190612456565b905047611c1782611ecb565b6000611c238247612456565b601654909150600090611c369087612456565b611c4090836124f0565b601654909150600090611c5390836124a2565b90508015611c6557611c658682612025565b601554600090611c768460026124a2565b611c8091906124a2565b90508015611c9e57601054611c9e906001600160a01b031682611a6e565b601754600090611caf8560026124a2565b611cb991906124a2565b90508015611cd95780600a6000828254611cd3919061246d565b90915550505b5050505050505050505b506007805460ff60a01b19169055565b6001600160a01b038316611d575760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016109fd565b6001600160a01b038216611db95760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016109fd565b6001600160a01b03831660009081526020819052604090205481811015611e315760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016109fd565b611e3b8282612456565b6001600160a01b038086166000908152602081905260408082209390935590851681529081208054849290611e7190849061246d565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611ebd91815260200190565b60405180910390a350505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611f0057611f006124c1565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611f59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f7d9190612512565b81600181518110611f9057611f906124c1565b6001600160a01b039283166020918202929092010152600654611fb69130911684611331565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790611fef90859060009086903090429060040161252f565b600060405180830381600087803b15801561200957600080fd5b505af115801561201d573d6000803e3d6000fd5b505050505050565b60065461203d9030906001600160a01b031684611331565b60065460115460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af11580156120ad573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906120d291906125a0565b5050505050565b600060208083528351808285015260005b81811015612106578581018301518582016040015282016120ea565b81811115612118576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114610f2357600080fd5b803561214e8161212e565b919050565b6000806040838503121561216657600080fd5b82356121718161212e565b946020939093013593505050565b8015158114610f2357600080fd5b803561214e8161217f565b600080604083850312156121ab57600080fd5b82356121b68161212e565b915060208301356121c68161217f565b809150509250929050565b6000806000606084860312156121e657600080fd5b83356121f18161212e565b925060208401356122018161212e565b929592945050506040919091013590565b6000806040838503121561222557600080fd5b82356121718161217f565b6000806040838503121561224357600080fd5b823561224e8161212e565b915060208301356121c68161212e565b60006020828403121561227057600080fd5b5035919050565b60006020828403121561228957600080fd5b81356122948161212e565b9392505050565b634e487b7160e01b600052604160045260246000fd5b600080604083850312156122c457600080fd5b823567ffffffffffffffff808211156122dc57600080fd5b818501915085601f8301126122f057600080fd5b81356020828211156123045761230461229b565b8160051b604051601f19603f830116810181811086821117156123295761232961229b565b60405292835281830193508481018201928984111561234757600080fd5b948201945b8386101561236c5761235d86612143565b8552948201949382019361234c565b965061237b905087820161218d565b9450505050509250929050565b60006020828403121561239a57600080fd5b81356122948161217f565b6000806000606084860312156123ba57600080fd5b505081359360208301359350604090920135919050565b600181811c908216806123e557607f821691505b60208210810361240557634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008282101561246857612468612440565b500390565b6000821982111561248057612480612440565b500190565b60006020828403121561249757600080fd5b81516122948161217f565b60008160001904831182151516156124bc576124bc612440565b500290565b634e487b7160e01b600052603260045260246000fd5b6000600182016124e9576124e9612440565b5060010190565b60008261250d57634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561252457600080fd5b81516122948161212e565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561257f5784516001600160a01b03168352938301939183019160010161255a565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156125b557600080fd5b835192506020840151915060408401519050925092509256fea264697066735822122071c1451444800c086a06820513d98d7b808991a7f48638250fd4e6637b62848d64736f6c634300080e0033

Deployed Bytecode

0x6080604052600436106102b25760003560e01c80638a8c523c11610175578063c18bc195116100dc578063e01af92c11610095578063f2fde38b1161006f578063f2fde38b146108a5578063f887ea40146108c5578063fe575a87146108e5578063fe85b42b1461091557600080fd5b8063e01af92c14610845578063e545fd6d14610865578063e9dae5ed1461088557600080fd5b8063c18bc19514610759578063c8b6887514610779578063cdb3858f14610799578063d11bd5d2146107b9578063dbe66ca0146107cf578063dd62ed3e146107ff57600080fd5b80639e252f001161012e5780639e252f00146106a3578063a457c2d7146106c3578063a8aa1b31146106e3578063a9059cbb14610703578063aa4bde2814610723578063aacebbe31461073957600080fd5b80638a8c523c146106045780638c0b5e22146106195780638da5cb5b1461062f57806395d89b411461064d5780639d0014b1146106625780639d2aee5f1461068257600080fd5b80634ada218b11610219578063715018a6116101d2578063715018a614610532578063728f8eea1461054757806375f0a87414610581578063778bf9be146105a15780637a7fdaa0146105c157806382ac49c6146105d757600080fd5b80634ada218b1461045a578063573761981461047b5780636256d1811461049b57806367524d62146104bb5780636ddd1713146104db57806370a08231146104fc57600080fd5b8063313ce5671161026b578063313ce5671461039057806338a392e6146103ac57806339509351146103cc5780633ad202b5146103ec57806340b28c2f14610402578063452e68dd1461042257600080fd5b80630445b667146102be57806306fdde03146102e7578063095ea7b314610309578063153b0d1e1461033957806318160ddd1461035b57806323b872dd1461037057600080fd5b366102b957005b600080fd5b3480156102ca57600080fd5b506102d4600d5481565b6040519081526020015b60405180910390f35b3480156102f357600080fd5b506102fc61092b565b6040516102de91906120d9565b34801561031557600080fd5b50610329610324366004612153565b6109bd565b60405190151581526020016102de565b34801561034557600080fd5b50610359610354366004612198565b6109d3565b005b34801561036757600080fd5b506002546102d4565b34801561037c57600080fd5b5061032961038b3660046121d1565b610a31565b34801561039c57600080fd5b50604051601281526020016102de565b3480156103b857600080fd5b506103596103c7366004612212565b610ae2565b3480156103d857600080fd5b506103296103e7366004612153565b610b23565b3480156103f857600080fd5b506102d4600b5481565b34801561040e57600080fd5b5061035961041d366004612230565b610b5a565b34801561042e57600080fd5b50601154610442906001600160a01b031681565b6040516001600160a01b0390911681526020016102de565b34801561046657600080fd5b5060075461032990600160b01b900460ff1681565b34801561048757600080fd5b50610359610496366004612153565b610bb2565b3480156104a757600080fd5b506103596104b636600461225e565b610c73565b3480156104c757600080fd5b506103596104d636600461225e565b610cf9565b3480156104e757600080fd5b5060075461032990600160a81b900460ff1681565b34801561050857600080fd5b506102d4610517366004612277565b6001600160a01b031660009081526020819052604090205490565b34801561053e57600080fd5b50610359610d28565b34801561055357600080fd5b5060155460165460175461056692919083565b604080519384526020840192909252908201526060016102de565b34801561058d57600080fd5b50601054610442906001600160a01b031681565b3480156105ad57600080fd5b506103596105bc3660046122b1565b610d5e565b3480156105cd57600080fd5b506102d4600c5481565b3480156105e357600080fd5b506102d46105f2366004612277565b60126020526000908152604090205481565b34801561061057600080fd5b50610359610def565b34801561062557600080fd5b506102d4600f5481565b34801561063b57600080fd5b506005546001600160a01b0316610442565b34801561065957600080fd5b506102fc610e83565b34801561066e57600080fd5b5061035961067d36600461225e565b610e92565b34801561068e57600080fd5b5060075461032990600160b81b900460ff1681565b3480156106af57600080fd5b506103596106be36600461225e565b610ed4565b3480156106cf57600080fd5b506103296106de366004612153565b610f26565b3480156106ef57600080fd5b50600754610442906001600160a01b031681565b34801561070f57600080fd5b5061032961071e366004612153565b610fc1565b34801561072f57600080fd5b506102d4600e5481565b34801561074557600080fd5b50610359610754366004612277565b610fce565b34801561076557600080fd5b5061035961077436600461225e565b61101a565b34801561078557600080fd5b50610359610794366004612388565b6110a4565b3480156107a557600080fd5b506103596107b4366004612277565b6110ec565b3480156107c557600080fd5b506102d4600a5481565b3480156107db57600080fd5b506103296107ea366004612277565b60096020526000908152604090205460ff1681565b34801561080b57600080fd5b506102d461081a366004612230565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561085157600080fd5b50610359610860366004612388565b611138565b34801561087157600080fd5b50610359610880366004612198565b611180565b34801561089157600080fd5b506103596108a03660046123a5565b6111d5565b3480156108b157600080fd5b506103596108c0366004612277565b611299565b3480156108d157600080fd5b50600654610442906001600160a01b031681565b3480156108f157600080fd5b50610329610900366004612277565b60086020526000908152604090205460ff1681565b34801561092157600080fd5b506102d460185481565b60606003805461093a906123d1565b80601f0160208091040260200160405190810160405280929190818152602001828054610966906123d1565b80156109b35780601f10610988576101008083540402835291602001916109b3565b820191906000526020600020905b81548152906001019060200180831161099657829003601f168201915b5050505050905090565b60006109ca338484611331565b50600192915050565b6005546001600160a01b03163314610a065760405162461bcd60e51b81526004016109fd9061240b565b60405180910390fd5b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6000610a3e848484611455565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610ac35760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016109fd565b610ad78533610ad28685612456565b611331565b506001949350505050565b6005546001600160a01b03163314610b0c5760405162461bcd60e51b81526004016109fd9061240b565b6014805460ff191692151592909217909155601355565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916109ca918590610ad290869061246d565b6005546001600160a01b03163314610b845760405162461bcd60e51b81526004016109fd9061240b565b600680546001600160a01b039384166001600160a01b03199182161790915560078054929093169116179055565b6005546001600160a01b03163314610bdc5760405162461bcd60e51b81526004016109fd9061240b565b816001600160a01b031663a9059cbb610bfd6005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af1158015610c4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c6e9190612485565b505050565b6005546001600160a01b03163314610c9d5760405162461bcd60e51b81526004016109fd9061240b565b60008111610ce15760405162461bcd60e51b815260206004820152601160248201527004d61782054782063616e2774206265203607c1b60448201526064016109fd565b610cf381670de0b6b3a76400006124a2565b600f5550565b6005546001600160a01b03163314610d235760405162461bcd60e51b81526004016109fd9061240b565b600b55565b6005546001600160a01b03163314610d525760405162461bcd60e51b81526004016109fd9061240b565b610d5c6000611a1c565b565b6005546001600160a01b03163314610d885760405162461bcd60e51b81526004016109fd9061240b565b60005b8251811015610c6e578160086000858481518110610dab57610dab6124c1565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610de7816124d7565b915050610d8b565b6005546001600160a01b03163314610e195760405162461bcd60e51b81526004016109fd9061240b565b600754600160b01b900460ff1615610e6c5760405162461bcd60e51b815260206004820152601660248201527554726164696e6720616c72656164792061637469766560501b60448201526064016109fd565b6007805461ffff60a81b191661010160a81b179055565b60606004805461093a906123d1565b6005546001600160a01b03163314610ebc5760405162461bcd60e51b81526004016109fd9061240b565b610ece81670de0b6b3a76400006124a2565b600d5550565b6005546001600160a01b03163314610efe5760405162461bcd60e51b81526004016109fd9061240b565b610f2381610f146005546001600160a01b031690565b6001600160a01b031690611a6e565b50565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610fa85760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016109fd565b610fb73385610ad28685612456565b5060019392505050565b60006109ca338484611455565b6005546001600160a01b03163314610ff85760405162461bcd60e51b81526004016109fd9061240b565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146110445760405162461bcd60e51b81526004016109fd9061240b565b6000811161108c5760405162461bcd60e51b815260206004820152601560248201527404d61782057616c6c65742063616e2774206265203605c1b60448201526064016109fd565b61109e81670de0b6b3a76400006124a2565b600e5550565b6005546001600160a01b031633146110ce5760405162461bcd60e51b81526004016109fd9061240b565b60078054911515600160b81b0260ff60b81b19909216919091179055565b6005546001600160a01b031633146111165760405162461bcd60e51b81526004016109fd9061240b565b601180546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146111625760405162461bcd60e51b81526004016109fd9061240b565b60078054911515600160a81b0260ff60a81b19909216919091179055565b6005546001600160a01b031633146111aa5760405162461bcd60e51b81526004016109fd9061240b565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6005546001600160a01b031633146111ff5760405162461bcd60e51b81526004016109fd9061240b565b600f8261120c858461246d565b611216919061246d565b11156112555760405162461bcd60e51b815260206004820152600e60248201526d4d6178204665652069732031352560901b60448201526064016109fd565b60408051606081018252848152602081018490520181905260158390556016829055601781905581611287848361246d565b611291919061246d565b601855505050565b6005546001600160a01b031633146112c35760405162461bcd60e51b81526004016109fd9061240b565b6001600160a01b0381166113285760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109fd565b610f2381611a1c565b6001600160a01b0383166113935760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016109fd565b6001600160a01b0382166113f45760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016109fd565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600081116114b75760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016109fd565b6001600160a01b03831660009081526008602052604090205460ff161580156114f957506001600160a01b03821660009081526008602052604090205460ff16155b61153e5760405162461bcd60e51b815260206004820152601660248201527544657620736179733a204279652042796520426f747360501b60448201526064016109fd565b6001600160a01b03831660009081526009602052604090205460ff1615801561158057506001600160a01b03821660009081526009602052604090205460ff16155b80156115965750600754600160a01b900460ff16155b1561183357600754600160b01b900460ff166115f45760405162461bcd60e51b815260206004820152601760248201527f54726164696e67206e6f7420656e61626c65642079657400000000000000000060448201526064016109fd565b600f548111156116465760405162461bcd60e51b815260206004820152601d60248201527f596f752061726520657863656564696e67206d61785478416d6f756e7400000060448201526064016109fd565b6007546001600160a01b0383811691161461177f57600e548161167e846001600160a01b031660009081526020819052604090205490565b611688919061246d565b11156116e05760405162461bcd60e51b815260206004820152602160248201527f596f752061726520657863656564696e67206d617857616c6c6574416d6f756e6044820152601d60fa1b60648201526084016109fd565b60145460ff16158061171757506013546001600160a01b03831660009081526012602052604090205442916117149161246d565b11155b6117635760405162461bcd60e51b815260206004820152601d60248201527f436f6f6c646f776e20456e61626c65642e205761697420706c6561736500000060448201526064016109fd565b6001600160a01b03821660009081526012602052604090204290555b6007546001600160a01b038481169116146118335760145460ff1615806117cb57506013546001600160a01b03841660009081526012602052604090205442916117c89161246d565b11155b6118175760405162461bcd60e51b815260206004820152601d60248201527f436f6f6c646f776e20456e61626c65642e205761697420706c6561736500000060448201526064016109fd565b6001600160a01b03831660009081526012602052604090204290555b600754600090600160a01b900460ff168061186657506001600160a01b03841660009081526009602052604090205460ff165b8061188957506001600160a01b03831660009081526009602052604090205460ff165b806118bb57506007546001600160a01b038581169116148015906118bb57506007546001600160a01b03848116911614155b156118c8575060006118e5565b6064601854836118d891906124a2565b6118e291906124f0565b90505b600754600160a81b900460ff1680156119085750600754600160a01b900460ff16155b801561192257506007546001600160a01b03858116911614155b801561192e5750600081115b1561193b5761193b611b87565b6007546001600160a01b0385811691161480156119615750600754600160b81b900460ff165b156119f157600c8054906000611976836124d7565b9190505550600b54600c54036119f1576000600c55600a54156119f157600a546119aa906001600160a01b03851690611a6e565b600a54604080516001600160a01b038616815260208101929092527ff8265ef397392d4fed7d3ea625ae5af47b0aef752d323bb2acd4bcaed42b2000910160405180910390a15b611a058484611a008486612456565b611cf3565b8015611a1657611a16843083611cf3565b50505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b80471015611abe5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016109fd565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611b0b576040519150601f19603f3d011682016040523d82523d6000602084013e611b10565b606091505b5050905080610c6e5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016109fd565b600754600160a01b900460ff16610d5c576007805460ff60a01b1916600160a01b179055306000908152602081905260408120549050600d548110611ce35760006018546002611bd791906124a2565b9050600081601560010154600d54611bef91906124a2565b611bf991906124f0565b9050600081600d54611c0b9190612456565b905047611c1782611ecb565b6000611c238247612456565b601654909150600090611c369087612456565b611c4090836124f0565b601654909150600090611c5390836124a2565b90508015611c6557611c658682612025565b601554600090611c768460026124a2565b611c8091906124a2565b90508015611c9e57601054611c9e906001600160a01b031682611a6e565b601754600090611caf8560026124a2565b611cb991906124a2565b90508015611cd95780600a6000828254611cd3919061246d565b90915550505b5050505050505050505b506007805460ff60a01b19169055565b6001600160a01b038316611d575760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016109fd565b6001600160a01b038216611db95760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016109fd565b6001600160a01b03831660009081526020819052604090205481811015611e315760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016109fd565b611e3b8282612456565b6001600160a01b038086166000908152602081905260408082209390935590851681529081208054849290611e7190849061246d565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611ebd91815260200190565b60405180910390a350505050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611f0057611f006124c1565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611f59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f7d9190612512565b81600181518110611f9057611f906124c1565b6001600160a01b039283166020918202929092010152600654611fb69130911684611331565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790611fef90859060009086903090429060040161252f565b600060405180830381600087803b15801561200957600080fd5b505af115801561201d573d6000803e3d6000fd5b505050505050565b60065461203d9030906001600160a01b031684611331565b60065460115460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af11580156120ad573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906120d291906125a0565b5050505050565b600060208083528351808285015260005b81811015612106578581018301518582016040015282016120ea565b81811115612118576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114610f2357600080fd5b803561214e8161212e565b919050565b6000806040838503121561216657600080fd5b82356121718161212e565b946020939093013593505050565b8015158114610f2357600080fd5b803561214e8161217f565b600080604083850312156121ab57600080fd5b82356121b68161212e565b915060208301356121c68161217f565b809150509250929050565b6000806000606084860312156121e657600080fd5b83356121f18161212e565b925060208401356122018161212e565b929592945050506040919091013590565b6000806040838503121561222557600080fd5b82356121718161217f565b6000806040838503121561224357600080fd5b823561224e8161212e565b915060208301356121c68161212e565b60006020828403121561227057600080fd5b5035919050565b60006020828403121561228957600080fd5b81356122948161212e565b9392505050565b634e487b7160e01b600052604160045260246000fd5b600080604083850312156122c457600080fd5b823567ffffffffffffffff808211156122dc57600080fd5b818501915085601f8301126122f057600080fd5b81356020828211156123045761230461229b565b8160051b604051601f19603f830116810181811086821117156123295761232961229b565b60405292835281830193508481018201928984111561234757600080fd5b948201945b8386101561236c5761235d86612143565b8552948201949382019361234c565b965061237b905087820161218d565b9450505050509250929050565b60006020828403121561239a57600080fd5b81356122948161217f565b6000806000606084860312156123ba57600080fd5b505081359360208301359350604090920135919050565b600181811c908216806123e557607f821691505b60208210810361240557634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008282101561246857612468612440565b500390565b6000821982111561248057612480612440565b500190565b60006020828403121561249757600080fd5b81516122948161217f565b60008160001904831182151516156124bc576124bc612440565b500290565b634e487b7160e01b600052603260045260246000fd5b6000600182016124e9576124e9612440565b5060010190565b60008261250d57634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561252457600080fd5b81516122948161212e565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561257f5784516001600160a01b03168352938301939183019160010161255a565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156125b557600080fd5b835192506020840151915060408401519050925092509256fea264697066735822122071c1451444800c086a06820513d98d7b808991a7f48638250fd4e6637b62848d64736f6c634300080e0033

Deployed Bytecode Sourcemap

13053:8742:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13548:46;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;13548:46:0;;;;;;;;2259:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;4426:169::-;;;;;;;;;;-1:-1:-1;4426:169:0;;;;;:::i;:::-;;:::i;:::-;;;1558:14:1;;1551:22;1533:41;;1521:2;1506:18;4426:169:0;1393:187:1;20010:118:0;;;;;;;;;;-1:-1:-1;20010:118:0;;;;;:::i;:::-;;:::i;:::-;;3379:108;;;;;;;;;;-1:-1:-1;3467:12:0;;3379:108;;5077:422;;;;;;;;;;-1:-1:-1;5077:422:0;;;;;:::i;:::-;;:::i;3221:93::-;;;;;;;;;;-1:-1:-1;3221:93:0;;3304:2;2831:36:1;;2819:2;2804:18;3221:93:0;2689:184:1;20410:155:0;;;;;;;;;;-1:-1:-1;20410:155:0;;;;;:::i;:::-;;:::i;5908:215::-;;;;;;;;;;-1:-1:-1;5908:215:0;;;;;:::i;:::-;;:::i;13469:36::-;;;;;;;;;;;;;;;;20817:139;;;;;;;;;;-1:-1:-1;20817:139:0;;;;;:::i;:::-;;:::i;13799:71::-;;;;;;;;;;-1:-1:-1;13799:71:0;;;;-1:-1:-1;;;;;13799:71:0;;;;;;-1:-1:-1;;;;;3764:32:1;;;3746:51;;3734:2;3719:18;13799:71:0;3600:203:1;13257:26:0;;;;;;;;;;-1:-1:-1;13257:26:0;;;;-1:-1:-1;;;13257:26:0;;;;;;21468:143;;;;;;;;;;-1:-1:-1;21468:143:0;;;;;:::i;:::-;;:::i;21300:160::-;;;;;;;;;;-1:-1:-1;21300:160:0;;;;;:::i;:::-;;:::i;19265:107::-;;;;;;;;;;-1:-1:-1;19265:107:0;;;;;:::i;:::-;;:::i;13227:23::-;;;;;;;;;;-1:-1:-1;13227:23:0;;;;-1:-1:-1;;;13227:23:0;;;;;;3550:127;;;;;;;;;;-1:-1:-1;3550:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;3651:18:0;3624:7;3651:18;;;;;;;;;;;;3550:127;11830:94;;;;;;;;;;;;;:::i;14149:33::-;;;;;;;;;;-1:-1:-1;14149:33:0;;;;;;;;;;;;;;;;4447:25:1;;;4503:2;4488:18;;4481:34;;;;4531:18;;;4524:34;4435:2;4420:18;14149:33:0;4245:319:1;13717:75:0;;;;;;;;;;-1:-1:-1;13717:75:0;;;;-1:-1:-1;;;;;13717:75:0;;;19796:206;;;;;;;;;;-1:-1:-1;19796:206:0;;;;;:::i;:::-;;:::i;13512:27::-;;;;;;;;;;;;;;;;13904:50;;;;;;;;;;-1:-1:-1;13904:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;19507:173;;;;;;;;;;;;;:::i;13658:46::-;;;;;;;;;;;;;;;;11607:87;;;;;;;;;;-1:-1:-1;11680:6:0;;-1:-1:-1;;;;;11680:6:0;11607:87;;2478:104;;;;;;;;;;;;;:::i;19380:119::-;;;;;;;;;;-1:-1:-1;19380:119:0;;;;;:::i;:::-;;:::i;13290:26::-;;;;;;;;;;-1:-1:-1;13290:26:0;;;;-1:-1:-1;;;13290:26:0;;;;;;21619:112;;;;;;;;;;-1:-1:-1;21619:112:0;;;;;:::i;:::-;;:::i;6626:377::-;;;;;;;;;;-1:-1:-1;6626:377:0;;;;;:::i;:::-;;:::i;13167:19::-;;;;;;;;;;-1:-1:-1;13167:19:0;;;;-1:-1:-1;;;;;13167:19:0;;;3890:175;;;;;;;;;;-1:-1:-1;3890:175:0;;;;;:::i;:::-;;:::i;13601:50::-;;;;;;;;;;;;;;;;20577:114;;;;;;;;;;-1:-1:-1;20577:114:0;;;;;:::i;:::-;;:::i;21120:172::-;;;;;;;;;;-1:-1:-1;21120:172:0;;;;;:::i;:::-;;:::i;19688:100::-;;;;;;;;;;-1:-1:-1;19688:100:0;;;;;:::i;:::-;;:::i;20703:106::-;;;;;;;;;;-1:-1:-1;20703:106:0;;;;;:::i;:::-;;:::i;13435:27::-;;;;;;;;;;;;;;;;13377:49;;;;;;;;;;-1:-1:-1;13377:49:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;4128:151;;;;;;;;;;-1:-1:-1;4128:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;4244:18:0;;;4217:7;4244:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;4128:151;19164:93;;;;;;;;;;-1:-1:-1;19164:93:0;;;;;:::i;:::-;;:::i;20968:134::-;;;;;;;;;;-1:-1:-1;20968:134:0;;;;;:::i;:::-;;:::i;20136:266::-;;;;;;;;;;-1:-1:-1;20136:266:0;;;;;:::i;:::-;;:::i;11932:192::-;;;;;;;;;;-1:-1:-1;11932:192:0;;;;;:::i;:::-;;:::i;13139:21::-;;;;;;;;;;-1:-1:-1;13139:21:0;;;;-1:-1:-1;;;;;13139:21:0;;;13325:45;;;;;;;;;;-1:-1:-1;13325:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;14189:27;;;;;;;;;;;;;;;;2259:100;2313:13;2346:5;2339:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2259:100;:::o;4426:169::-;4509:4;4526:39;174:10;4549:7;4558:6;4526:8;:39::i;:::-;-1:-1:-1;4583:4:0;4426:169;;;;:::o;20010:118::-;11680:6;;-1:-1:-1;;;;;11680:6:0;174:10;11742:23;11734:68;;;;-1:-1:-1;;;11734:68:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;20090:22:0;;;::::1;;::::0;;;:13:::1;:22;::::0;;;;:30;;-1:-1:-1;;20090:30:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20010:118::o;5077:422::-;5183:4;5200:36;5210:6;5218:9;5229:6;5200:9;:36::i;:::-;-1:-1:-1;;;;;5276:19:0;;5249:24;5276:19;;;:11;:19;;;;;;;;174:10;5276:33;;;;;;;;5328:26;;;;5320:79;;;;-1:-1:-1;;;5320:79:0;;8028:2:1;5320:79:0;;;8010:21:1;8067:2;8047:18;;;8040:30;8106:34;8086:18;;;8079:62;-1:-1:-1;;;8157:18:1;;;8150:38;8205:19;;5320:79:0;7826:404:1;5320:79:0;5410:57;5419:6;174:10;5441:25;5460:6;5441:16;:25;:::i;:::-;5410:8;:57::i;:::-;-1:-1:-1;5487:4:0;;5077:422;-1:-1:-1;;;;5077:422:0:o;20410:155::-;11680:6;;-1:-1:-1;;;;;11680:6:0;174:10;11742:23;11734:68;;;;-1:-1:-1;;;11734:68:0;;;;;;;:::i;:::-;20499:15:::1;:26:::0;;-1:-1:-1;;20499:26:0::1;::::0;::::1;;::::0;;;::::1;::::0;;;20536:12:::1;:21:::0;20410:155::o;5908:215::-;174:10;5996:4;6045:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;6045:34:0;;;;;;;;;;5996:4;;6013:80;;6036:7;;6045:47;;6082:10;;6045:47;:::i;20817:139::-;11680:6;;-1:-1:-1;;;;;11680:6:0;174:10;11742:23;11734:68;;;;-1:-1:-1;;;11734:68:0;;;;;;;:::i;:::-;20909:6:::1;:16:::0;;-1:-1:-1;;;;;20909:16:0;;::::1;-1:-1:-1::0;;;;;;20909:16:0;;::::1;;::::0;;;20936:4:::1;:12:::0;;;;;::::1;::::0;::::1;;::::0;;20817:139::o;21468:143::-;11680:6;;-1:-1:-1;;;;;11680:6:0;174:10;11742:23;11734:68;;;;-1:-1:-1;;;11734:68:0;;;;;;;:::i;:::-;21564:12:::1;-1:-1:-1::0;;;;;21557:29:0::1;;21587:7;11680:6:::0;;-1:-1:-1;;;;;11680:6:0;;11607:87;21587:7:::1;21557:46;::::0;-1:-1:-1;;;;;;21557:46:0::1;::::0;;;;;;-1:-1:-1;;;;;8822:32:1;;;21557:46:0::1;::::0;::::1;8804:51:1::0;8871:18;;;8864:34;;;8777:18;;21557:46:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21468:143:::0;;:::o;21300:160::-;11680:6;;-1:-1:-1;;;;;11680:6:0;174:10;11742:23;11734:68;;;;-1:-1:-1;;;11734:68:0;;;;;;;:::i;:::-;21389:1:::1;21380:6;:10;21372:40;;;::::0;-1:-1:-1;;;21372:40:0;;9361:2:1;21372:40:0::1;::::0;::::1;9343:21:1::0;9400:2;9380:18;;;9373:30;-1:-1:-1;;;9419:18:1;;;9412:47;9476:18;;21372:40:0::1;9159:341:1::0;21372:40:0::1;21437:15;:6:::0;21446::::1;21437:15;:::i;:::-;21423:11;:29:::0;-1:-1:-1;21300:160:0:o;19265:107::-;11680:6;;-1:-1:-1;;;;;11680:6:0;174:10;11742:23;11734:68;;;;-1:-1:-1;;;11734:68:0;;;;;;;:::i;:::-;19339:16:::1;:25:::0;19265:107::o;11830:94::-;11680:6;;-1:-1:-1;;;;;11680:6:0;174:10;11742:23;11734:68;;;;-1:-1:-1;;;11734:68:0;;;;;;;:::i;:::-;11895:21:::1;11913:1;11895:9;:21::i;:::-;11830:94::o:0;19796:206::-;11680:6;;-1:-1:-1;;;;;11680:6:0;174:10;11742:23;11734:68;;;;-1:-1:-1;;;11734:68:0;;;;;;;:::i;:::-;19894:9:::1;19890:105;19913:8;:15;19909:1;:19;19890:105;;;19978:5;19949:13;:26;19963:8;19972:1;19963:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;19949:26:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;19949:26:0;:34;;-1:-1:-1;;19949:34:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19930:3;::::1;::::0;::::1;:::i;:::-;;;;19890:105;;19507:173:::0;11680:6;;-1:-1:-1;;;;;11680:6:0;174:10;11742:23;11734:68;;;;-1:-1:-1;;;11734:68:0;;;;;;;:::i;:::-;19570:14:::1;::::0;-1:-1:-1;;;19570:14:0;::::1;;;19569:15;19561:50;;;::::0;-1:-1:-1;;;19561:50:0;;10152:2:1;19561:50:0::1;::::0;::::1;10134:21:1::0;10191:2;10171:18;;;10164:30;-1:-1:-1;;;10210:18:1;;;10203:52;10272:18;;19561:50:0::1;9950:346:1::0;19561:50:0::1;19622:14;:21:::0;;-1:-1:-1;;;;19654:18:0;-1:-1:-1;;;19654:18:0;;;19507:173::o;2478:104::-;2534:13;2567:7;2560:14;;;;;:::i;19380:119::-;11680:6;;-1:-1:-1;;;;;11680:6:0;174:10;11742:23;11734:68;;;;-1:-1:-1;;;11734:68:0;;;;;;;:::i;:::-;19472:19:::1;:10:::0;19485:6:::1;19472:19;:::i;:::-;19456:13;:35:::0;-1:-1:-1;19380:119:0:o;21619:112::-;11680:6;;-1:-1:-1;;;;;11680:6:0;174:10;11742:23;11734:68;;;;-1:-1:-1;;;11734:68:0;;;;;;;:::i;:::-;21686:37:::1;21713:9;21694:7;11680:6:::0;;-1:-1:-1;;;;;11680:6:0;;11607:87;21694:7:::1;-1:-1:-1::0;;;;;21686:26:0::1;::::0;::::1;:37::i;:::-;21619:112:::0;:::o;6626:377::-;174:10;6719:4;6763:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;6763:34:0;;;;;;;;;;6816:35;;;;6808:85;;;;-1:-1:-1;;;6808:85:0;;10503:2:1;6808:85:0;;;10485:21:1;10542:2;10522:18;;;10515:30;10581:34;10561:18;;;10554:62;-1:-1:-1;;;10632:18:1;;;10625:35;10677:19;;6808:85:0;10301:401:1;6808:85:0;6904:67;174:10;6927:7;6936:34;6955:15;6936:16;:34;:::i;6904:67::-;-1:-1:-1;6991:4:0;;6626:377;-1:-1:-1;;;6626:377:0:o;3890:175::-;3976:4;3993:42;174:10;4017:9;4028:6;3993:9;:42::i;20577:114::-;11680:6;;-1:-1:-1;;;;;11680:6:0;174:10;11742:23;11734:68;;;;-1:-1:-1;;;11734:68:0;;;;;;;:::i;:::-;20656:15:::1;:27:::0;;-1:-1:-1;;;;;;20656:27:0::1;-1:-1:-1::0;;;;;20656:27:0;;;::::1;::::0;;;::::1;::::0;;20577:114::o;21120:172::-;11680:6;;-1:-1:-1;;;;;11680:6:0;174:10;11742:23;11734:68;;;;-1:-1:-1;;;11734:68:0;;;;;;;:::i;:::-;21213:1:::1;21204:6;:10;21196:44;;;::::0;-1:-1:-1;;;21196:44:0;;10909:2:1;21196:44:0::1;::::0;::::1;10891:21:1::0;10948:2;10928:18;;;10921:30;-1:-1:-1;;;10967:18:1;;;10960:51;11028:18;;21196:44:0::1;10707:345:1::0;21196:44:0::1;21269:15;:6:::0;21278::::1;21269:15;:::i;:::-;21251;:33:::0;-1:-1:-1;21120:172:0:o;19688:100::-;11680:6;;-1:-1:-1;;;;;11680:6:0;174:10;11742:23;11734:68;;;;-1:-1:-1;;;11734:68:0;;;;;;;:::i;:::-;19757:14:::1;:23:::0;;;::::1;;-1:-1:-1::0;;;19757:23:0::1;-1:-1:-1::0;;;;19757:23:0;;::::1;::::0;;;::::1;::::0;;19688:100::o;20703:106::-;11680:6;;-1:-1:-1;;;;;11680:6:0;174:10;11742:23;11734:68;;;;-1:-1:-1;;;11734:68:0;;;;;;;:::i;:::-;20778:11:::1;:23:::0;;-1:-1:-1;;;;;;20778:23:0::1;-1:-1:-1::0;;;;;20778:23:0;;;::::1;::::0;;;::::1;::::0;;20703:106::o;19164:93::-;11680:6;;-1:-1:-1;;;;;11680:6:0;174:10;11742:23;11734:68;;;;-1:-1:-1;;;11734:68:0;;;;;;;:::i;:::-;19230:11:::1;:19:::0;;;::::1;;-1:-1:-1::0;;;19230:19:0::1;-1:-1:-1::0;;;;19230:19:0;;::::1;::::0;;;::::1;::::0;;19164:93::o;20968:134::-;11680:6;;-1:-1:-1;;;;;11680:6:0;174:10;11742:23;11734:68;;;;-1:-1:-1;;;11734:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21060:26:0;;;::::1;;::::0;;;:16:::1;:26;::::0;;;;:34;;-1:-1:-1;;21060:34:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20968:134::o;20136:266::-;11680:6;;-1:-1:-1;;;;;11680:6:0;174:10;11742:23;11734:68;;;;-1:-1:-1;;;11734:68:0;;;;;;;:::i;:::-;20273:2:::1;20266:3:::0;20242:21:::1;20253:10:::0;20242:8;:21:::1;:::i;:::-;:27;;;;:::i;:::-;:33;;20234:60;;;::::0;-1:-1:-1;;;20234:60:0;;11259:2:1;20234:60:0::1;::::0;::::1;11241:21:1::0;11298:2;11278:18;;;11271:30;-1:-1:-1;;;11317:18:1;;;11310:44;11371:18;;20234:60:0::1;11057:338:1::0;20234:60:0::1;20313:32;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;20305:5:::1;:40:::0;;;;;;;;;;;20331:3;20367:21:::1;20319:10:::0;20336:8;20367:21:::1;:::i;:::-;:27;;;;:::i;:::-;20356:8;:38:::0;-1:-1:-1;;;20136:266:0:o;11932:192::-;11680:6;;-1:-1:-1;;;;;11680:6:0;174:10;11742:23;11734:68;;;;-1:-1:-1;;;11734:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12021:22:0;::::1;12013:73;;;::::0;-1:-1:-1;;;12013:73:0;;11602:2:1;12013:73:0::1;::::0;::::1;11584:21:1::0;11641:2;11621:18;;;11614:30;11680:34;11660:18;;;11653:62;-1:-1:-1;;;11731:18:1;;;11724:36;11777:19;;12013:73:0::1;11400:402:1::0;12013:73:0::1;12097:19;12107:8;12097:9;:19::i;9982:346::-:0;-1:-1:-1;;;;;10084:19:0;;10076:68;;;;-1:-1:-1;;;10076:68:0;;12009:2:1;10076:68:0;;;11991:21:1;12048:2;12028:18;;;12021:30;12087:34;12067:18;;;12060:62;-1:-1:-1;;;12138:18:1;;;12131:34;12182:19;;10076:68:0;11807:400:1;10076:68:0;-1:-1:-1;;;;;10163:21:0;;10155:68;;;;-1:-1:-1;;;10155:68:0;;12414:2:1;10155:68:0;;;12396:21:1;12453:2;12433:18;;;12426:30;12492:34;12472:18;;;12465:62;-1:-1:-1;;;12543:18:1;;;12536:32;12585:19;;10155:68:0;12212:398:1;10155:68:0;-1:-1:-1;;;;;10236:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10288:32;;160:25:1;;;10288:32:0;;133:18:1;10288:32:0;;;;;;;9982:346;;;:::o;14994:2177::-;15110:1;15101:6;:10;15093:64;;;;-1:-1:-1;;;15093:64:0;;12817:2:1;15093:64:0;;;12799:21:1;12856:2;12836:18;;;12829:30;12895:34;12875:18;;;12868:62;-1:-1:-1;;;12946:18:1;;;12939:39;12995:19;;15093:64:0;12615:405:1;15093:64:0;-1:-1:-1;;;;;15177:21:0;;;;;;:13;:21;;;;;;;;15176:22;:51;;;;-1:-1:-1;;;;;;15203:24:0;;;;;;:13;:24;;;;;;;;15202:25;15176:51;15168:86;;;;-1:-1:-1;;;15168:86:0;;13227:2:1;15168:86:0;;;13209:21:1;13266:2;13246:18;;;13239:30;-1:-1:-1;;;13285:18:1;;;13278:52;13347:18;;15168:86:0;13025:346:1;15168:86:0;-1:-1:-1;;;;;15287:24:0;;;;;;:16;:24;;;;;;;;15286:25;:57;;;;-1:-1:-1;;;;;;15316:27:0;;;;;;:16;:27;;;;;;;;15315:28;15286:57;:70;;;;-1:-1:-1;15348:8:0;;-1:-1:-1;;;15348:8:0;;;;15347:9;15286:70;15283:843;;;15380:14;;-1:-1:-1;;;15380:14:0;;;;15372:50;;;;-1:-1:-1;;;15372:50:0;;13578:2:1;15372:50:0;;;13560:21:1;13617:2;13597:18;;;13590:30;13656:25;13636:18;;;13629:53;13699:18;;15372:50:0;13376:347:1;15372:50:0;15455:11;;15445:6;:21;;15437:63;;;;-1:-1:-1;;;15437:63:0;;13930:2:1;15437:63:0;;;13912:21:1;13969:2;13949:18;;;13942:30;14008:31;13988:18;;;13981:59;14057:18;;15437:63:0;13728:353:1;15437:63:0;15531:4;;-1:-1:-1;;;;;15518:17:0;;;15531:4;;15518:17;15515:354;;15596:15;;15586:6;15563:20;15573:9;-1:-1:-1;;;;;3651:18:0;3624:7;3651:18;;;;;;;;;;;;3550:127;15563:20;:29;;;;:::i;:::-;:48;;15555:94;;;;-1:-1:-1;;;15555:94:0;;14288:2:1;15555:94:0;;;14270:21:1;14327:2;14307:18;;;14300:30;14366:34;14346:18;;;14339:62;-1:-1:-1;;;14417:18:1;;;14410:31;14458:19;;15555:94:0;14086:397:1;15555:94:0;15677:15;;;;15676:16;;:80;;-1:-1:-1;15725:12:0;;-1:-1:-1;;;;;15696:26:0;;;;;;:15;:26;;;;;;15741:15;;15696:41;;;:::i;:::-;:60;;15676:80;15668:122;;;;-1:-1:-1;;;15668:122:0;;14690:2:1;15668:122:0;;;14672:21:1;14729:2;14709:18;;;14702:30;14768:31;14748:18;;;14741:59;14817:18;;15668:122:0;14488:353:1;15668:122:0;-1:-1:-1;;;;;15809:26:0;;;;;;:15;:26;;;;;15838:15;15809:44;;15515:354;15896:4;;-1:-1:-1;;;;;15886:14:0;;;15896:4;;15886:14;15883:232;;15929:15;;;;15928:16;;:77;;-1:-1:-1;15974:12:0;;-1:-1:-1;;;;;15948:23:0;;;;;;:15;:23;;;;;;15990:15;;15948:38;;;:::i;:::-;:57;;15928:77;15920:119;;;;-1:-1:-1;;;15920:119:0;;14690:2:1;15920:119:0;;;14672:21:1;14729:2;14709:18;;;14702:30;14768:31;14748:18;;;14741:59;14817:18;;15920:119:0;14488:353:1;15920:119:0;-1:-1:-1;;;;;16058:23:0;;;;;;:15;:23;;;;;16084:15;16058:41;;15883:232;16245:8;;16138:11;;-1:-1:-1;;;16245:8:0;;;;;:36;;-1:-1:-1;;;;;;16257:24:0;;;;;;:16;:24;;;;;;;;16245:36;:67;;;-1:-1:-1;;;;;;16285:27:0;;;;;;:16;:27;;;;;;;;16245:67;:108;;;-1:-1:-1;16327:4:0;;-1:-1:-1;;;;;16317:14:0;;;16327:4;;16317:14;;;;:35;;-1:-1:-1;16348:4:0;;-1:-1:-1;;;;;16335:17:0;;;16348:4;;16335:17;;16317:35;16241:201;;;-1:-1:-1;16361:1:0;16241:201;;;16439:3;16428:8;;16419:6;:17;;;;:::i;:::-;:23;;;;:::i;:::-;16413:29;;16241:201;16566:11;;-1:-1:-1;;;16566:11:0;;;;:24;;;;-1:-1:-1;16582:8:0;;-1:-1:-1;;;16582:8:0;;;;16581:9;16566:24;:42;;;;-1:-1:-1;16604:4:0;;-1:-1:-1;;;;;16594:14:0;;;16604:4;;16594:14;;16566:42;:53;;;;;16618:1;16612:3;:7;16566:53;16562:72;;;16621:13;:11;:13::i;:::-;16660:4;;-1:-1:-1;;;;;16650:14:0;;;16660:4;;16650:14;:32;;;;-1:-1:-1;16668:14:0;;-1:-1:-1;;;16668:14:0;;;;16650:32;16647:388;;;16699:12;:14;;;:12;:14;;;:::i;:::-;;;;;;16747:16;;16731:12;;:32;16728:296;;16799:1;16784:12;:16;16842:12;;:16;16839:170;;16912:12;;16883:42;;-1:-1:-1;;;;;16883:28:0;;;;:42::i;:::-;16976:12;;16953:36;;;-1:-1:-1;;;;;8822:32:1;;8804:51;;8886:2;8871:18;;8864:34;;;;16953:36:0;;8777:18:1;16953:36:0;;;;;;;16839:170;17047:48;17063:6;17071:9;17082:12;17091:3;17082:6;:12;:::i;:::-;17047:15;:48::i;:::-;17109:7;;17106:55;;17118:43;17134:6;17150:4;17157:3;17118:15;:43::i;:::-;15082:2089;14994:2177;;;:::o;12132:173::-;12207:6;;;-1:-1:-1;;;;;12224:17:0;;;-1:-1:-1;;;;;;12224:17:0;;;;;;;12257:40;;12207:6;;;12224:17;12207:6;;12257:40;;12188:16;;12257:40;12177:128;12132:173;:::o;11052:317::-;11167:6;11142:21;:31;;11134:73;;;;-1:-1:-1;;;11134:73:0;;15270:2:1;11134:73:0;;;15252:21:1;15309:2;15289:18;;;15282:30;15348:31;15328:18;;;15321:59;15397:18;;11134:73:0;15068:353:1;11134:73:0;11221:12;11239:9;-1:-1:-1;;;;;11239:14:0;11261:6;11239:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11220:52;;;11291:7;11283:78;;;;-1:-1:-1;;;11283:78:0;;15838:2:1;11283:78:0;;;15820:21:1;15877:2;15857:18;;;15850:30;15916:34;15896:18;;;15889:62;15987:28;15967:18;;;15960:56;16033:19;;11283:78:0;15636:422:1;17179:1206:0;14263:8;;-1:-1:-1;;;14263:8:0;;;;14258:104;;14288:8;:15;;-1:-1:-1;;;;14288:15:0;-1:-1:-1;;;14288:15:0;;;17272:4:::1;-1:-1:-1::0;3651:18:0;;;;;;;;;;;17228:50:::1;;17312:13;;17293:15;:32;17289:1089;;17344:19;17366:8;;17377:1;17366:12;;;;:::i;:::-;17344:34;;17393:32;17455:11;17444:5;:8;;;17428:13;;:24;;;;:::i;:::-;:38;;;;:::i;:::-;17393:73;;17481:14;17514:24;17498:13;;:40;;;;:::i;:::-;17481:57:::0;-1:-1:-1;17580:21:0::1;17618:24;17481:57:::0;17618:16:::1;:24::i;:::-;17659:20;17682:38;17706:14:::0;17682:21:::1;:38;:::i;:::-;17787:8:::0;;17659:61;;-1:-1:-1;17735:19:0::1;::::0;17773:22:::1;::::0;:11;:22:::1;:::i;:::-;17757:39;::::0;:12;:39:::1;:::i;:::-;17857:8:::0;;17735:61;;-1:-1:-1;17811:29:0::1;::::0;17843:22:::1;::::0;17735:61;17843:22:::1;:::i;:::-;17811:54:::0;-1:-1:-1;17886:25:0;;17882:129:::1;;17934:61;17947:24;17973:21;17934:12;:61::i;:::-;18068:5;:15:::0;18027:20:::1;::::0;18050:15:::1;:11:::0;18064:1:::1;18050:15;:::i;:::-;:33;;;;:::i;:::-;18027:56:::0;-1:-1:-1;18102:16:0;;18098:105:::1;;18147:15;::::0;18139:48:::1;::::0;-1:-1:-1;;;;;18147:15:0::1;18174:12:::0;18139:34:::1;:48::i;:::-;18258:13:::0;;18219:18:::1;::::0;18240:15:::1;:11:::0;18258:13:::1;18240:15;:::i;:::-;:31;;;;:::i;:::-;18219:52:::0;-1:-1:-1;18290:14:0;;18286:81:::1;;18341:10;18325:12;;:26;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;18286:81:0::1;17327:1051;;;;;;;;;17289:1089;-1:-1:-1::0;14334:8:0;:16;;-1:-1:-1;;;;14334:16:0;;;17179:1206::o;7493:604::-;-1:-1:-1;;;;;7599:20:0;;7591:70;;;;-1:-1:-1;;;7591:70:0;;16265:2:1;7591:70:0;;;16247:21:1;16304:2;16284:18;;;16277:30;16343:34;16323:18;;;16316:62;-1:-1:-1;;;16394:18:1;;;16387:35;16439:19;;7591:70:0;16063:401:1;7591:70:0;-1:-1:-1;;;;;7680:23:0;;7672:71;;;;-1:-1:-1;;;7672:71:0;;16671:2:1;7672:71:0;;;16653:21:1;16710:2;16690:18;;;16683:30;16749:34;16729:18;;;16722:62;-1:-1:-1;;;16800:18:1;;;16793:33;16843:19;;7672:71:0;16469:399:1;7672:71:0;-1:-1:-1;;;;;7840:17:0;;7816:21;7840:17;;;;;;;;;;;7876:23;;;;7868:74;;;;-1:-1:-1;;;7868:74:0;;17075:2:1;7868:74:0;;;17057:21:1;17114:2;17094:18;;;17087:30;17153:34;17133:18;;;17126:62;-1:-1:-1;;;17204:18:1;;;17197:36;17250:19;;7868:74:0;16873:402:1;7868:74:0;7973:22;7989:6;7973:13;:22;:::i;:::-;-1:-1:-1;;;;;7953:17:0;;;:9;:17;;;;;;;;;;;:42;;;;8006:20;;;;;;;;:30;;8030:6;;7953:9;8006:30;;8030:6;;8006:30;:::i;:::-;;;;;;;;8071:9;-1:-1:-1;;;;;8054:35:0;8063:6;-1:-1:-1;;;;;8054:35:0;;8082:6;8054:35;;;;160:25:1;;148:2;133:18;;14:177;8054:35:0;;;;;;;;7580:517;7493:604;;;:::o;18756:400::-;18846:16;;;18860:1;18846:16;;;;;;;;18822:21;;18846:16;;;;;;;;;;-1:-1:-1;18846:16:0;18822:40;;18891:4;18873;18878:1;18873:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;18873:23:0;;;:7;;;;;;;;;;:23;;;;18917:6;;:13;;;-1:-1:-1;;;18917:13:0;;;;:6;;;;;:11;;:13;;;;;18873:7;;18917:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18907:4;18912:1;18907:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;18907:23:0;;;:7;;;;;;;;;:23;18975:6;;18943:53;;18960:4;;18975:6;18984:11;18943:8;:53::i;:::-;19035:6;;:111;;-1:-1:-1;;;19035:111:0;;-1:-1:-1;;;;;19035:6:0;;;;:57;;:111;;19093:11;;19035:6;;19109:4;;19123;;19130:15;;19035:111;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18811:345;18756:400;:::o;18393:353::-;18508:6;;18476:53;;18493:4;;-1:-1:-1;;;;;18508:6:0;18517:11;18476:8;:53::i;:::-;18544:6;;18686:11;;18544:194;;-1:-1:-1;;;18544:194:0;;18608:4;18544:194;;;18862:34:1;18912:18;;;18905:34;;;18544:6:0;18955:18:1;;;18948:34;;;18998:18;;;18991:34;-1:-1:-1;;;;;18686:11:0;;;19041:19:1;;;19034:44;18712:15:0;19094:19:1;;;19087:35;18544:6:0;;;:22;;18575:9;;18796:19:1;;18544:194:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;18393:353;;:::o;196:597:1:-;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;;;634:6;631:1;628:13;625:91;;;704:1;699:2;690:6;679:9;675:22;671:31;664:42;625:91;-1:-1:-1;777:2:1;756:15;-1:-1:-1;;752:29:1;737:45;;;;784:2;733:54;;196:597;-1:-1:-1;;;196:597:1:o;798:131::-;-1:-1:-1;;;;;873:31:1;;863:42;;853:70;;919:1;916;909:12;934:134;1002:20;;1031:31;1002:20;1031:31;:::i;:::-;934:134;;;:::o;1073:315::-;1141:6;1149;1202:2;1190:9;1181:7;1177:23;1173:32;1170:52;;;1218:1;1215;1208:12;1170:52;1257:9;1244:23;1276:31;1301:5;1276:31;:::i;:::-;1326:5;1378:2;1363:18;;;;1350:32;;-1:-1:-1;;;1073:315:1:o;1585:118::-;1671:5;1664:13;1657:21;1650:5;1647:32;1637:60;;1693:1;1690;1683:12;1708:128;1773:20;;1802:28;1773:20;1802:28;:::i;1841:382::-;1906:6;1914;1967:2;1955:9;1946:7;1942:23;1938:32;1935:52;;;1983:1;1980;1973:12;1935:52;2022:9;2009:23;2041:31;2066:5;2041:31;:::i;:::-;2091:5;-1:-1:-1;2148:2:1;2133:18;;2120:32;2161:30;2120:32;2161:30;:::i;:::-;2210:7;2200:17;;;1841:382;;;;;:::o;2228:456::-;2305:6;2313;2321;2374:2;2362:9;2353:7;2349:23;2345:32;2342:52;;;2390:1;2387;2380:12;2342:52;2429:9;2416:23;2448:31;2473:5;2448:31;:::i;:::-;2498:5;-1:-1:-1;2555:2:1;2540:18;;2527:32;2568:33;2527:32;2568:33;:::i;:::-;2228:456;;2620:7;;-1:-1:-1;;;2674:2:1;2659:18;;;;2646:32;;2228:456::o;2878:309::-;2943:6;2951;3004:2;2992:9;2983:7;2979:23;2975:32;2972:52;;;3020:1;3017;3010:12;2972:52;3059:9;3046:23;3078:28;3100:5;3078:28;:::i;3192:403::-;3275:6;3283;3336:2;3324:9;3315:7;3311:23;3307:32;3304:52;;;3352:1;3349;3342:12;3304:52;3391:9;3378:23;3410:31;3435:5;3410:31;:::i;:::-;3460:5;-1:-1:-1;3517:2:1;3502:18;;3489:32;3530:33;3489:32;3530:33;:::i;3808:180::-;3867:6;3920:2;3908:9;3899:7;3895:23;3891:32;3888:52;;;3936:1;3933;3926:12;3888:52;-1:-1:-1;3959:23:1;;3808:180;-1:-1:-1;3808:180:1:o;3993:247::-;4052:6;4105:2;4093:9;4084:7;4080:23;4076:32;4073:52;;;4121:1;4118;4111:12;4073:52;4160:9;4147:23;4179:31;4204:5;4179:31;:::i;:::-;4229:5;3993:247;-1:-1:-1;;;3993:247:1:o;4569:127::-;4630:10;4625:3;4621:20;4618:1;4611:31;4661:4;4658:1;4651:15;4685:4;4682:1;4675:15;4701:1191;4791:6;4799;4852:2;4840:9;4831:7;4827:23;4823:32;4820:52;;;4868:1;4865;4858:12;4820:52;4908:9;4895:23;4937:18;4978:2;4970:6;4967:14;4964:34;;;4994:1;4991;4984:12;4964:34;5032:6;5021:9;5017:22;5007:32;;5077:7;5070:4;5066:2;5062:13;5058:27;5048:55;;5099:1;5096;5089:12;5048:55;5135:2;5122:16;5157:4;5180:2;5176;5173:10;5170:36;;;5186:18;;:::i;:::-;5232:2;5229:1;5225:10;5264:2;5258:9;5327:2;5323:7;5318:2;5314;5310:11;5306:25;5298:6;5294:38;5382:6;5370:10;5367:22;5362:2;5350:10;5347:18;5344:46;5341:72;;;5393:18;;:::i;:::-;5429:2;5422:22;5479:18;;;5513:15;;;;-1:-1:-1;5555:11:1;;;5551:20;;;5583:19;;;5580:39;;;5615:1;5612;5605:12;5580:39;5639:11;;;;5659:148;5675:6;5670:3;5667:15;5659:148;;;5741:23;5760:3;5741:23;:::i;:::-;5729:36;;5692:12;;;;5785;;;;5659:148;;;5826:6;-1:-1:-1;5851:35:1;;-1:-1:-1;5867:18:1;;;5851:35;:::i;:::-;5841:45;;;;;;4701:1191;;;;;:::o;5897:241::-;5953:6;6006:2;5994:9;5985:7;5981:23;5977:32;5974:52;;;6022:1;6019;6012:12;5974:52;6061:9;6048:23;6080:28;6102:5;6080:28;:::i;6536:316::-;6613:6;6621;6629;6682:2;6670:9;6661:7;6657:23;6653:32;6650:52;;;6698:1;6695;6688:12;6650:52;-1:-1:-1;;6721:23:1;;;6791:2;6776:18;;6763:32;;-1:-1:-1;6842:2:1;6827:18;;;6814:32;;6536:316;-1:-1:-1;6536:316:1:o;7080:380::-;7159:1;7155:12;;;;7202;;;7223:61;;7277:4;7269:6;7265:17;7255:27;;7223:61;7330:2;7322:6;7319:14;7299:18;7296:38;7293:161;;7376:10;7371:3;7367:20;7364:1;7357:31;7411:4;7408:1;7401:15;7439:4;7436:1;7429:15;7293:161;;7080:380;;;:::o;7465:356::-;7667:2;7649:21;;;7686:18;;;7679:30;7745:34;7740:2;7725:18;;7718:62;7812:2;7797:18;;7465:356::o;8235:127::-;8296:10;8291:3;8287:20;8284:1;8277:31;8327:4;8324:1;8317:15;8351:4;8348:1;8341:15;8367:125;8407:4;8435:1;8432;8429:8;8426:34;;;8440:18;;:::i;:::-;-1:-1:-1;8477:9:1;;8367:125::o;8497:128::-;8537:3;8568:1;8564:6;8561:1;8558:13;8555:39;;;8574:18;;:::i;:::-;-1:-1:-1;8610:9:1;;8497:128::o;8909:245::-;8976:6;9029:2;9017:9;9008:7;9004:23;9000:32;8997:52;;;9045:1;9042;9035:12;8997:52;9077:9;9071:16;9096:28;9118:5;9096:28;:::i;9505:168::-;9545:7;9611:1;9607;9603:6;9599:14;9596:1;9593:21;9588:1;9581:9;9574:17;9570:45;9567:71;;;9618:18;;:::i;:::-;-1:-1:-1;9658:9:1;;9505:168::o;9678:127::-;9739:10;9734:3;9730:20;9727:1;9720:31;9770:4;9767:1;9760:15;9794:4;9791:1;9784:15;9810:135;9849:3;9870:17;;;9867:43;;9890:18;;:::i;:::-;-1:-1:-1;9937:1:1;9926:13;;9810:135::o;14846:217::-;14886:1;14912;14902:132;;14956:10;14951:3;14947:20;14944:1;14937:31;14991:4;14988:1;14981:15;15019:4;15016:1;15009:15;14902:132;-1:-1:-1;15048:9:1;;14846:217::o;17280:251::-;17350:6;17403:2;17391:9;17382:7;17378:23;17374:32;17371:52;;;17419:1;17416;17409:12;17371:52;17451:9;17445:16;17470:31;17495:5;17470:31;:::i;17536:980::-;17798:4;17846:3;17835:9;17831:19;17877:6;17866:9;17859:25;17903:2;17941:6;17936:2;17925:9;17921:18;17914:34;17984:3;17979:2;17968:9;17964:18;17957:31;18008:6;18043;18037:13;18074:6;18066;18059:22;18112:3;18101:9;18097:19;18090:26;;18151:2;18143:6;18139:15;18125:29;;18172:1;18182:195;18196:6;18193:1;18190:13;18182:195;;;18261:13;;-1:-1:-1;;;;;18257:39:1;18245:52;;18352:15;;;;18317:12;;;;18293:1;18211:9;18182:195;;;-1:-1:-1;;;;;;;18433:32:1;;;;18428:2;18413:18;;18406:60;-1:-1:-1;;;18497:3:1;18482:19;18475:35;18394:3;17536:980;-1:-1:-1;;;17536:980:1:o;19133:306::-;19221:6;19229;19237;19290:2;19278:9;19269:7;19265:23;19261:32;19258:52;;;19306:1;19303;19296:12;19258:52;19335:9;19329:16;19319:26;;19385:2;19374:9;19370:18;19364:25;19354:35;;19429:2;19418:9;19414:18;19408:25;19398:35;;19133:306;;;;;:::o

Swarm Source

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