ETH Price: $3,173.27 (+2.82%)

Token

GPU-Block AI (GBAI)
 

Overview

Max Total Supply

100,000,000 GBAI

Holders

30

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
1,600,000 GBAI

Value
$0.00
0xdbd96dc9f1ef67c773a9bc44416a3aa1a8d08c3d
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
GPUBlockAI

Compiler Version
v0.8.25+commit.b61c2a91

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-03-27
*/

//SPDX-License-Identifier: MIT

/*
    Socials:
    Website: https://gpublock-ai.io/
    Twitter: https://twitter.com/gpublockai
    Telegram: https://t.me/gpublockai

    Medium: https://medium.com/@gpublockai
    Github: https://github.com/gpublockai
    Docs: https://docs.gpublock-ai.io/
    Whitepaper: https://gpublock-ai.io/GPU-Block_AI_Whitepaper.pdf

    Apps:
    Dapp: https://app.gpublock-ai.io/
    DEX: https://dex.gpublock-ai.io/
*/
pragma solidity 0.8.25;

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

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);
}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }

}

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 IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    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);
}

contract GPUBlockAI is Context, IERC20, Ownable {
    using SafeMath for uint256;
    string private constant _name = unicode"GPU-Block AI";
    string private constant _symbol = unicode"GBAI";
    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 100_000_000 * 10 ** _decimals;
    mapping (address => bool) private _excludedFromFee;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => uint256) private _balances;
    bool public isOpen;
    uint256 public _maxWallet = _tTotal * 2 / 100;
    uint256 private _swapTokensAtAmount = _tTotal / 700;
    uint256 private _maxTaxSwap = _tTotal / 50;
    bool private inSwap;
    IUniswapV2Router02 uniswapV2Router;
    uint256 public _buyFees = 20;
    uint256 public _sellFees = 30;

    address payable public _marketingWallet;
    address payable public liquidityReceiver;
    address payable public buybackWallet;
    address payable public revShareWallet;

    address public _uniswapV2Pair;
    bool private swapEnabled = true;

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () {
        _marketingWallet = payable(_msgSender());
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _excludedFromFee[address(uniswapV2Router)] = true;
        _uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        _excludedFromFee[address(this)] = true;
        _excludedFromFee[msg.sender] = true;
        _balances[msg.sender] = _tTotal;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

    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()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(address from, address to, uint256 amount) private {
        uint256 taxAmount=0;
        if (!_excludedFromFee[from] && !_excludedFromFee[to]) {
            require(isOpen ,"Trading has not been enabled yet!");

            taxAmount = amount * _buyFees / 100;

            if (to != _uniswapV2Pair) {
                require(balanceOf(to) + amount <= _maxWallet, "Over max wallet");
            }

            if(to == _uniswapV2Pair){
                taxAmount = amount * _sellFees  / 100;
                require(_swapTokensAtAmount < _tTotal);
            }

            if (from == _uniswapV2Pair) {
                require(balanceOf(to) + amount <= _maxWallet, "Over max wallet");
            }

            uint256 contractBalance = balanceOf(address(this));
            if (!inSwap && to == _uniswapV2Pair && swapEnabled && contractBalance>_swapTokensAtAmount) {
                swapTokensForEth(min(amount,min(contractBalance,_maxTaxSwap)));
            }
        }

        if(taxAmount > 0){
          _balances[address(this)] = _balances[address(this)].add(taxAmount);
          emit Transfer(from, address(this),taxAmount);
        }
        _balances[from] -= (amount);
        _balances[to] += amount - taxAmount;
        emit Transfer(from, to, amount - (taxAmount));
    }

    function min(uint256 a, uint256 b) private pure returns (uint256){
      return (a>b)?b:a;
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            _marketingWallet,
            block.timestamp
        );
    }

    function startTrading() external onlyOwner {
        isOpen = true;
    }

    function manualSwap() external onlyOwner {
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(min(contractBalance,_maxTaxSwap));
    }
    
    function updateMaxWallet(uint amount) external onlyOwner {
        require(amount >= _tTotal / 500, "Minimimum set 0.4% value");
        _maxWallet = amount;
    }

    function updateSwapEnabled(bool status) external onlyOwner {
        swapEnabled = status;
    }

    function updateSwapTokensAtAmount(uint amount) external onlyOwner {
        _swapTokensAtAmount = amount;
    }

    function updateFees(uint newBuyFee, uint newSellFee) external onlyOwner {
        _buyFees = newBuyFee;
        _sellFees  = newSellFee;
        require(newBuyFee <= 35);
        require(newSellFee <= 35);
    }

    function removeLimits() external onlyOwner {
        _buyFees=5;
        _sellFees=5;
        _maxWallet = _tTotal;
    }

    function excludeFromFees(address account, bool status) external onlyOwner {
        _excludedFromFee[account] = status;
    }

    function setWallets(address payable _marketing, address payable _liquidity, address payable _buyback, address payable _revShare) external onlyOwner {
        _marketingWallet = _marketing;
        liquidityReceiver = _liquidity;
        buybackWallet = _buyback;
        revShareWallet = _revShare;
    }

    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":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_buyFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buybackWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityReceiver","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","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":"revShareWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"_marketing","type":"address"},{"internalType":"address payable","name":"_liquidity","type":"address"},{"internalType":"address payable","name":"_buyback","type":"address"},{"internalType":"address payable","name":"_revShare","type":"address"}],"name":"setWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyFee","type":"uint256"},{"internalType":"uint256","name":"newSellFee","type":"uint256"}],"name":"updateFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"name":"updateSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260646100126009600a61047b565b610020906305f5e100610490565b61002b906002610490565b61003591906104a7565b6005556102bc6100476009600a61047b565b610055906305f5e100610490565b61005f91906104a7565b60065560326100706009600a61047b565b61007e906305f5e100610490565b61008891906104a7565b6007556014600955601e600a55600f805460ff60a01b1916600160a01b1790553480156100b3575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600b8054336001600160a01b031990911617905560088054610100600160a81b031916747a250d5630b4cf539739df2c5dacb4c659f2488d00178082556001600160a01b036101009182900481165f90815260016020818152604092839020805460ff19169092179091559354815163c45a015560e01b815291519390049091169263c45a0155926004808401938290030181865afa158015610199573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101bd91906104c6565b6001600160a01b031663c9c6539630600860019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561021d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061024191906104c6565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801561028b573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102af91906104c6565b600f80546001600160a01b0319166001600160a01b0392909216919091179055305f908152600160208190526040808320805460ff199081168417909155338452922080549092161790556103066009600a61047b565b610314906305f5e100610490565b335f9081526003602052604090205561032a3390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6103616009600a61047b565b61036f906305f5e100610490565b60405190815260200160405180910390a36104ec565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156103d357815f19048211156103b9576103b9610385565b808516156103c657918102915b93841c939080029061039e565b509250929050565b5f826103e957506001610475565b816103f557505f610475565b816001811461040b576002811461041557610431565b6001915050610475565b60ff84111561042657610426610385565b50506001821b610475565b5060208310610133831016604e8410600b8410161715610454575081810a610475565b61045e8383610399565b805f190482111561047157610471610385565b0290505b92915050565b5f61048960ff8416836103db565b9392505050565b808202811582820484141761047557610475610385565b5f826104c157634e487b7160e01b5f52601260045260245ffd5b500490565b5f602082840312156104d6575f80fd5b81516001600160a01b0381168114610489575f80fd5b611491806104f95f395ff3fe6080604052600436106101bd575f3560e01c8063782c4e99116100f25780639c74daf011610092578063dd62ed3e11610062578063dd62ed3e14610502578063de7cf79914610546578063deab8aea1461055b578063e4d1a8741461057a575f80fd5b80639c74daf014610486578063a9059cbb146104a5578063c0246668146104c4578063d257b34f146104e3575f80fd5b80638da5cb5b116100cd5780638da5cb5b14610400578063924de9b71461041c57806395d89b411461043b578063962dfc7514610467575f80fd5b8063782c4e99146103ad57806382247ec0146103cc57806383672f3e146103e1575f80fd5b8063313ce5671161015d5780636db79437116101385780636db794371461033257806370a0823114610351578063715018a614610385578063751039fc14610399575f80fd5b8063313ce567146102ea57806347535d7b1461030557806351bc3c851461031e575f80fd5b80631c499ab0116101985780631c499ab01461025f57806323b872dd14610280578063264d26dd1461029f578063293230b8146102d6575f80fd5b806306fdde03146101c8578063095ea7b31461020e57806318160ddd1461023d575f80fd5b366101c457005b5f80fd5b3480156101d3575f80fd5b5060408051808201909152600c81526b4750552d426c6f636b20414960a01b60208201525b604051610205919061100d565b60405180910390f35b348015610219575f80fd5b5061022d610228366004611056565b61058f565b6040519015158152602001610205565b348015610248575f80fd5b506102516105a5565b604051908152602001610205565b34801561026a575f80fd5b5061027e610279366004611080565b6105c5565b005b34801561028b575f80fd5b5061022d61029a366004611097565b610672565b3480156102aa575f80fd5b50600c546102be906001600160a01b031681565b6040516001600160a01b039091168152602001610205565b3480156102e1575f80fd5b5061027e6106d9565b3480156102f5575f80fd5b5060405160098152602001610205565b348015610310575f80fd5b5060045461022d9060ff1681565b348015610329575f80fd5b5061027e610711565b34801561033d575f80fd5b5061027e61034c3660046110d5565b610762565b34801561035c575f80fd5b5061025161036b3660046110f5565b6001600160a01b03165f9081526003602052604090205490565b348015610390575f80fd5b5061027e6107b3565b3480156103a4575f80fd5b5061027e610824565b3480156103b8575f80fd5b50600e546102be906001600160a01b031681565b3480156103d7575f80fd5b5061025160055481565b3480156103ec575f80fd5b5061027e6103fb366004611110565b610870565b34801561040b575f80fd5b505f546001600160a01b03166102be565b348015610427575f80fd5b5061027e61043636600461117d565b6108e9565b348015610446575f80fd5b506040805180820190915260048152634742414960e01b60208201526101f8565b348015610472575f80fd5b50600b546102be906001600160a01b031681565b348015610491575f80fd5b50600f546102be906001600160a01b031681565b3480156104b0575f80fd5b5061022d6104bf366004611056565b610930565b3480156104cf575f80fd5b5061027e6104de366004611196565b61093c565b3480156104ee575f80fd5b5061027e6104fd366004611080565b61098f565b34801561050d575f80fd5b5061025161051c3660046111c9565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610551575f80fd5b50610251600a5481565b348015610566575f80fd5b50600d546102be906001600160a01b031681565b348015610585575f80fd5b5061025160095481565b5f61059b3384846109bd565b5060015b92915050565b5f6105b26009600a6112f4565b6105c0906305f5e100611302565b905090565b5f546001600160a01b031633146105f75760405162461bcd60e51b81526004016105ee90611319565b60405180910390fd5b6101f46106066009600a6112f4565b610614906305f5e100611302565b61061e919061134e565b81101561066d5760405162461bcd60e51b815260206004820152601860248201527f4d696e696d696d756d2073657420302e34252076616c7565000000000000000060448201526064016105ee565b600555565b5f61067e848484610a1d565b6106cf84336106ca85604051806060016040528060288152602001611434602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190610dd1565b6109bd565b5060019392505050565b5f546001600160a01b031633146107025760405162461bcd60e51b81526004016105ee90611319565b6004805460ff19166001179055565b5f546001600160a01b0316331461073a5760405162461bcd60e51b81526004016105ee90611319565b305f90815260036020526040812054905061075f61075a82600754610e09565b610e20565b50565b5f546001600160a01b0316331461078b5760405162461bcd60e51b81526004016105ee90611319565b6009829055600a81905560238211156107a2575f80fd5b60238111156107af575f80fd5b5050565b5f546001600160a01b031633146107dc5760405162461bcd60e51b81526004016105ee90611319565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461084d5760405162461bcd60e51b81526004016105ee90611319565b60056009818155600a918255610862916112f4565b61066d906305f5e100611302565b5f546001600160a01b031633146108995760405162461bcd60e51b81526004016105ee90611319565b600b80546001600160a01b039586166001600160a01b031991821617909155600c805494861694821694909417909355600d805492851692841692909217909155600e8054919093169116179055565b5f546001600160a01b031633146109125760405162461bcd60e51b81526004016105ee90611319565b600f8054911515600160a01b0260ff60a01b19909216919091179055565b5f61059b338484610a1d565b5f546001600160a01b031633146109655760405162461bcd60e51b81526004016105ee90611319565b6001600160a01b03919091165f908152600160205260409020805460ff1916911515919091179055565b5f546001600160a01b031633146109b85760405162461bcd60e51b81526004016105ee90611319565b600655565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383165f9081526001602052604081205460ff16158015610a5d57506001600160a01b0383165f9081526001602052604090205460ff16155b15610ca65760045460ff16610abe5760405162461bcd60e51b815260206004820152602160248201527f54726164696e6720686173206e6f74206265656e20656e61626c6564207965746044820152602160f81b60648201526084016105ee565b606460095483610ace9190611302565b610ad8919061134e565b600f549091506001600160a01b03848116911614610b5c5760055482610b12856001600160a01b03165f9081526003602052604090205490565b610b1c919061136d565b1115610b5c5760405162461bcd60e51b815260206004820152600f60248201526e13dd995c881b585e081dd85b1b195d608a1b60448201526064016105ee565b600f546001600160a01b0390811690841603610bb4576064600a5483610b829190611302565b610b8c919061134e565b9050610b9a6009600a6112f4565b610ba8906305f5e100611302565b60065410610bb4575f80fd5b600f546001600160a01b0390811690851603610c365760055482610bec856001600160a01b03165f9081526003602052604090205490565b610bf6919061136d565b1115610c365760405162461bcd60e51b815260206004820152600f60248201526e13dd995c881b585e081dd85b1b195d608a1b60448201526064016105ee565b305f9081526003602052604090205460085460ff16158015610c655750600f546001600160a01b038581169116145b8015610c7a5750600f54600160a01b900460ff165b8015610c87575060065481115b15610ca457610ca461075a84610c9f84600754610e09565b610e09565b505b8015610d1e57305f90815260036020526040902054610cc59082610faf565b305f81815260036020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610d159085815260200190565b60405180910390a35b6001600160a01b0384165f9081526003602052604081208054849290610d45908490611380565b90915550610d5590508183611380565b6001600160a01b0384165f9081526003602052604081208054909190610d7c90849061136d565b90915550506001600160a01b038084169085167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610dba8486611380565b60405190815260200160405180910390a350505050565b5f8184841115610df45760405162461bcd60e51b81526004016105ee919061100d565b505f610e008486611380565b95945050505050565b5f818311610e175782610e19565b815b9392505050565b6008805460ff191660011790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110610e6057610e60611393565b60200260200101906001600160a01b031690816001600160a01b031681525050600860019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ed1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ef591906113a7565b81600181518110610f0857610f08611393565b6001600160a01b039283166020918202929092010152600854610f33913091610100900416846109bd565b600854600b5460405163791ac94760e01b81526001600160a01b0361010090930483169263791ac94792610f749287925f92889291169042906004016113c2565b5f604051808303815f87803b158015610f8b575f80fd5b505af1158015610f9d573d5f803e3d5ffd5b50506008805460ff1916905550505050565b5f80610fbb838561136d565b905083811015610e195760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105ee565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b038116811461075f575f80fd5b5f8060408385031215611067575f80fd5b823561107281611042565b946020939093013593505050565b5f60208284031215611090575f80fd5b5035919050565b5f805f606084860312156110a9575f80fd5b83356110b481611042565b925060208401356110c481611042565b929592945050506040919091013590565b5f80604083850312156110e6575f80fd5b50508035926020909101359150565b5f60208284031215611105575f80fd5b8135610e1981611042565b5f805f8060808587031215611123575f80fd5b843561112e81611042565b9350602085013561113e81611042565b9250604085013561114e81611042565b9150606085013561115e81611042565b939692955090935050565b80358015158114611178575f80fd5b919050565b5f6020828403121561118d575f80fd5b610e1982611169565b5f80604083850312156111a7575f80fd5b82356111b281611042565b91506111c060208401611169565b90509250929050565b5f80604083850312156111da575f80fd5b82356111e581611042565b915060208301356111f581611042565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561124e57815f190482111561123457611234611200565b8085161561124157918102915b93841c9390800290611219565b509250929050565b5f826112645750600161059f565b8161127057505f61059f565b81600181146112865760028114611290576112ac565b600191505061059f565b60ff8411156112a1576112a1611200565b50506001821b61059f565b5060208310610133831016604e8410600b84101617156112cf575081810a61059f565b6112d98383611214565b805f19048211156112ec576112ec611200565b029392505050565b5f610e1960ff841683611256565b808202811582820484141761059f5761059f611200565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f8261136857634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111561059f5761059f611200565b8181038181111561059f5761059f611200565b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156113b7575f80fd5b8151610e1981611042565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156114125784516001600160a01b0316835293830193918301916001016113ed565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f9e32acb7a3e7bf27a01683075f8bbd33e10a2cb29bd54b811399b24ebd165aa64736f6c63430008190033

Deployed Bytecode

0x6080604052600436106101bd575f3560e01c8063782c4e99116100f25780639c74daf011610092578063dd62ed3e11610062578063dd62ed3e14610502578063de7cf79914610546578063deab8aea1461055b578063e4d1a8741461057a575f80fd5b80639c74daf014610486578063a9059cbb146104a5578063c0246668146104c4578063d257b34f146104e3575f80fd5b80638da5cb5b116100cd5780638da5cb5b14610400578063924de9b71461041c57806395d89b411461043b578063962dfc7514610467575f80fd5b8063782c4e99146103ad57806382247ec0146103cc57806383672f3e146103e1575f80fd5b8063313ce5671161015d5780636db79437116101385780636db794371461033257806370a0823114610351578063715018a614610385578063751039fc14610399575f80fd5b8063313ce567146102ea57806347535d7b1461030557806351bc3c851461031e575f80fd5b80631c499ab0116101985780631c499ab01461025f57806323b872dd14610280578063264d26dd1461029f578063293230b8146102d6575f80fd5b806306fdde03146101c8578063095ea7b31461020e57806318160ddd1461023d575f80fd5b366101c457005b5f80fd5b3480156101d3575f80fd5b5060408051808201909152600c81526b4750552d426c6f636b20414960a01b60208201525b604051610205919061100d565b60405180910390f35b348015610219575f80fd5b5061022d610228366004611056565b61058f565b6040519015158152602001610205565b348015610248575f80fd5b506102516105a5565b604051908152602001610205565b34801561026a575f80fd5b5061027e610279366004611080565b6105c5565b005b34801561028b575f80fd5b5061022d61029a366004611097565b610672565b3480156102aa575f80fd5b50600c546102be906001600160a01b031681565b6040516001600160a01b039091168152602001610205565b3480156102e1575f80fd5b5061027e6106d9565b3480156102f5575f80fd5b5060405160098152602001610205565b348015610310575f80fd5b5060045461022d9060ff1681565b348015610329575f80fd5b5061027e610711565b34801561033d575f80fd5b5061027e61034c3660046110d5565b610762565b34801561035c575f80fd5b5061025161036b3660046110f5565b6001600160a01b03165f9081526003602052604090205490565b348015610390575f80fd5b5061027e6107b3565b3480156103a4575f80fd5b5061027e610824565b3480156103b8575f80fd5b50600e546102be906001600160a01b031681565b3480156103d7575f80fd5b5061025160055481565b3480156103ec575f80fd5b5061027e6103fb366004611110565b610870565b34801561040b575f80fd5b505f546001600160a01b03166102be565b348015610427575f80fd5b5061027e61043636600461117d565b6108e9565b348015610446575f80fd5b506040805180820190915260048152634742414960e01b60208201526101f8565b348015610472575f80fd5b50600b546102be906001600160a01b031681565b348015610491575f80fd5b50600f546102be906001600160a01b031681565b3480156104b0575f80fd5b5061022d6104bf366004611056565b610930565b3480156104cf575f80fd5b5061027e6104de366004611196565b61093c565b3480156104ee575f80fd5b5061027e6104fd366004611080565b61098f565b34801561050d575f80fd5b5061025161051c3660046111c9565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610551575f80fd5b50610251600a5481565b348015610566575f80fd5b50600d546102be906001600160a01b031681565b348015610585575f80fd5b5061025160095481565b5f61059b3384846109bd565b5060015b92915050565b5f6105b26009600a6112f4565b6105c0906305f5e100611302565b905090565b5f546001600160a01b031633146105f75760405162461bcd60e51b81526004016105ee90611319565b60405180910390fd5b6101f46106066009600a6112f4565b610614906305f5e100611302565b61061e919061134e565b81101561066d5760405162461bcd60e51b815260206004820152601860248201527f4d696e696d696d756d2073657420302e34252076616c7565000000000000000060448201526064016105ee565b600555565b5f61067e848484610a1d565b6106cf84336106ca85604051806060016040528060288152602001611434602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190610dd1565b6109bd565b5060019392505050565b5f546001600160a01b031633146107025760405162461bcd60e51b81526004016105ee90611319565b6004805460ff19166001179055565b5f546001600160a01b0316331461073a5760405162461bcd60e51b81526004016105ee90611319565b305f90815260036020526040812054905061075f61075a82600754610e09565b610e20565b50565b5f546001600160a01b0316331461078b5760405162461bcd60e51b81526004016105ee90611319565b6009829055600a81905560238211156107a2575f80fd5b60238111156107af575f80fd5b5050565b5f546001600160a01b031633146107dc5760405162461bcd60e51b81526004016105ee90611319565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461084d5760405162461bcd60e51b81526004016105ee90611319565b60056009818155600a918255610862916112f4565b61066d906305f5e100611302565b5f546001600160a01b031633146108995760405162461bcd60e51b81526004016105ee90611319565b600b80546001600160a01b039586166001600160a01b031991821617909155600c805494861694821694909417909355600d805492851692841692909217909155600e8054919093169116179055565b5f546001600160a01b031633146109125760405162461bcd60e51b81526004016105ee90611319565b600f8054911515600160a01b0260ff60a01b19909216919091179055565b5f61059b338484610a1d565b5f546001600160a01b031633146109655760405162461bcd60e51b81526004016105ee90611319565b6001600160a01b03919091165f908152600160205260409020805460ff1916911515919091179055565b5f546001600160a01b031633146109b85760405162461bcd60e51b81526004016105ee90611319565b600655565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383165f9081526001602052604081205460ff16158015610a5d57506001600160a01b0383165f9081526001602052604090205460ff16155b15610ca65760045460ff16610abe5760405162461bcd60e51b815260206004820152602160248201527f54726164696e6720686173206e6f74206265656e20656e61626c6564207965746044820152602160f81b60648201526084016105ee565b606460095483610ace9190611302565b610ad8919061134e565b600f549091506001600160a01b03848116911614610b5c5760055482610b12856001600160a01b03165f9081526003602052604090205490565b610b1c919061136d565b1115610b5c5760405162461bcd60e51b815260206004820152600f60248201526e13dd995c881b585e081dd85b1b195d608a1b60448201526064016105ee565b600f546001600160a01b0390811690841603610bb4576064600a5483610b829190611302565b610b8c919061134e565b9050610b9a6009600a6112f4565b610ba8906305f5e100611302565b60065410610bb4575f80fd5b600f546001600160a01b0390811690851603610c365760055482610bec856001600160a01b03165f9081526003602052604090205490565b610bf6919061136d565b1115610c365760405162461bcd60e51b815260206004820152600f60248201526e13dd995c881b585e081dd85b1b195d608a1b60448201526064016105ee565b305f9081526003602052604090205460085460ff16158015610c655750600f546001600160a01b038581169116145b8015610c7a5750600f54600160a01b900460ff165b8015610c87575060065481115b15610ca457610ca461075a84610c9f84600754610e09565b610e09565b505b8015610d1e57305f90815260036020526040902054610cc59082610faf565b305f81815260036020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610d159085815260200190565b60405180910390a35b6001600160a01b0384165f9081526003602052604081208054849290610d45908490611380565b90915550610d5590508183611380565b6001600160a01b0384165f9081526003602052604081208054909190610d7c90849061136d565b90915550506001600160a01b038084169085167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610dba8486611380565b60405190815260200160405180910390a350505050565b5f8184841115610df45760405162461bcd60e51b81526004016105ee919061100d565b505f610e008486611380565b95945050505050565b5f818311610e175782610e19565b815b9392505050565b6008805460ff191660011790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110610e6057610e60611393565b60200260200101906001600160a01b031690816001600160a01b031681525050600860019054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ed1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ef591906113a7565b81600181518110610f0857610f08611393565b6001600160a01b039283166020918202929092010152600854610f33913091610100900416846109bd565b600854600b5460405163791ac94760e01b81526001600160a01b0361010090930483169263791ac94792610f749287925f92889291169042906004016113c2565b5f604051808303815f87803b158015610f8b575f80fd5b505af1158015610f9d573d5f803e3d5ffd5b50506008805460ff1916905550505050565b5f80610fbb838561136d565b905083811015610e195760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105ee565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b038116811461075f575f80fd5b5f8060408385031215611067575f80fd5b823561107281611042565b946020939093013593505050565b5f60208284031215611090575f80fd5b5035919050565b5f805f606084860312156110a9575f80fd5b83356110b481611042565b925060208401356110c481611042565b929592945050506040919091013590565b5f80604083850312156110e6575f80fd5b50508035926020909101359150565b5f60208284031215611105575f80fd5b8135610e1981611042565b5f805f8060808587031215611123575f80fd5b843561112e81611042565b9350602085013561113e81611042565b9250604085013561114e81611042565b9150606085013561115e81611042565b939692955090935050565b80358015158114611178575f80fd5b919050565b5f6020828403121561118d575f80fd5b610e1982611169565b5f80604083850312156111a7575f80fd5b82356111b281611042565b91506111c060208401611169565b90509250929050565b5f80604083850312156111da575f80fd5b82356111e581611042565b915060208301356111f581611042565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561124e57815f190482111561123457611234611200565b8085161561124157918102915b93841c9390800290611219565b509250929050565b5f826112645750600161059f565b8161127057505f61059f565b81600181146112865760028114611290576112ac565b600191505061059f565b60ff8411156112a1576112a1611200565b50506001821b61059f565b5060208310610133831016604e8410600b84101617156112cf575081810a61059f565b6112d98383611214565b805f19048211156112ec576112ec611200565b029392505050565b5f610e1960ff841683611256565b808202811582820484141761059f5761059f611200565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f8261136857634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111561059f5761059f611200565b8181038181111561059f5761059f611200565b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156113b7575f80fd5b8151610e1981611042565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156114125784516001600160a01b0316835293830193918301916001016113ed565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f9e32acb7a3e7bf27a01683075f8bbd33e10a2cb29bd54b811399b24ebd165aa64736f6c63430008190033

Deployed Bytecode Sourcemap

3903:6696:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5634:83;;;;;;;;;;-1:-1:-1;5704:5:0;;;;;;;;;;;;-1:-1:-1;;;5704:5:0;;;;5634:83;;;;;;;:::i;:::-;;;;;;;;6467:161;;;;;;;;;;-1:-1:-1;6467:161:0;;;;;:::i;:::-;;:::i;:::-;;;1058:14:1;;1051:22;1033:41;;1021:2;1006:18;6467:161:0;893:187:1;5911:95:0;;;;;;;;;;;;;:::i;:::-;;;1231:25:1;;;1219:2;1204:18;5911:95:0;1085:177:1;9357:166:0;;;;;;;;;;-1:-1:-1;9357:166:0;;;;;:::i;:::-;;:::i;:::-;;6636:313;;;;;;;;;;-1:-1:-1;6636:313:0;;;;;:::i;:::-;;:::i;4775:40::-;;;;;;;;;;-1:-1:-1;4775:40:0;;;;-1:-1:-1;;;;;4775:40:0;;;;;;-1:-1:-1;;;;;2093:32:1;;;2075:51;;2063:2;2048:18;4775:40:0;1913:219:1;9091:75:0;;;;;;;;;;;;;:::i;5820:83::-;;;;;;;;;;-1:-1:-1;5820:83:0;;4140:1;2279:36:1;;2267:2;2252:18;5820:83:0;2137:184:1;4405:18:0;;;;;;;;;;-1:-1:-1;4405:18:0;;;;;;;;9174:171;;;;;;;;;;;;;:::i;9758:216::-;;;;;;;;;;-1:-1:-1;9758:216:0;;;;;:::i;:::-;;:::i;6014:119::-;;;;;;;;;;-1:-1:-1;6014:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6107:18:0;6080:7;6107:18;;;:9;:18;;;;;;;6014:119;2984:148;;;;;;;;;;;;;:::i;9982:125::-;;;;;;;;;;;;;:::i;4865:37::-;;;;;;;;;;-1:-1:-1;4865:37:0;;;;-1:-1:-1;;;;;4865:37:0;;;4430:45;;;;;;;;;;;;;;;;10250:309;;;;;;;;;;-1:-1:-1;10250:309:0;;;;;:::i;:::-;;:::i;2770:79::-;;;;;;;;;;-1:-1:-1;2808:7:0;2835:6;-1:-1:-1;;;;;2835:6:0;2770:79;;9531:98;;;;;;;;;;-1:-1:-1;9531:98:0;;;;;:::i;:::-;;:::i;5725:87::-;;;;;;;;;;-1:-1:-1;5797:7:0;;;;;;;;;;;;-1:-1:-1;;;5797:7:0;;;;5725:87;;4729:39;;;;;;;;;;-1:-1:-1;4729:39:0;;;;-1:-1:-1;;;;;4729:39:0;;;4911:29;;;;;;;;;;-1:-1:-1;4911:29:0;;;;-1:-1:-1;;;;;4911:29:0;;;6141:167;;;;;;;;;;-1:-1:-1;6141:167:0;;;;;:::i;:::-;;:::i;10115:127::-;;;;;;;;;;-1:-1:-1;10115:127:0;;;;;:::i;:::-;;:::i;9637:113::-;;;;;;;;;;-1:-1:-1;9637:113:0;;;;;:::i;:::-;;:::i;6316:143::-;;;;;;;;;;-1:-1:-1;6316:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6424:18:0;;;6397:7;6424:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6316:143;4691:29;;;;;;;;;;;;;;;;4822:36;;;;;;;;;;-1:-1:-1;4822:36:0;;;;-1:-1:-1;;;;;4822:36:0;;;4656:28;;;;;;;;;;;;;;;;6467:161;6542:4;6559:39;605:10;6582:7;6591:6;6559:8;:39::i;:::-;-1:-1:-1;6616:4:0;6467:161;;;;;:::o;5911:95::-;5964:7;4197:15;4140:1;4197:2;:15;:::i;:::-;4183:29;;:11;:29;:::i;:::-;5984:14;;5911:95;:::o;9357:166::-;2897:6;;-1:-1:-1;;;;;2897:6:0;605:10;2897:22;2889:67;;;;-1:-1:-1;;;2889:67:0;;;;;;;:::i;:::-;;;;;;;;;9453:3:::1;4197:15;4140:1;4197:2;:15;:::i;:::-;4183:29;::::0;:11:::1;:29;:::i;:::-;9443:13;;;;:::i;:::-;9433:6;:23;;9425:60;;;::::0;-1:-1:-1;;;9425:60:0;;7277:2:1;9425:60:0::1;::::0;::::1;7259:21:1::0;7316:2;7296:18;;;7289:30;7355:26;7335:18;;;7328:54;7399:18;;9425:60:0::1;7075:348:1::0;9425:60:0::1;9496:10;:19:::0;9357:166::o;6636:313::-;6734:4;6751:36;6761:6;6769:9;6780:6;6751:9;:36::i;:::-;6798:121;6807:6;605:10;6829:89;6867:6;6829:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6829:19:0;;;;;;:11;:19;;;;;;;;605:10;6829:33;;;;;;;;;;:37;:89::i;:::-;6798:8;:121::i;:::-;-1:-1:-1;6937:4:0;6636:313;;;;;:::o;9091:75::-;2897:6;;-1:-1:-1;;;;;2897:6:0;605:10;2897:22;2889:67;;;;-1:-1:-1;;;2889:67:0;;;;;;;:::i;:::-;9145:6:::1;:13:::0;;-1:-1:-1;;9145:13:0::1;9154:4;9145:13;::::0;;9091:75::o;9174:171::-;2897:6;;-1:-1:-1;;;;;2897:6:0;605:10;2897:22;2889:67;;;;-1:-1:-1;;;2889:67:0;;;;;;;:::i;:::-;9270:4:::1;9226:23;6107:18:::0;;;:9;:18;;;;;;9226:50:::1;;9287;9304:32;9308:15;9324:11;;9304:3;:32::i;:::-;9287:16;:50::i;:::-;9215:130;9174:171::o:0;9758:216::-;2897:6;;-1:-1:-1;;;;;2897:6:0;605:10;2897:22;2889:67;;;;-1:-1:-1;;;2889:67:0;;;;;;;:::i;:::-;9841:8:::1;:20:::0;;;9872:9:::1;:23:::0;;;9927:2:::1;9914:15:::0;::::1;;9906:24;;;::::0;::::1;;9963:2;9949:10;:16;;9941:25;;;::::0;::::1;;9758:216:::0;;:::o;2984:148::-;2897:6;;-1:-1:-1;;;;;2897:6:0;605:10;2897:22;2889:67;;;;-1:-1:-1;;;2889:67:0;;;;;;;:::i;:::-;3091:1:::1;3075:6:::0;;3054:40:::1;::::0;-1:-1:-1;;;;;3075:6:0;;::::1;::::0;3054:40:::1;::::0;3091:1;;3054:40:::1;3122:1;3105:19:::0;;-1:-1:-1;;;;;;3105:19:0::1;::::0;;2984:148::o;9982:125::-;2897:6;;-1:-1:-1;;;;;2897:6:0;605:10;2897:22;2889:67;;;;-1:-1:-1;;;2889:67:0;;;;;;;:::i;:::-;10045:1:::1;10036:8;:10:::0;;;10057:9:::1;:11:::0;;;4197:15:::1;::::0;::::1;:::i;:::-;4183:29;::::0;:11:::1;:29;:::i;10250:309::-:0;2897:6;;-1:-1:-1;;;;;2897:6:0;605:10;2897:22;2889:67;;;;-1:-1:-1;;;2889:67:0;;;;;;;:::i;:::-;10409:16:::1;:29:::0;;-1:-1:-1;;;;;10409:29:0;;::::1;-1:-1:-1::0;;;;;;10409:29:0;;::::1;;::::0;;;10449:17:::1;:30:::0;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;10490:13:::1;:24:::0;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;10525:14:::1;:26:::0;;;;;::::1;::::0;::::1;;::::0;;10250:309::o;9531:98::-;2897:6;;-1:-1:-1;;;;;2897:6:0;605:10;2897:22;2889:67;;;;-1:-1:-1;;;2889:67:0;;;;;;;:::i;:::-;9601:11:::1;:20:::0;;;::::1;;-1:-1:-1::0;;;9601:20:0::1;-1:-1:-1::0;;;;9601:20:0;;::::1;::::0;;;::::1;::::0;;9531:98::o;6141:167::-;6219:4;6236:42;605:10;6260:9;6271:6;6236:9;:42::i;10115:127::-;2897:6;;-1:-1:-1;;;;;2897:6:0;605:10;2897:22;2889:67;;;;-1:-1:-1;;;2889:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10200:25:0;;;::::1;;::::0;;;:16:::1;:25;::::0;;;;:34;;-1:-1:-1;;10200:34:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10115:127::o;9637:113::-;2897:6;;-1:-1:-1;;;;;2897:6:0;605:10;2897:22;2889:67;;;;-1:-1:-1;;;2889:67:0;;;;;;;:::i;:::-;9714:19:::1;:28:::0;9637:113::o;6957:177::-;-1:-1:-1;;;;;7042:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7094:32;;1231:25:1;;;7094:32:0;;1204:18:1;7094:32:0;;;;;;;6957:177;;;:::o;7142:1341::-;-1:-1:-1;;;;;7257:22:0;;7222:17;7257:22;;;:16;:22;;;;;;;;7256:23;:48;;;;-1:-1:-1;;;;;;7284:20:0;;;;;;:16;:20;;;;;;;;7283:21;7256:48;7252:907;;;7329:6;;;;7321:52;;;;-1:-1:-1;;;7321:52:0;;7630:2:1;7321:52:0;;;7612:21:1;7669:2;7649:18;;;7642:30;7708:34;7688:18;;;7681:62;-1:-1:-1;;;7759:18:1;;;7752:31;7800:19;;7321:52:0;7428:397:1;7321:52:0;7422:3;7411:8;;7402:6;:17;;;;:::i;:::-;:23;;;;:::i;:::-;7452:14;;7390:35;;-1:-1:-1;;;;;;7446:20:0;;;7452:14;;7446:20;7442:125;;7521:10;;7511:6;7495:13;7505:2;-1:-1:-1;;;;;6107:18:0;6080:7;6107:18;;;:9;:18;;;;;;;6014:119;7495:13;:22;;;;:::i;:::-;:36;;7487:64;;;;-1:-1:-1;;;7487:64:0;;8162:2:1;7487:64:0;;;8144:21:1;8201:2;8181:18;;;8174:30;-1:-1:-1;;;8220:18:1;;;8213:45;8275:18;;7487:64:0;7960:339:1;7487:64:0;7592:14;;-1:-1:-1;;;;;7592:14:0;;;7586:20;;;;7583:153;;7660:3;7647:9;;7638:6;:18;;;;:::i;:::-;:25;;;;:::i;:::-;7626:37;-1:-1:-1;4197:15:0;4140:1;4197:2;:15;:::i;:::-;4183:29;;:11;:29;:::i;:::-;7690:19;;:29;7682:38;;;;;;7764:14;;-1:-1:-1;;;;;7764:14:0;;;7756:22;;;;7752:127;;7833:10;;7823:6;7807:13;7817:2;-1:-1:-1;;;;;6107:18:0;6080:7;6107:18;;;:9;:18;;;;;;;6014:119;7807:13;:22;;;;:::i;:::-;:36;;7799:64;;;;-1:-1:-1;;;7799:64:0;;8162:2:1;7799:64:0;;;8144:21:1;8201:2;8181:18;;;8174:30;-1:-1:-1;;;8220:18:1;;;8213:45;8275:18;;7799:64:0;7960:339:1;7799:64:0;7939:4;7895:23;6107:18;;;:9;:18;;;;;;7965:6;;;;7964:7;:31;;;;-1:-1:-1;7981:14:0;;-1:-1:-1;;;;;7975:20:0;;;7981:14;;7975:20;7964:31;:46;;;;-1:-1:-1;7999:11:0;;-1:-1:-1;;;7999:11:0;;;;7964:46;:85;;;;;8030:19;;8014:15;:35;7964:85;7960:188;;;8070:62;8087:44;8091:6;8098:32;8102:15;8118:11;;8098:3;:32::i;:::-;8087:3;:44::i;8070:62::-;7306:853;7252:907;8174:13;;8171:165;;8246:4;8228:24;;;;:9;:24;;;;;;:39;;8257:9;8228:28;:39::i;:::-;8219:4;8201:24;;;;:9;:24;;;;;;;:66;;;;8285:39;;-1:-1:-1;;;;;8285:39:0;;;;;;;8314:9;1231:25:1;;1219:2;1204:18;;1085:177;8285:39:0;;;;;;;;8171:165;-1:-1:-1;;;;;8346:15:0;;;;;;:9;:15;;;;;:27;;8366:6;;8346:15;:27;;8366:6;;8346:27;:::i;:::-;;;;-1:-1:-1;8401:18:0;;-1:-1:-1;8410:9:0;8401:6;:18;:::i;:::-;-1:-1:-1;;;;;8384:13:0;;;;;;:9;:13;;;;;:35;;:13;;;:35;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;8435:40:0;;;;;;;8454:20;8464:9;8454:6;:20;:::i;:::-;8435:40;;1231:25:1;;;1219:2;1204:18;8435:40:0;;;;;;;7211:1272;7142:1341;;;:::o;1662:190::-;1748:7;1784:12;1776:6;;;;1768:29;;;;-1:-1:-1;;;1768:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1808:9:0;1820:5;1824:1;1820;:5;:::i;:::-;1808:17;1662:190;-1:-1:-1;;;;;1662:190:0:o;8491:98::-;8548:7;8575:1;8573;:3;8572:9;;8580:1;8572:9;;;8578:1;8572:9;8565:16;8491:98;-1:-1:-1;;;8491:98:0:o;8597:486::-;5019:6;:13;;-1:-1:-1;;5019:13:0;5028:4;5019:13;;;8699:16:::1;::::0;;8713:1:::1;8699:16:::0;;;;;::::1;::::0;;-1:-1:-1;;8699:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;8699:16:0::1;8675:40;;8744:4;8726;8731:1;8726:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;8726:23:0::1;;;-1:-1:-1::0;;;;;8726:23:0::1;;;::::0;::::1;8770:15;;;;;;;;;-1:-1:-1::0;;;;;8770:15:0::1;-1:-1:-1::0;;;;;8770:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8760:4;8765:1;8760:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8760:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;8835:15:::1;::::0;8803:62:::1;::::0;8820:4:::1;::::0;8835:15:::1;::::0;::::1;;8853:11:::0;8803:8:::1;:62::i;:::-;8876:15;::::0;9018:16:::1;::::0;8876:199:::1;::::0;-1:-1:-1;;;8876:199:0;;-1:-1:-1;;;;;8876:15:0::1;::::0;;::::1;::::0;::::1;::::0;:66:::1;::::0;:199:::1;::::0;8957:11;;8983:1:::1;::::0;8999:4;;9018:16;::::1;::::0;9049:15:::1;::::0;8876:199:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5055:6:0;:14;;-1:-1:-1;;5055:14:0;;;-1:-1:-1;;;;8597:486:0:o;1331:179::-;1389:7;;1421:5;1425:1;1421;:5;:::i;:::-;1409:17;;1450:1;1445;:6;;1437:46;;;;-1:-1:-1;;;1437:46:0;;10152:2:1;1437:46:0;;;10134:21:1;10191:2;10171:18;;;10164:30;10230:29;10210:18;;;10203:57;10277:18;;1437:46:0;9950:351:1;14:418;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:315;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;878:2;863:18;;;;850:32;;-1:-1:-1;;;573:315:1:o;1267:180::-;1326:6;1379:2;1367:9;1358:7;1354:23;1350:32;1347:52;;;1395:1;1392;1385:12;1347:52;-1:-1:-1;1418:23:1;;1267:180;-1:-1:-1;1267:180:1:o;1452:456::-;1529:6;1537;1545;1598:2;1586:9;1577:7;1573:23;1569:32;1566:52;;;1614:1;1611;1604:12;1566:52;1653:9;1640:23;1672:31;1697:5;1672:31;:::i;:::-;1722:5;-1:-1:-1;1779:2:1;1764:18;;1751:32;1792:33;1751:32;1792:33;:::i;:::-;1452:456;;1844:7;;-1:-1:-1;;;1898:2:1;1883:18;;;;1870:32;;1452:456::o;2326:248::-;2394:6;2402;2455:2;2443:9;2434:7;2430:23;2426:32;2423:52;;;2471:1;2468;2461:12;2423:52;-1:-1:-1;;2494:23:1;;;2564:2;2549:18;;;2536:32;;-1:-1:-1;2326:248:1:o;2579:247::-;2638:6;2691:2;2679:9;2670:7;2666:23;2662:32;2659:52;;;2707:1;2704;2697:12;2659:52;2746:9;2733:23;2765:31;2790:5;2765:31;:::i;2831:703::-;2949:6;2957;2965;2973;3026:3;3014:9;3005:7;3001:23;2997:33;2994:53;;;3043:1;3040;3033:12;2994:53;3082:9;3069:23;3101:31;3126:5;3101:31;:::i;:::-;3151:5;-1:-1:-1;3208:2:1;3193:18;;3180:32;3221:33;3180:32;3221:33;:::i;:::-;3273:7;-1:-1:-1;3332:2:1;3317:18;;3304:32;3345:33;3304:32;3345:33;:::i;:::-;3397:7;-1:-1:-1;3456:2:1;3441:18;;3428:32;3469:33;3428:32;3469:33;:::i;:::-;2831:703;;;;-1:-1:-1;2831:703:1;;-1:-1:-1;;2831:703:1:o;3747:160::-;3812:20;;3868:13;;3861:21;3851:32;;3841:60;;3897:1;3894;3887:12;3841:60;3747:160;;;:::o;3912:180::-;3968:6;4021:2;4009:9;4000:7;3996:23;3992:32;3989:52;;;4037:1;4034;4027:12;3989:52;4060:26;4076:9;4060:26;:::i;4097:315::-;4162:6;4170;4223:2;4211:9;4202:7;4198:23;4194:32;4191:52;;;4239:1;4236;4229:12;4191:52;4278:9;4265:23;4297:31;4322:5;4297:31;:::i;:::-;4347:5;-1:-1:-1;4371:35:1;4402:2;4387:18;;4371:35;:::i;:::-;4361:45;;4097:315;;;;;:::o;4417:388::-;4485:6;4493;4546:2;4534:9;4525:7;4521:23;4517:32;4514:52;;;4562:1;4559;4552:12;4514:52;4601:9;4588:23;4620:31;4645:5;4620:31;:::i;:::-;4670:5;-1:-1:-1;4727:2:1;4712:18;;4699:32;4740:33;4699:32;4740:33;:::i;:::-;4792:7;4782:17;;;4417:388;;;;;:::o;4810:127::-;4871:10;4866:3;4862:20;4859:1;4852:31;4902:4;4899:1;4892:15;4926:4;4923:1;4916:15;4942:416;5031:1;5068:5;5031:1;5082:270;5103:7;5093:8;5090:21;5082:270;;;5162:4;5158:1;5154:6;5150:17;5144:4;5141:27;5138:53;;;5171:18;;:::i;:::-;5221:7;5211:8;5207:22;5204:55;;;5241:16;;;;5204:55;5320:22;;;;5280:15;;;;5082:270;;;5086:3;4942:416;;;;;:::o;5363:806::-;5412:5;5442:8;5432:80;;-1:-1:-1;5483:1:1;5497:5;;5432:80;5531:4;5521:76;;-1:-1:-1;5568:1:1;5582:5;;5521:76;5613:4;5631:1;5626:59;;;;5699:1;5694:130;;;;5606:218;;5626:59;5656:1;5647:10;;5670:5;;;5694:130;5731:3;5721:8;5718:17;5715:43;;;5738:18;;:::i;:::-;-1:-1:-1;;5794:1:1;5780:16;;5809:5;;5606:218;;5908:2;5898:8;5895:16;5889:3;5883:4;5880:13;5876:36;5870:2;5860:8;5857:16;5852:2;5846:4;5843:12;5839:35;5836:77;5833:159;;;-1:-1:-1;5945:19:1;;;5977:5;;5833:159;6024:34;6049:8;6043:4;6024:34;:::i;:::-;6094:6;6090:1;6086:6;6082:19;6073:7;6070:32;6067:58;;;6105:18;;:::i;:::-;6143:20;;5363:806;-1:-1:-1;;;5363:806:1:o;6174:140::-;6232:5;6261:47;6302:4;6292:8;6288:19;6282:4;6261:47;:::i;6319:168::-;6392:9;;;6423;;6440:15;;;6434:22;;6420:37;6410:71;;6461:18;;:::i;6492:356::-;6694:2;6676:21;;;6713:18;;;6706:30;6772:34;6767:2;6752:18;;6745:62;6839:2;6824:18;;6492:356::o;6853:217::-;6893:1;6919;6909:132;;6963:10;6958:3;6954:20;6951:1;6944:31;6998:4;6995:1;6988:15;7026:4;7023:1;7016:15;6909:132;-1:-1:-1;7055:9:1;;6853:217::o;7830:125::-;7895:9;;;7916:10;;;7913:36;;;7929:18;;:::i;8304:128::-;8371:9;;;8392:11;;;8389:37;;;8406:18;;:::i;8569:127::-;8630:10;8625:3;8621:20;8618:1;8611:31;8661:4;8658:1;8651:15;8685:4;8682:1;8675:15;8701:251;8771:6;8824:2;8812:9;8803:7;8799:23;8795:32;8792:52;;;8840:1;8837;8830:12;8792:52;8872:9;8866:16;8891:31;8916:5;8891:31;:::i;8957:988::-;9227:4;9275:3;9264:9;9260:19;9306:6;9295:9;9288:25;9332:2;9370:6;9365:2;9354:9;9350:18;9343:34;9413:3;9408:2;9397:9;9393:18;9386:31;9437:6;9472;9466:13;9503:6;9495;9488:22;9541:3;9530:9;9526:19;9519:26;;9580:2;9572:6;9568:15;9554:29;;9601:1;9611:195;9625:6;9622:1;9619:13;9611:195;;;9690:13;;-1:-1:-1;;;;;9686:39:1;9674:52;;9781:15;;;;9746:12;;;;9722:1;9640:9;9611:195;;;-1:-1:-1;;;;;;;9862:32:1;;;;9857:2;9842:18;;9835:60;-1:-1:-1;;;9926:3:1;9911:19;9904:35;9823:3;8957:988;-1:-1:-1;;;8957:988:1:o

Swarm Source

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