ETH Price: $2,654.46 (+1.01%)

Token

Aurk AI (AURK)
 

Overview

Max Total Supply

100,000,000 AURK

Holders

2,204

Total Transfers

-

Market

Price

$0.01 @ 0.000002 ETH (-6.88%)

Onchain Market Cap

$653,626.00

Circulating Supply Market Cap

$0.00

Other Info

Token Contract (WITH 18 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

AURK is the decentralized AI platform designed for everyone. Build, deploy, and monetize AI agents without writing a single line of code

Market

Volume (24H):$31,583.00
Market Capitalization:$0.00
Circulating Supply:0.00 AURK
Market Data Source: Coinmarketcap

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
AURK

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-12-13
*/

// SPDX-License-Identifier: MIT
/*
   _____   ____ _____________ ____  __.
  /  _  \ |    |   \______   \    |/ _|
 /  /_\  \|    |   /|       _/      <  
/    |    \    |  / |    |   \    |  \ 
\____|__  /______/  |____|_  /____|__ \
  Website:  https://aurk.org/
  X:        https://x.com/aiaurk
  Telegram: https://t.me/aurkai
  Docs:     https://aurk.gitbook.io/aurk-whitepaper
*/

pragma solidity 0.8.20;

interface IERC20 {
    event Transfer(
        address indexed sender,
        address indexed recipient,
        uint256 amount
    );
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 amount
    );

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

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

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

    /**
     * Constructor sets the deployer as the initial owner of the contract.
     */
    constructor() {
        address msgSender = _msgSender();
        _contractOwner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

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

    /**
     * Transfers ownership to a new address.
     * newOwner cannot be a zero address.
     */
    function transferOwnership(address newOwner) public onlyOwner {
        _updateOwnership(newOwner);
    }

    function _updateOwnership(address newOwner) internal {
        require(
            newOwner != address(0),
            "Ownable: new owner is the zero address"
        );
        emit OwnershipTransferred(_contractOwner, newOwner);
        _contractOwner = newOwner;
    }

    /**
     * Renounces ownership, making the contract ownerless.
     */
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_contractOwner, address(0));
        _contractOwner = address(0);
    }
}

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 tokenAmount,
        uint256 minETHAmount,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint256 tokenDesired,
        uint256 tokenMin,
        uint256 ethMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 tokenAmount,
            uint256 ethAmount,
            uint256 liquidity
        );
}

contract AURK is Context, IERC20, Ownable {
    string private constant _tokenName = "Aurk AI";
    string private constant _tokenSymbol = "AURK";
    uint8 private constant _tokenDecimals = 18;
    uint256 private constant _totalSupply = 100000000 * 10**_tokenDecimals;

    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => uint256) private _excludedAccounts;

    uint256 private constant _minSwapTokens = 10000 * 10**_tokenDecimals; // Min. tokens to swap
    uint256 private _maxSwapTokens = 50000 * 10**_tokenDecimals; // Max tokens to swap
    uint256 private _lastSwapBlock;
    uint256 private _swapCount;

    uint256 public maxTxValue = 1500000 * 10**_tokenDecimals; // Max tx value
    uint256 public maxWalletHoldings = 1500000 * 10**_tokenDecimals; // Max wallet value

    uint256 private _launchBlock;
    uint256 buyFeeRate = 30; // Buy fee
    uint256 sellFeeRate = 30; // Sell fee

    IUniswapV2Router02 private _uniswapV2Router;
    address public uniswapV2Pair;

    address ProjectWallet; //Primary Fee Wallet
    address DevOps;
    address EcoWallet;
    address BDWallet;
    address CreatorWallet;
    address UserWallet;
    address TeamWallet;

    bool private _isTradingActive = false;

    //** Begin Constructor

    constructor() {
        // Define wallet addresses
        ProjectWallet = 0x1eA8f412DD2f17BE2048880c18f5Ee5C1d6DcA95;
        EcoWallet = 0xFDf7Ad778F7Bdf8F8e1B49F2067dC54523a0abC8;
        BDWallet = 0x23545ecDC9EACe9F93BB4006047c00cE047b91fE;
        CreatorWallet = 0x921b6bb12a25275A03fEA22e419c82f2b56F9a51;
        UserWallet = 0x9Ab15eb4665Ae4bE78BCB04FF09D30d6269838ce;
        TeamWallet = 0x4c6ae48AEcC3251e2De83b1098B7b866BF6b6DfB;
        DevOps = 0x81A19e3bC368F67cdEE79B48cD78B82c7AAE43AE;

        // Calculate token allocations
        uint256 dexLiquidityTokens = (_totalSupply * 65) / 100;
        uint256 projectTokens = (_totalSupply * 2) / 100;
        uint256 ecosystemTokens = (_totalSupply * 10) / 100;
        uint256 businessDevTokens = (_totalSupply * 5) / 100;
        uint256 creatorTokens = (_totalSupply * 5) / 100;
        uint256 userTokens = (_totalSupply * 8) / 100;
        uint256 teamTokens = (_totalSupply * 5) / 100;

        // Distribute tokens
        _balances[address(this)] = dexLiquidityTokens; // DEX Liquidity
        _balances[ProjectWallet] = projectTokens; // Project Reserve
        _balances[EcoWallet] = ecosystemTokens; // Listings & Ecosystem
        _balances[BDWallet] = businessDevTokens; // Partnerships & Business Development
        _balances[CreatorWallet] = creatorTokens; // Creator Incentives
        _balances[UserWallet] = userTokens; // User Incentives
        _balances[TeamWallet] = teamTokens; // Team & Advisors

        // Apply exclusions
        _excludedAccounts[msg.sender] = 1;
        _excludedAccounts[address(this)] = 1;
        _excludedAccounts[ProjectWallet] = 1;
        _excludedAccounts[EcoWallet] = 1;
        _excludedAccounts[BDWallet] = 1;
        _excludedAccounts[CreatorWallet] = 1;
        _excludedAccounts[UserWallet] = 1;
        _excludedAccounts[TeamWallet] = 1;

        // Initialize swap-related state variables
        _lastSwapBlock = 0;
        _swapCount = 0;

        // Emit transfer events
        emit Transfer(address(0), address(this), dexLiquidityTokens);
        emit Transfer(address(0), ProjectWallet, projectTokens);
        emit Transfer(address(0), EcoWallet, ecosystemTokens);
        emit Transfer(address(0), BDWallet, businessDevTokens);
        emit Transfer(address(0), CreatorWallet, creatorTokens);
        emit Transfer(address(0), UserWallet, userTokens);
        emit Transfer(address(0), TeamWallet, teamTokens);
    }

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

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

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

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

    //Return fee rate values
    function getFeeRates()
        external
        view
        returns (uint256 buyTax, uint256 sellTax)
    {
        buyTax = buyFeeRate;
        sellTax = sellFeeRate;
    }

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

    function transfer(address recipient, uint256 amount)
        public
        override
        returns (bool)
    {
        _executeTransfer(_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)
    {
        _setAllowance(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _executeTransfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        if (currentAllowance != type(uint256).max) {
            require(
                currentAllowance >= amount,
                "ERC20: transfer amount exceeds allowance"
            );
            unchecked {
                _setAllowance(sender, _msgSender(), currentAllowance - amount);
            }
        }
        return true;
    }

    function _setAllowance(
        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);
    }

    //Enables trading and adds liquidity at once
    function startTrading() external onlyOwner {
        require(!_isTradingActive, "Trading is already enabled");
        _uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );

        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
        _setAllowance(address(this), address(_uniswapV2Router), _totalSupply);

        _uniswapV2Router.addLiquidityETH{value: address(this).balance}(
            address(this),
            balanceOf(address(this)),
            0,
            0,
            owner(),
            block.timestamp
        );

        IERC20(uniswapV2Pair).approve(
            address(_uniswapV2Router),
            type(uint256).max
        );
        _isTradingActive = true;
        _launchBlock = block.number;
    }

    //Include or Exclude from fees
    function setExcludedAccount(address account, uint256 value)
        external
        onlyOwner
    {
        _excludedAccounts[account] = value;
    }

    //Remove limits when stable
    function disableLimits() external onlyOwner {
        maxTxValue = _totalSupply;
        maxWalletHoldings = _totalSupply;
    }

    // Adjust tax rates
    function adjustTaxRates(uint256 newBuyTaxRate, uint256 newSellTaxRate)
        external
        onlyOwner
    {
        require(newBuyTaxRate <= 100, "Buy tax rate cannot exceed 100%");
        require(newSellTaxRate <= 100, "Sell tax rate cannot exceed 100%");

        buyFeeRate = newBuyTaxRate;
        sellFeeRate = newSellTaxRate;
    }

    // Handles transfer and applies tax

    function _executeTokenTransfer(
        address from,
        address to,
        uint256 amount,
        uint256 taxRate
    ) private {
        uint256 taxAmount = (amount * taxRate) / 100;
        uint256 transferAmount = amount - taxAmount;

        _balances[from] -= amount;
        _balances[to] += transferAmount;
        _balances[address(this)] += taxAmount;

        emit Transfer(from, to, transferAmount);
    }

    //Transfer function
    function _executeTransfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(amount > 0, "ERC20: transfer amount must be greater than zero");

        uint256 taxRate = 0;

        if (_excludedAccounts[from] == 0 && _excludedAccounts[to] == 0) {
            require(_isTradingActive, "Trading is not enabled yet");
            require(
                amount <= maxTxValue,
                "Transaction amount exceeds the maximum limit"
            );

            if (to != uniswapV2Pair && to != address(0xdead)) {
                require(
                    balanceOf(to) + amount <= maxWalletHoldings,
                    "Recipient wallet exceeds the maximum limit"
                );
            }

            if (block.number < _launchBlock + 3) {
                taxRate = (from == uniswapV2Pair) ? 30 : 30;
            } else {
                if (from == uniswapV2Pair) {
                    taxRate = buyFeeRate;
                } else if (to == uniswapV2Pair) {
                    uint256 contractTokenBalance = balanceOf(address(this));
                    if (contractTokenBalance > _minSwapTokens) {
                        uint256 swapAmount = _maxSwapTokens;
                        if (contractTokenBalance > amount)
                            contractTokenBalance = amount;
                        if (contractTokenBalance > swapAmount)
                            contractTokenBalance = swapAmount;
                        _exchangeTokensForEth(contractTokenBalance);
                    }
                    taxRate = sellFeeRate;
                }
            }
        }
        _executeTokenTransfer(from, to, amount, taxRate);
    }

    //Recovers stuck ETH
    function withdrawEth() external onlyOwner {
        (bool success, ) = owner().call{value: address(this).balance}("");
        require(success, "Rescue ETH failed");
    }

    //Recovers stuck tokens
    function recoverTokens() external onlyOwner {
        uint256 contractTokenBalance = balanceOf(address(this));
        require(contractTokenBalance > 0, "No tokens to rescue");

        _executeTokenTransfer(address(this), owner(), contractTokenBalance, 0);
    }

    //Force swapback
    function executeManualSwap(uint256 percent) external onlyOwner {
        uint256 contractTokenBalance = balanceOf(address(this));
        uint256 swapAmount = (percent * contractTokenBalance) / 100;
        _exchangeTokensForEth(swapAmount);
    }

    //Swapback logic
    function _exchangeTokensForEth(uint256 tokenAmount) private {
        // Check if it's the current block
        if (block.number == _lastSwapBlock) {
            // Allow a maximum of 2 swaps in the same block
            require(_swapCount < 2, "Maximum swaps per block reached");
            _swapCount++;
        } else {
            // Reset for a new block
            _lastSwapBlock = block.number;
            _swapCount = 1;
        }

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _uniswapV2Router.WETH();

        _setAllowance(address(this), address(_uniswapV2Router), tokenAmount);

        _uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 contractEthBalance = address(this).balance;

        // Calculate balances
        uint256 devOpsShare = (contractEthBalance * 10) / 100;
         uint256 projectShare = (contractEthBalance * 90) / 100;

        // Transfer to DevOps wallet
        (bool successDevOps, ) = DevOps.call{value: devOpsShare}("");
        require(successDevOps, "Transfer to DevOps failed");

        // Transfer to ProjectWallet
        (bool successProject, ) = ProjectWallet.call{value: projectShare}("");
        require(successProject, "Transfer to ProjectWallet failed");
    }

    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":"amount","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":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"uint256","name":"newBuyTaxRate","type":"uint256"},{"internalType":"uint256","name":"newSellTaxRate","type":"uint256"}],"name":"adjustTaxRates","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"disableLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"executeManualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getFeeRates","outputs":[{"internalType":"uint256","name":"buyTax","type":"uint256"},{"internalType":"uint256","name":"sellTax","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxValue","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletHoldings","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"recoverTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"setExcludedAccount","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":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126012600a6200068d565b620000209061c350620006a4565b600455620000316012600a6200068d565b62000040906216e360620006a4565b600755620000516012600a6200068d565b62000060906216e360620006a4565b600855601e600a819055600b556014805460ff60a01b1916905534801562000086575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600e80546001600160a01b0319908116731ea8f412dd2f17be2048880c18f5ee5c1d6dca951790915560108054821673fdf7ad778f7bdf8f8e1b49f2067dc54523a0abc81790556011805482167323545ecdc9eace9f93bb4006047c00ce047b91fe17905560128054821673921b6bb12a25275a03fea22e419c82f2b56f9a51178155601380548316739ab15eb4665ae4be78bcb04ff09d30d6269838ce179055601480548316734c6ae48aecc3251e2de83b1098b7b866bf6b6dfb179055600f80549092167381a19e3bc368f67cdee79b48cd78b82c7aae43ae179091555f90606490620001b890600a6200068d565b620001c8906305f5e100620006a4565b620001d5906041620006a4565b620001e19190620006be565b90505f6064620001f46012600a6200068d565b62000204906305f5e100620006a4565b62000211906002620006a4565b6200021d9190620006be565b90505f6064620002306012600a6200068d565b62000240906305f5e100620006a4565b6200024d90600a620006a4565b620002599190620006be565b90505f60646200026c6012600a6200068d565b6200027c906305f5e100620006a4565b62000289906005620006a4565b620002959190620006be565b90505f6064620002a86012600a6200068d565b620002b8906305f5e100620006a4565b620002c5906005620006a4565b620002d19190620006be565b90505f6064620002e46012600a6200068d565b620002f4906305f5e100620006a4565b62000301906008620006a4565b6200030d9190620006be565b90505f6064620003206012600a6200068d565b62000330906305f5e100620006a4565b6200033d906005620006a4565b620003499190620006be565b305f8181526001602081815260408084208d9055600e80546001600160a01b0390811686528286208e905560108054821687528387208e905560118054831688528488208e905560128054841689528589208e90556013805485168a52868a208e90556014805486168b52878b208d9055338b5260038952878b208a90558b8b52878b208a9055955485168a52868a20899055925484168952858920889055905483168852848820879055548216875283872086905554811686528286208590559054168452808420929092556005839055600683905590518b8152939450919290915f805160206200216a833981519152910160405180910390a3600e546040518781526001600160a01b03909116905f905f805160206200216a8339815191529060200160405180910390a36010546040518681526001600160a01b03909116905f905f805160206200216a8339815191529060200160405180910390a36011546040518581526001600160a01b03909116905f905f805160206200216a8339815191529060200160405180910390a36012546040518481526001600160a01b03909116905f905f805160206200216a8339815191529060200160405180910390a36013546040518381526001600160a01b03909116905f905f805160206200216a8339815191529060200160405180910390a36014546040518281526001600160a01b03909116905f905f805160206200216a8339815191529060200160405180910390a350505050505050620006de565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620005d257815f1904821115620005b657620005b66200057e565b80851615620005c457918102915b93841c939080029062000597565b509250929050565b5f82620005ea5750600162000687565b81620005f857505f62000687565b81600181146200061157600281146200061c576200063c565b600191505062000687565b60ff8411156200063057620006306200057e565b50506001821b62000687565b5060208310610133831016604e8410600b841016171562000661575081810a62000687565b6200066d838362000592565b805f19048211156200068357620006836200057e565b0290505b92915050565b5f6200069d60ff841683620005da565b9392505050565b80820281158282048414176200068757620006876200057e565b5f82620006d957634e487b7160e01b5f52601260045260245ffd5b500490565b611a7e80620006ec5f395ff3fe60806040526004361061013f575f3560e01c80638da5cb5b116100b3578063b7ea78b51161006d578063b7ea78b514610397578063d6e7a55e146103ac578063dd62ed3e146103d3578063e8eecf4c14610417578063f2fde38b1461042c578063f928364c1461044b575f80fd5b80638da5cb5b146102e957806395d89b4114610305578063a0ef91df14610331578063a9059cbb14610345578063aabc60d614610364578063b77f39fe14610383575f80fd5b8063301c3d5c11610104578063301c3d5c14610211578063313ce56714610230578063477ce99b1461024b57806349bd5a5e1461026a57806370a08231146102a1578063715018a6146102d5575f80fd5b806306fdde031461014a578063095ea7b31461018b57806318160ddd146101ba57806323b872dd146101dc578063293230b8146101fb575f80fd5b3661014657005b5f80fd5b348015610155575f80fd5b506040805180820190915260078152664175726b20414960c81b60208201525b604051610182919061165e565b60405180910390f35b348015610196575f80fd5b506101aa6101a53660046116bd565b61045f565b6040519015158152602001610182565b3480156101c5575f80fd5b506101ce610475565b604051908152602001610182565b3480156101e7575f80fd5b506101aa6101f63660046116e7565b610495565b348015610206575f80fd5b5061020f61054a565b005b34801561021c575f80fd5b5061020f61022b3660046116bd565b6108eb565b34801561023b575f80fd5b5060405160128152602001610182565b348015610256575f80fd5b5061020f610265366004611725565b61092f565b348015610275575f80fd5b50600d54610289906001600160a01b031681565b6040516001600160a01b039091168152602001610182565b3480156102ac575f80fd5b506101ce6102bb36600461173c565b6001600160a01b03165f9081526001602052604090205490565b3480156102e0575f80fd5b5061020f61098e565b3480156102f4575f80fd5b505f546001600160a01b0316610289565b348015610310575f80fd5b506040805180820190915260048152634155524b60e01b6020820152610175565b34801561033c575f80fd5b5061020f6109ff565b348015610350575f80fd5b506101aa61035f3660046116bd565b610abf565b34801561036f575f80fd5b5061020f61037e36600461175e565b610acb565b34801561038e575f80fd5b5061020f610ba1565b3480156103a2575f80fd5b506101ce60085481565b3480156103b7575f80fd5b50600a54600b5460408051928352602083019190915201610182565b3480156103de575f80fd5b506101ce6103ed36600461177e565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610422575f80fd5b506101ce60075481565b348015610437575f80fd5b5061020f61044636600461173c565b610c38565b348015610456575f80fd5b5061020f610c6a565b5f61046b338484610ccf565b5060015b92915050565b5f6104826012600a6118a9565b610490906305f5e1006118b7565b905090565b5f6104a1848484610df2565b6001600160a01b0384165f9081526002602090815260408083203384529091529020545f19811461053f57828110156105325760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b61053f8533858403610ccf565b506001949350505050565b5f546001600160a01b031633146105735760405162461bcd60e51b8152600401610529906118ce565b601454600160a01b900460ff16156105cd5760405162461bcd60e51b815260206004820152601a60248201527f54726164696e6720697320616c726561647920656e61626c65640000000000006044820152606401610529565b600c80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801561062f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106539190611903565b6001600160a01b031663c9c6539630600c5f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106b2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106d69190611903565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610720573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107449190611903565b600d80546001600160a01b0319166001600160a01b03928316179055600c54610789913091166107766012600a6118a9565b610784906305f5e1006118b7565b610ccf565b600c546001600160a01b031663f305d71947306107ba816001600160a01b03165f9081526001602052604090205490565b5f806107cd5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610833573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610858919061191e565b5050600d54600c5460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af11580156108ad573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108d19190611949565b506014805460ff60a01b1916600160a01b17905543600955565b5f546001600160a01b031633146109145760405162461bcd60e51b8152600401610529906118ce565b6001600160a01b039091165f90815260036020526040902055565b5f546001600160a01b031633146109585760405162461bcd60e51b8152600401610529906118ce565b305f9081526001602052604081205490606461097483856118b7565b61097e9190611968565b905061098981611157565b505050565b5f546001600160a01b031633146109b75760405162461bcd60e51b8152600401610529906118ce565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b03163314610a285760405162461bcd60e51b8152600401610529906118ce565b5f80546040516001600160a01b039091169047908381818185875af1925050503d805f8114610a72576040519150601f19603f3d011682016040523d82523d5f602084013e610a77565b606091505b5050905080610abc5760405162461bcd60e51b815260206004820152601160248201527014995cd8dd59481155120819985a5b1959607a1b6044820152606401610529565b50565b5f61046b338484610df2565b5f546001600160a01b03163314610af45760405162461bcd60e51b8152600401610529906118ce565b6064821115610b455760405162461bcd60e51b815260206004820152601f60248201527f4275792074617820726174652063616e6e6f74206578636565642031303025006044820152606401610529565b6064811115610b965760405162461bcd60e51b815260206004820181905260248201527f53656c6c2074617820726174652063616e6e6f742065786365656420313030256044820152606401610529565b600a91909155600b55565b5f546001600160a01b03163314610bca5760405162461bcd60e51b8152600401610529906118ce565b305f9081526001602052604090205480610c1c5760405162461bcd60e51b81526020600482015260136024820152724e6f20746f6b656e7320746f2072657363756560681b6044820152606401610529565b610abc30610c315f546001600160a01b031690565b835f6114a5565b5f546001600160a01b03163314610c615760405162461bcd60e51b8152600401610529906118ce565b610abc816115a0565b5f546001600160a01b03163314610c935760405162461bcd60e51b8152600401610529906118ce565b610c9f6012600a6118a9565b610cad906305f5e1006118b7565b600755610cbc6012600a6118a9565b610cca906305f5e1006118b7565b600855565b6001600160a01b038316610d315760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610529565b6001600160a01b038216610d925760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610529565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610e565760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610529565b5f8111610ebe5760405162461bcd60e51b815260206004820152603060248201527f45524332303a207472616e7366657220616d6f756e74206d757374206265206760448201526f726561746572207468616e207a65726f60801b6064820152608401610529565b6001600160a01b0383165f90815260036020526040812054158015610ef857506001600160a01b0383165f90815260036020526040902054155b1561114557601454600160a01b900460ff16610f565760405162461bcd60e51b815260206004820152601a60248201527f54726164696e67206973206e6f7420656e61626c6564207965740000000000006044820152606401610529565b600754821115610fbd5760405162461bcd60e51b815260206004820152602c60248201527f5472616e73616374696f6e20616d6f756e74206578636565647320746865206d60448201526b185e1a5b5d5b481b1a5b5a5d60a21b6064820152608401610529565b600d546001600160a01b03848116911614801590610fe657506001600160a01b03831661dead14155b15611078576008548261100d856001600160a01b03165f9081526001602052604090205490565b6110179190611987565b11156110785760405162461bcd60e51b815260206004820152602a60248201527f526563697069656e742077616c6c6574206578636565647320746865206d61786044820152691a5b5d5b481b1a5b5a5d60b21b6064820152608401610529565b600954611086906003611987565b4310156110b657600d546001600160a01b038581169116146110a957601e6110ac565b601e5b60ff169050611145565b600d546001600160a01b03908116908516036110d55750600a54611145565b600d546001600160a01b039081169084160361114557305f908152600160205260409020546111066012600a6118a9565b611112906127106118b7565b81111561113f5760045483821115611128578391505b80821115611134578091505b61113d82611157565b505b5050600b545b611151848484846114a5565b50505050565b60055443036111cb576002600654106111b25760405162461bcd60e51b815260206004820152601f60248201527f4d6178696d756d2073776170732070657220626c6f636b2072656163686564006044820152606401610529565b60068054905f6111c18361199a565b91905055506111d5565b4360055560016006555b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611208576112086119b2565b6001600160a01b03928316602091820292909201810191909152600c54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561125f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112839190611903565b81600181518110611296576112966119b2565b6001600160a01b039283166020918202929092010152600c546112bc9130911684610ccf565b600c5460405163791ac94760e01b81526001600160a01b039091169063791ac947906112f49085905f908690309042906004016119c6565b5f604051808303815f87803b15801561130b575f80fd5b505af115801561131d573d5f803e3d5ffd5b504792505f91506064905061133383600a6118b7565b61133d9190611968565b90505f606461134d84605a6118b7565b6113579190611968565b600f546040519192505f916001600160a01b039091169084908381818185875af1925050503d805f81146113a6576040519150601f19603f3d011682016040523d82523d5f602084013e6113ab565b606091505b50509050806113fc5760405162461bcd60e51b815260206004820152601960248201527f5472616e7366657220746f204465764f7073206661696c6564000000000000006044820152606401610529565b600e546040515f916001600160a01b03169084908381818185875af1925050503d805f8114611446576040519150601f19603f3d011682016040523d82523d5f602084013e61144b565b606091505b505090508061149c5760405162461bcd60e51b815260206004820181905260248201527f5472616e7366657220746f2050726f6a65637457616c6c6574206661696c65646044820152606401610529565b50505050505050565b5f60646114b283856118b7565b6114bc9190611968565b90505f6114c98285611a35565b6001600160a01b0387165f908152600160205260408120805492935086929091906114f5908490611a35565b90915550506001600160a01b0385165f9081526001602052604081208054839290611521908490611987565b9091555050305f9081526001602052604081208054849290611544908490611987565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161159091815260200190565b60405180910390a3505050505050565b6001600160a01b0381166116055760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610529565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f6020808352835180828501525f5b818110156116895785810183015185820160400152820161166d565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610abc575f80fd5b5f80604083850312156116ce575f80fd5b82356116d9816116a9565b946020939093013593505050565b5f805f606084860312156116f9575f80fd5b8335611704816116a9565b92506020840135611714816116a9565b929592945050506040919091013590565b5f60208284031215611735575f80fd5b5035919050565b5f6020828403121561174c575f80fd5b8135611757816116a9565b9392505050565b5f806040838503121561176f575f80fd5b50508035926020909101359150565b5f806040838503121561178f575f80fd5b823561179a816116a9565b915060208301356117aa816116a9565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561180357815f19048211156117e9576117e96117b5565b808516156117f657918102915b93841c93908002906117ce565b509250929050565b5f826118195750600161046f565b8161182557505f61046f565b816001811461183b576002811461184557611861565b600191505061046f565b60ff841115611856576118566117b5565b50506001821b61046f565b5060208310610133831016604e8410600b8410161715611884575081810a61046f565b61188e83836117c9565b805f19048211156118a1576118a16117b5565b029392505050565b5f61175760ff84168361180b565b808202811582820484141761046f5761046f6117b5565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611913575f80fd5b8151611757816116a9565b5f805f60608486031215611930575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611959575f80fd5b81518015158114611757575f80fd5b5f8261198257634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111561046f5761046f6117b5565b5f600182016119ab576119ab6117b5565b5060010190565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611a145784516001600160a01b0316835293830193918301916001016119ef565b50506001600160a01b03969096166060850152505050608001529392505050565b8181038181111561046f5761046f6117b556fea26469706673582212208dbbb6f6aeccb38be53e5c89c46fde4f80b97b6a514e154b8d91822b75898a0d64736f6c63430008140033ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef

Deployed Bytecode

0x60806040526004361061013f575f3560e01c80638da5cb5b116100b3578063b7ea78b51161006d578063b7ea78b514610397578063d6e7a55e146103ac578063dd62ed3e146103d3578063e8eecf4c14610417578063f2fde38b1461042c578063f928364c1461044b575f80fd5b80638da5cb5b146102e957806395d89b4114610305578063a0ef91df14610331578063a9059cbb14610345578063aabc60d614610364578063b77f39fe14610383575f80fd5b8063301c3d5c11610104578063301c3d5c14610211578063313ce56714610230578063477ce99b1461024b57806349bd5a5e1461026a57806370a08231146102a1578063715018a6146102d5575f80fd5b806306fdde031461014a578063095ea7b31461018b57806318160ddd146101ba57806323b872dd146101dc578063293230b8146101fb575f80fd5b3661014657005b5f80fd5b348015610155575f80fd5b506040805180820190915260078152664175726b20414960c81b60208201525b604051610182919061165e565b60405180910390f35b348015610196575f80fd5b506101aa6101a53660046116bd565b61045f565b6040519015158152602001610182565b3480156101c5575f80fd5b506101ce610475565b604051908152602001610182565b3480156101e7575f80fd5b506101aa6101f63660046116e7565b610495565b348015610206575f80fd5b5061020f61054a565b005b34801561021c575f80fd5b5061020f61022b3660046116bd565b6108eb565b34801561023b575f80fd5b5060405160128152602001610182565b348015610256575f80fd5b5061020f610265366004611725565b61092f565b348015610275575f80fd5b50600d54610289906001600160a01b031681565b6040516001600160a01b039091168152602001610182565b3480156102ac575f80fd5b506101ce6102bb36600461173c565b6001600160a01b03165f9081526001602052604090205490565b3480156102e0575f80fd5b5061020f61098e565b3480156102f4575f80fd5b505f546001600160a01b0316610289565b348015610310575f80fd5b506040805180820190915260048152634155524b60e01b6020820152610175565b34801561033c575f80fd5b5061020f6109ff565b348015610350575f80fd5b506101aa61035f3660046116bd565b610abf565b34801561036f575f80fd5b5061020f61037e36600461175e565b610acb565b34801561038e575f80fd5b5061020f610ba1565b3480156103a2575f80fd5b506101ce60085481565b3480156103b7575f80fd5b50600a54600b5460408051928352602083019190915201610182565b3480156103de575f80fd5b506101ce6103ed36600461177e565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610422575f80fd5b506101ce60075481565b348015610437575f80fd5b5061020f61044636600461173c565b610c38565b348015610456575f80fd5b5061020f610c6a565b5f61046b338484610ccf565b5060015b92915050565b5f6104826012600a6118a9565b610490906305f5e1006118b7565b905090565b5f6104a1848484610df2565b6001600160a01b0384165f9081526002602090815260408083203384529091529020545f19811461053f57828110156105325760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b61053f8533858403610ccf565b506001949350505050565b5f546001600160a01b031633146105735760405162461bcd60e51b8152600401610529906118ce565b601454600160a01b900460ff16156105cd5760405162461bcd60e51b815260206004820152601a60248201527f54726164696e6720697320616c726561647920656e61626c65640000000000006044820152606401610529565b600c80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801561062f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106539190611903565b6001600160a01b031663c9c6539630600c5f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106b2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106d69190611903565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610720573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107449190611903565b600d80546001600160a01b0319166001600160a01b03928316179055600c54610789913091166107766012600a6118a9565b610784906305f5e1006118b7565b610ccf565b600c546001600160a01b031663f305d71947306107ba816001600160a01b03165f9081526001602052604090205490565b5f806107cd5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610833573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610858919061191e565b5050600d54600c5460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af11580156108ad573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108d19190611949565b506014805460ff60a01b1916600160a01b17905543600955565b5f546001600160a01b031633146109145760405162461bcd60e51b8152600401610529906118ce565b6001600160a01b039091165f90815260036020526040902055565b5f546001600160a01b031633146109585760405162461bcd60e51b8152600401610529906118ce565b305f9081526001602052604081205490606461097483856118b7565b61097e9190611968565b905061098981611157565b505050565b5f546001600160a01b031633146109b75760405162461bcd60e51b8152600401610529906118ce565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b03163314610a285760405162461bcd60e51b8152600401610529906118ce565b5f80546040516001600160a01b039091169047908381818185875af1925050503d805f8114610a72576040519150601f19603f3d011682016040523d82523d5f602084013e610a77565b606091505b5050905080610abc5760405162461bcd60e51b815260206004820152601160248201527014995cd8dd59481155120819985a5b1959607a1b6044820152606401610529565b50565b5f61046b338484610df2565b5f546001600160a01b03163314610af45760405162461bcd60e51b8152600401610529906118ce565b6064821115610b455760405162461bcd60e51b815260206004820152601f60248201527f4275792074617820726174652063616e6e6f74206578636565642031303025006044820152606401610529565b6064811115610b965760405162461bcd60e51b815260206004820181905260248201527f53656c6c2074617820726174652063616e6e6f742065786365656420313030256044820152606401610529565b600a91909155600b55565b5f546001600160a01b03163314610bca5760405162461bcd60e51b8152600401610529906118ce565b305f9081526001602052604090205480610c1c5760405162461bcd60e51b81526020600482015260136024820152724e6f20746f6b656e7320746f2072657363756560681b6044820152606401610529565b610abc30610c315f546001600160a01b031690565b835f6114a5565b5f546001600160a01b03163314610c615760405162461bcd60e51b8152600401610529906118ce565b610abc816115a0565b5f546001600160a01b03163314610c935760405162461bcd60e51b8152600401610529906118ce565b610c9f6012600a6118a9565b610cad906305f5e1006118b7565b600755610cbc6012600a6118a9565b610cca906305f5e1006118b7565b600855565b6001600160a01b038316610d315760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610529565b6001600160a01b038216610d925760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610529565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610e565760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610529565b5f8111610ebe5760405162461bcd60e51b815260206004820152603060248201527f45524332303a207472616e7366657220616d6f756e74206d757374206265206760448201526f726561746572207468616e207a65726f60801b6064820152608401610529565b6001600160a01b0383165f90815260036020526040812054158015610ef857506001600160a01b0383165f90815260036020526040902054155b1561114557601454600160a01b900460ff16610f565760405162461bcd60e51b815260206004820152601a60248201527f54726164696e67206973206e6f7420656e61626c6564207965740000000000006044820152606401610529565b600754821115610fbd5760405162461bcd60e51b815260206004820152602c60248201527f5472616e73616374696f6e20616d6f756e74206578636565647320746865206d60448201526b185e1a5b5d5b481b1a5b5a5d60a21b6064820152608401610529565b600d546001600160a01b03848116911614801590610fe657506001600160a01b03831661dead14155b15611078576008548261100d856001600160a01b03165f9081526001602052604090205490565b6110179190611987565b11156110785760405162461bcd60e51b815260206004820152602a60248201527f526563697069656e742077616c6c6574206578636565647320746865206d61786044820152691a5b5d5b481b1a5b5a5d60b21b6064820152608401610529565b600954611086906003611987565b4310156110b657600d546001600160a01b038581169116146110a957601e6110ac565b601e5b60ff169050611145565b600d546001600160a01b03908116908516036110d55750600a54611145565b600d546001600160a01b039081169084160361114557305f908152600160205260409020546111066012600a6118a9565b611112906127106118b7565b81111561113f5760045483821115611128578391505b80821115611134578091505b61113d82611157565b505b5050600b545b611151848484846114a5565b50505050565b60055443036111cb576002600654106111b25760405162461bcd60e51b815260206004820152601f60248201527f4d6178696d756d2073776170732070657220626c6f636b2072656163686564006044820152606401610529565b60068054905f6111c18361199a565b91905055506111d5565b4360055560016006555b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611208576112086119b2565b6001600160a01b03928316602091820292909201810191909152600c54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561125f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112839190611903565b81600181518110611296576112966119b2565b6001600160a01b039283166020918202929092010152600c546112bc9130911684610ccf565b600c5460405163791ac94760e01b81526001600160a01b039091169063791ac947906112f49085905f908690309042906004016119c6565b5f604051808303815f87803b15801561130b575f80fd5b505af115801561131d573d5f803e3d5ffd5b504792505f91506064905061133383600a6118b7565b61133d9190611968565b90505f606461134d84605a6118b7565b6113579190611968565b600f546040519192505f916001600160a01b039091169084908381818185875af1925050503d805f81146113a6576040519150601f19603f3d011682016040523d82523d5f602084013e6113ab565b606091505b50509050806113fc5760405162461bcd60e51b815260206004820152601960248201527f5472616e7366657220746f204465764f7073206661696c6564000000000000006044820152606401610529565b600e546040515f916001600160a01b03169084908381818185875af1925050503d805f8114611446576040519150601f19603f3d011682016040523d82523d5f602084013e61144b565b606091505b505090508061149c5760405162461bcd60e51b815260206004820181905260248201527f5472616e7366657220746f2050726f6a65637457616c6c6574206661696c65646044820152606401610529565b50505050505050565b5f60646114b283856118b7565b6114bc9190611968565b90505f6114c98285611a35565b6001600160a01b0387165f908152600160205260408120805492935086929091906114f5908490611a35565b90915550506001600160a01b0385165f9081526001602052604081208054839290611521908490611987565b9091555050305f9081526001602052604081208054849290611544908490611987565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161159091815260200190565b60405180910390a3505050505050565b6001600160a01b0381166116055760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610529565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f6020808352835180828501525f5b818110156116895785810183015185820160400152820161166d565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610abc575f80fd5b5f80604083850312156116ce575f80fd5b82356116d9816116a9565b946020939093013593505050565b5f805f606084860312156116f9575f80fd5b8335611704816116a9565b92506020840135611714816116a9565b929592945050506040919091013590565b5f60208284031215611735575f80fd5b5035919050565b5f6020828403121561174c575f80fd5b8135611757816116a9565b9392505050565b5f806040838503121561176f575f80fd5b50508035926020909101359150565b5f806040838503121561178f575f80fd5b823561179a816116a9565b915060208301356117aa816116a9565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561180357815f19048211156117e9576117e96117b5565b808516156117f657918102915b93841c93908002906117ce565b509250929050565b5f826118195750600161046f565b8161182557505f61046f565b816001811461183b576002811461184557611861565b600191505061046f565b60ff841115611856576118566117b5565b50506001821b61046f565b5060208310610133831016604e8410600b8410161715611884575081810a61046f565b61188e83836117c9565b805f19048211156118a1576118a16117b5565b029392505050565b5f61175760ff84168361180b565b808202811582820484141761046f5761046f6117b5565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611913575f80fd5b8151611757816116a9565b5f805f60608486031215611930575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611959575f80fd5b81518015158114611757575f80fd5b5f8261198257634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111561046f5761046f6117b5565b5f600182016119ab576119ab6117b5565b5060010190565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611a145784516001600160a01b0316835293830193918301916001016119ef565b50506001600160a01b03969096166060850152505050608001529392505050565b8181038181111561046f5761046f6117b556fea26469706673582212208dbbb6f6aeccb38be53e5c89c46fde4f80b97b6a514e154b8d91822b75898a0d64736f6c63430008140033

Deployed Bytecode Sourcemap

3767:12644:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7658:88;;;;;;;;;;-1:-1:-1;7728:10:0;;;;;;;;;;;;-1:-1:-1;;;7728:10:0;;;;7658:88;;;;;;;:::i;:::-;;;;;;;;8810:198;;;;;;;;;;-1:-1:-1;8810:198:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;8810:198:0;1023:187:1;7950:100:0;;;;;;;;;;;;;:::i;:::-;;;1361:25:1;;;1349:2;1334:18;7950:100:0;1215:177:1;9016:624:0;;;;;;;;;;-1:-1:-1;9016:624:0;;;;;:::i;:::-;;:::i;10080:887::-;;;;;;;;;;;;;:::i;:::-;;11011:155;;;;;;;;;;-1:-1:-1;11011:155:0;;;;;:::i;:::-;;:::i;7854:88::-;;;;;;;;;;-1:-1:-1;7854:88:0;;3961:2;2000:36:1;;1988:2;1973:18;7854:88:0;1858:184:1;14619:251:0;;;;;;;;;;-1:-1:-1;14619:251:0;;;;;:::i;:::-;;:::i;4837:28::-;;;;;;;;;;-1:-1:-1;4837:28:0;;;;-1:-1:-1;;;;;4837:28:0;;;;;;-1:-1:-1;;;;;2396:32:1;;;2378:51;;2366:2;2351:18;4837:28:0;2232:203:1;8277:119:0;;;;;;;;;;-1:-1:-1;8277:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;8370:18:0;8343:7;8370:18;;;:9;:18;;;;;;;8277:119;2718:164;;;;;;;;;;;;;:::i;1863:87::-;;;;;;;;;;-1:-1:-1;1901:7:0;1928:14;-1:-1:-1;;;;;1928:14:0;1863:87;;7754:92;;;;;;;;;;-1:-1:-1;7826:12:0;;;;;;;;;;;;-1:-1:-1;;;7826:12:0;;;;7754:92;;14110:174;;;;;;;;;;;;;:::i;8404:206::-;;;;;;;;;;-1:-1:-1;8404:206:0;;;;;:::i;:::-;;:::i;11371:351::-;;;;;;;;;;-1:-1:-1;11371:351:0;;;;;:::i;:::-;;:::i;14321:268::-;;;;;;;;;;;;;:::i;4574:63::-;;;;;;;;;;;;;;;;8088:181;;;;;;;;;;-1:-1:-1;8219:10:0;;8250:11;;8088:181;;;3119:25:1;;;3175:2;3160:18;;3153:34;;;;3092:18;8088:181:0;2945:248:1;8618:184:0;;;;;;;;;;-1:-1:-1;8618:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;8767:18:0;;;8735:7;8767:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8618:184;4495:56;;;;;;;;;;;;;;;;2237:107;;;;;;;;;;-1:-1:-1;2237:107:0;;;;;:::i;:::-;;:::i;11207:131::-;;;;;;;;;;;;;:::i;8810:198::-;8912:4;8934:44;1386:10;8962:7;8971:6;8934:13;:44::i;:::-;-1:-1:-1;8996:4:0;8810:198;;;;;:::o;7950:100::-;8003:7;4022:18;3961:2;4022;:18;:::i;:::-;4010:30;;:9;:30;:::i;:::-;8023:19;;7950:100;:::o;9016:624::-;9148:4;9165:43;9182:6;9190:9;9201:6;9165:16;:43::i;:::-;-1:-1:-1;;;;;9248:19:0;;9221:24;9248:19;;;:11;:19;;;;;;;;1386:10;9248:33;;;;;;;;-1:-1:-1;;9296:37:0;;9292:319;;9396:6;9376:16;:26;;9350:128;;;;-1:-1:-1;;;9350:128:0;;5481:2:1;9350:128:0;;;5463:21:1;5520:2;5500:18;;;5493:30;5559:34;5539:18;;;5532:62;-1:-1:-1;;;5610:18:1;;;5603:38;5658:19;;9350:128:0;;;;;;;;;9522:62;9536:6;1386:10;9577:6;9558:16;:25;9522:13;:62::i;:::-;-1:-1:-1;9628:4:0;;9016:624;-1:-1:-1;;;;9016:624:0:o;10080:887::-;2012:14;;-1:-1:-1;;;;;2012:14:0;1386:10;2012:30;1990:112;;;;-1:-1:-1;;;1990:112:0;;;;;;;:::i;:::-;10143:16:::1;::::0;-1:-1:-1;;;10143:16:0;::::1;;;10142:17;10134:56;;;::::0;-1:-1:-1;;;10134:56:0;;6251:2:1;10134:56:0::1;::::0;::::1;6233:21:1::0;6290:2;6270:18;;;6263:30;6329:28;6309:18;;;6302:56;6375:18;;10134:56:0::1;6049:350:1::0;10134:56:0::1;10201:16;:105:::0;;-1:-1:-1;;;;;;10201:105:0::1;10253:42;10201:105:::0;;::::1;::::0;;;10353:26:::1;::::0;;-1:-1:-1;;;10353:26:0;;;;:24:::1;::::0;:26:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;10253:42;10353:26:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10335:70:0::1;;10414:4;10421:16;;;;;;;;;-1:-1:-1::0;;;;;10421:16:0::1;-1:-1:-1::0;;;;;10421:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10335:110;::::0;-1:-1:-1;;;;;;10335:110:0::1;::::0;;;;;;-1:-1:-1;;;;;6890:15:1;;;10335:110:0::1;::::0;::::1;6872:34:1::0;6942:15;;6922:18;;;6915:43;6807:18;;10335:110:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10319:13;:126:::0;;-1:-1:-1;;;;;;10319:126:0::1;-1:-1:-1::0;;;;;10319:126:0;;::::1;;::::0;;10493:16:::1;::::0;10456:69:::1;::::0;10478:4:::1;::::0;10493:16:::1;4022:18;3961:2;4022;:18;:::i;:::-;4010:30;::::0;:9:::1;:30;:::i;:::-;10456:13;:69::i;:::-;10538:16;::::0;-1:-1:-1;;;;;10538:16:0::1;:32;10578:21;10623:4;10643:24;10623:4:::0;-1:-1:-1;;;;;8370:18:0;8343:7;8370:18;;;:9;:18;;;;;;;8277:119;10643:24:::1;10682:1;10698::::0;10714:7:::1;1901::::0;1928:14;-1:-1:-1;;;;;1928:14:0;;1863:87;10714:7:::1;10538:224;::::0;::::1;::::0;;;-1:-1:-1;;;;;;10538:224:0;;;-1:-1:-1;;;;;7328:15:1;;;10538:224:0::1;::::0;::::1;7310:34:1::0;7360:18;;;7353:34;;;;7403:18;;;7396:34;;;;7446:18;;;7439:34;7510:15;;;7489:19;;;7482:44;10736:15:0::1;7542:19:1::0;;;7535:35;7244:19;;10538:224:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;10782:13:0::1;::::0;10827:16:::1;::::0;10775:112:::1;::::0;-1:-1:-1;;;10775:112:0;;-1:-1:-1;;;;;10827:16:0;;::::1;10775:112;::::0;::::1;8066:51:1::0;-1:-1:-1;;8133:18:1;;;8126:34;10782:13:0;::::1;::::0;-1:-1:-1;10775:29:0::1;::::0;8039:18:1;;10775:112:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;10898:16:0::1;:23:::0;;-1:-1:-1;;;;10898:23:0::1;-1:-1:-1::0;;;10898:23:0::1;::::0;;10947:12:::1;10932;:27:::0;10080:887::o;11011:155::-;2012:14;;-1:-1:-1;;;;;2012:14:0;1386:10;2012:30;1990:112;;;;-1:-1:-1;;;1990:112:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11124:26:0;;::::1;;::::0;;;:17:::1;:26;::::0;;;;:34;11011:155::o;14619:251::-;2012:14;;-1:-1:-1;;;;;2012:14:0;1386:10;2012:30;1990:112;;;;-1:-1:-1;;;1990:112:0;;;;;;;:::i;:::-;14742:4:::1;14693:28;8370:18:::0;;;:9;:18;;;;;;;14815:3:::1;14781:30;8370:18:::0;14781:7;:30:::1;:::i;:::-;14780:38;;;;:::i;:::-;14759:59;;14829:33;14851:10;14829:21;:33::i;:::-;14682:188;;14619:251:::0;:::o;2718:164::-;2012:14;;-1:-1:-1;;;;;2012:14:0;1386:10;2012:30;1990:112;;;;-1:-1:-1;;;1990:112:0;;;;;;;:::i;:::-;2833:1:::1;2809:14:::0;;2788:48:::1;::::0;-1:-1:-1;;;;;2809:14:0;;::::1;::::0;2788:48:::1;::::0;2833:1;;2788:48:::1;2872:1;2847:27:::0;;-1:-1:-1;;;;;;2847:27:0::1;::::0;;2718:164::o;14110:174::-;2012:14;;-1:-1:-1;;;;;2012:14:0;1386:10;2012:30;1990:112;;;;-1:-1:-1;;;1990:112:0;;;;;;;:::i;:::-;14164:12:::1;1928:14:::0;;14182:46:::1;::::0;-1:-1:-1;;;;;1928:14:0;;;;14202:21:::1;::::0;14164:12;14182:46;14164:12;14182:46;14202:21;1928:14;14182:46:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14163:65;;;14247:7;14239:37;;;::::0;-1:-1:-1;;;14239:37:0;;9087:2:1;14239:37:0::1;::::0;::::1;9069:21:1::0;9126:2;9106:18;;;9099:30;-1:-1:-1;;;9145:18:1;;;9138:47;9202:18;;14239:37:0::1;8885:341:1::0;14239:37:0::1;14152:132;14110:174::o:0;8404:206::-;8509:4;8531:49;1386:10;8562:9;8573:6;8531:16;:49::i;11371:351::-;2012:14;;-1:-1:-1;;;;;2012:14:0;1386:10;2012:30;1990:112;;;;-1:-1:-1;;;1990:112:0;;;;;;;:::i;:::-;11520:3:::1;11503:13;:20;;11495:64;;;::::0;-1:-1:-1;;;11495:64:0;;9433:2:1;11495:64:0::1;::::0;::::1;9415:21:1::0;9472:2;9452:18;;;9445:30;9511:33;9491:18;;;9484:61;9562:18;;11495:64:0::1;9231:355:1::0;11495:64:0::1;11596:3;11578:14;:21;;11570:66;;;::::0;-1:-1:-1;;;11570:66:0;;9793:2:1;11570:66:0::1;::::0;::::1;9775:21:1::0;;;9812:18;;;9805:30;9871:34;9851:18;;;9844:62;9923:18;;11570:66:0::1;9591:356:1::0;11570:66:0::1;11649:10;:26:::0;;;;11686:11:::1;:28:::0;11371:351::o;14321:268::-;2012:14;;-1:-1:-1;;;;;2012:14:0;1386:10;2012:30;1990:112;;;;-1:-1:-1;;;1990:112:0;;;;;;;:::i;:::-;14425:4:::1;14376:28;8370:18:::0;;;:9;:18;;;;;;14450:24;14442:56:::1;;;::::0;-1:-1:-1;;;14442:56:0;;10154:2:1;14442:56:0::1;::::0;::::1;10136:21:1::0;10193:2;10173:18;;;10166:30;-1:-1:-1;;;10212:18:1;;;10205:49;10271:18;;14442:56:0::1;9952:343:1::0;14442:56:0::1;14511:70;14541:4;14548:7;1901::::0;1928:14;-1:-1:-1;;;;;1928:14:0;;1863:87;14548:7:::1;14557:20;14579:1;14511:21;:70::i;2237:107::-:0;2012:14;;-1:-1:-1;;;;;2012:14:0;1386:10;2012:30;1990:112;;;;-1:-1:-1;;;1990:112:0;;;;;;;:::i;:::-;2310:26:::1;2327:8;2310:16;:26::i;11207:131::-:0;2012:14;;-1:-1:-1;;;;;2012:14:0;1386:10;2012:30;1990:112;;;;-1:-1:-1;;;1990:112:0;;;;;;;:::i;:::-;4022:18:::1;3961:2;4022;:18;:::i;:::-;4010:30;::::0;:9:::1;:30;:::i;:::-;11262:10;:25:::0;4022:18:::1;3961:2;4022;:18;:::i;:::-;4010:30;::::0;:9:::1;:30;:::i;:::-;11298:17;:32:::0;11207:131::o;9648:374::-;-1:-1:-1;;;;;9780:19:0;;9772:68;;;;-1:-1:-1;;;9772:68:0;;10502:2:1;9772:68:0;;;10484:21:1;10541:2;10521:18;;;10514:30;10580:34;10560:18;;;10553:62;-1:-1:-1;;;10631:18:1;;;10624:34;10675:19;;9772:68:0;10300:400:1;9772:68:0;-1:-1:-1;;;;;9859:21:0;;9851:68;;;;-1:-1:-1;;;9851:68:0;;10907:2:1;9851:68:0;;;10889:21:1;10946:2;10926:18;;;10919:30;10985:34;10965:18;;;10958:62;-1:-1:-1;;;11036:18:1;;;11029:32;11078:19;;9851:68:0;10705:398:1;9851:68:0;-1:-1:-1;;;;;9930:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9982:32;;1361:25:1;;;9982:32:0;;1334:18:1;9982:32:0;;;;;;;9648:374;;;:::o;12244:1832::-;-1:-1:-1;;;;;12373:18:0;;12365:68;;;;-1:-1:-1;;;12365:68:0;;11310:2:1;12365:68:0;;;11292:21:1;11349:2;11329:18;;;11322:30;11388:34;11368:18;;;11361:62;-1:-1:-1;;;11439:18:1;;;11432:35;11484:19;;12365:68:0;11108:401:1;12365:68:0;12461:1;12452:6;:10;12444:71;;;;-1:-1:-1;;;12444:71:0;;11716:2:1;12444:71:0;;;11698:21:1;11755:2;11735:18;;;11728:30;11794:34;11774:18;;;11767:62;-1:-1:-1;;;11845:18:1;;;11838:46;11901:19;;12444:71:0;11514:412:1;12444:71:0;-1:-1:-1;;;;;12564:23:0;;12528:15;12564:23;;;:17;:23;;;;;;:28;:58;;;;-1:-1:-1;;;;;;12596:21:0;;;;;;:17;:21;;;;;;:26;12564:58;12560:1450;;;12647:16;;-1:-1:-1;;;12647:16:0;;;;12639:55;;;;-1:-1:-1;;;12639:55:0;;12133:2:1;12639:55:0;;;12115:21:1;12172:2;12152:18;;;12145:30;12211:28;12191:18;;;12184:56;12257:18;;12639:55:0;11931:350:1;12639:55:0;12745:10;;12735:6;:20;;12709:126;;;;-1:-1:-1;;;12709:126:0;;12488:2:1;12709:126:0;;;12470:21:1;12527:2;12507:18;;;12500:30;12566:34;12546:18;;;12539:62;-1:-1:-1;;;12617:18:1;;;12610:42;12669:19;;12709:126:0;12286:408:1;12709:126:0;12862:13;;-1:-1:-1;;;;;12856:19:0;;;12862:13;;12856:19;;;;:44;;-1:-1:-1;;;;;;12879:21:0;;12893:6;12879:21;;12856:44;12852:244;;;12977:17;;12967:6;12951:13;12961:2;-1:-1:-1;;;;;8370:18:0;8343:7;8370:18;;;:9;:18;;;;;;;8277:119;12951:13;:22;;;;:::i;:::-;:43;;12921:159;;;;-1:-1:-1;;;12921:159:0;;13031:2:1;12921:159:0;;;13013:21:1;13070:2;13050:18;;;13043:30;13109:34;13089:18;;;13082:62;-1:-1:-1;;;13160:18:1;;;13153:40;13210:19;;12921:159:0;12829:406:1;12921:159:0;13131:12;;:16;;13146:1;13131:16;:::i;:::-;13116:12;:31;13112:887;;;13187:13;;-1:-1:-1;;;;;13179:21:0;;;13187:13;;13179:21;13178:33;;13209:2;13178:33;;;13204:2;13178:33;13168:43;;;;13112:887;;;13264:13;;-1:-1:-1;;;;;13264:13:0;;;13256:21;;;;13252:732;;-1:-1:-1;13312:10:0;;13252:732;;;13358:13;;-1:-1:-1;;;;;13358:13:0;;;13352:19;;;;13348:636;;13445:4;13396:28;8370:18;;;:9;:18;;;;;;4287;3961:2;4287;:18;:::i;:::-;4279:26;;:5;:26;:::i;:::-;13478:20;:37;13474:447;;;13565:14;;13610:29;;;13606:93;;;13693:6;13670:29;;13606:93;13753:10;13730:20;:33;13726:101;;;13817:10;13794:33;;13726:101;13854:43;13876:20;13854:21;:43::i;:::-;13517:404;13474:447;-1:-1:-1;;13953:11:0;;13348:636;14020:48;14042:4;14048:2;14052:6;14060:7;14020:21;:48::i;:::-;12354:1722;12244:1832;;;:::o;14900:1471::-;15035:14;;15019:12;:30;15015:338;;15148:1;15135:10;;:14;15127:58;;;;-1:-1:-1;;;15127:58:0;;13442:2:1;15127:58:0;;;13424:21:1;13481:2;13461:18;;;13454:30;13520:33;13500:18;;;13493:61;13571:18;;15127:58:0;13240:355:1;15127:58:0;15200:10;:12;;;:10;:12;;;:::i;:::-;;;;;;15015:338;;;15300:12;15283:14;:29;15340:1;15327:10;:14;15015:338;15389:16;;;15403:1;15389:16;;;;;;;;15365:21;;15389:16;;;;;;;;;;-1:-1:-1;15389:16:0;15365:40;;15434:4;15416;15421:1;15416:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;15416:23:0;;;:7;;;;;;;;;;:23;;;;15460:16;;:23;;;-1:-1:-1;;;15460:23:0;;;;:16;;;;;:21;;:23;;;;;15416:7;;15460:23;;;;;:16;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15450:4;15455:1;15450:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;15450:33:0;;;:7;;;;;;;;;:33;15533:16;;15496:68;;15518:4;;15533:16;15552:11;15496:13;:68::i;:::-;15577:16;;:197;;-1:-1:-1;;;15577:197:0;;-1:-1:-1;;;;;15577:16:0;;;;:67;;:197;;15659:11;;15577:16;;15701:4;;15728;;15748:15;;15577:197;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15816:21:0;;-1:-1:-1;15787:26:0;;-1:-1:-1;15931:3:0;;-1:-1:-1;15904:23:0;15816:21;15925:2;15904:23;:::i;:::-;15903:31;;;;:::i;:::-;15881:53;-1:-1:-1;15946:20:0;15997:3;15970:23;:18;15991:2;15970:23;:::i;:::-;15969:31;;;;:::i;:::-;16076:6;;:35;;15946:54;;-1:-1:-1;16052:18:0;;-1:-1:-1;;;;;16076:6:0;;;;16095:11;;16052:18;16076:35;16052:18;16076:35;16095:11;16076:6;:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16051:60;;;16130:13;16122:51;;;;-1:-1:-1;;;16122:51:0;;15191:2:1;16122:51:0;;;15173:21:1;15230:2;15210:18;;;15203:30;15269:27;15249:18;;;15242:55;15314:18;;16122:51:0;14989:349:1;16122:51:0;16250:13;;:43;;16225:19;;-1:-1:-1;;;;;16250:13:0;;16276:12;;16225:19;16250:43;16225:19;16250:43;16276:12;16250:13;:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16224:69;;;16312:14;16304:59;;;;-1:-1:-1;;;16304:59:0;;15545:2:1;16304:59:0;;;15527:21:1;;;15564:18;;;15557:30;15623:34;15603:18;;;15596:62;15675:18;;16304:59:0;15343:356:1;16304:59:0;14960:1411;;;;;;14900:1471;:::o;11773:438::-;11925:17;11966:3;11946:16;11955:7;11946:6;:16;:::i;:::-;11945:24;;;;:::i;:::-;11925:44;-1:-1:-1;11980:22:0;12005:18;11925:44;12005:6;:18;:::i;:::-;-1:-1:-1;;;;;12036:15:0;;;;;;:9;:15;;;;;:25;;11980:43;;-1:-1:-1;12055:6:0;;12036:15;;;:25;;12055:6;;12036:25;:::i;:::-;;;;-1:-1:-1;;;;;;;12072:13:0;;;;;;:9;:13;;;;;:31;;12089:14;;12072:13;:31;;12089:14;;12072:31;:::i;:::-;;;;-1:-1:-1;;12132:4:0;12114:24;;;;:9;:24;;;;;:37;;12142:9;;12114:24;:37;;12142:9;;12114:37;:::i;:::-;;;;;;;;12184:2;-1:-1:-1;;;;;12169:34:0;12178:4;-1:-1:-1;;;;;12169:34:0;;12188:14;12169:34;;;;1361:25:1;;1349:2;1334:18;;1215:177;12169:34:0;;;;;;;;11914:297;;11773:438;;;;:::o;2352:280::-;-1:-1:-1;;;;;2438:22:0;;2416:110;;;;-1:-1:-1;;;2416:110:0;;16039:2:1;2416:110:0;;;16021:21:1;16078:2;16058:18;;;16051:30;16117:34;16097:18;;;16090:62;-1:-1:-1;;;16168:18:1;;;16161:36;16214:19;;2416:110:0;15837:402:1;2416:110:0;2563:14;;;2542:46;;-1:-1:-1;;;;;2542:46:0;;;;2563:14;;;2542:46;;;2599:14;:25;;-1:-1:-1;;;;;;2599:25:0;-1:-1:-1;;;;;2599:25:0;;;;;;;;;;2352:280::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2047:180::-;2106:6;2159:2;2147:9;2138:7;2134:23;2130:32;2127:52;;;2175:1;2172;2165:12;2127:52;-1:-1:-1;2198:23:1;;2047:180;-1:-1:-1;2047:180:1:o;2440:247::-;2499:6;2552:2;2540:9;2531:7;2527:23;2523:32;2520:52;;;2568:1;2565;2558:12;2520:52;2607:9;2594:23;2626:31;2651:5;2626:31;:::i;:::-;2676:5;2440:247;-1:-1:-1;;;2440:247:1:o;2692:248::-;2760:6;2768;2821:2;2809:9;2800:7;2796:23;2792:32;2789:52;;;2837:1;2834;2827:12;2789:52;-1:-1:-1;;2860:23:1;;;2930:2;2915:18;;;2902:32;;-1:-1:-1;2692:248:1:o;3198:388::-;3266:6;3274;3327:2;3315:9;3306:7;3302:23;3298:32;3295:52;;;3343:1;3340;3333:12;3295:52;3382:9;3369:23;3401:31;3426:5;3401:31;:::i;:::-;3451:5;-1:-1:-1;3508:2:1;3493:18;;3480:32;3521:33;3480:32;3521:33;:::i;:::-;3573:7;3563:17;;;3198:388;;;;;:::o;3591:127::-;3652:10;3647:3;3643:20;3640:1;3633:31;3683:4;3680:1;3673:15;3707:4;3704:1;3697:15;3723:422;3812:1;3855:5;3812:1;3869:270;3890:7;3880:8;3877:21;3869:270;;;3949:4;3945:1;3941:6;3937:17;3931:4;3928:27;3925:53;;;3958:18;;:::i;:::-;4008:7;3998:8;3994:22;3991:55;;;4028:16;;;;3991:55;4107:22;;;;4067:15;;;;3869:270;;;3873:3;3723:422;;;;;:::o;4150:806::-;4199:5;4229:8;4219:80;;-1:-1:-1;4270:1:1;4284:5;;4219:80;4318:4;4308:76;;-1:-1:-1;4355:1:1;4369:5;;4308:76;4400:4;4418:1;4413:59;;;;4486:1;4481:130;;;;4393:218;;4413:59;4443:1;4434:10;;4457:5;;;4481:130;4518:3;4508:8;4505:17;4502:43;;;4525:18;;:::i;:::-;-1:-1:-1;;4581:1:1;4567:16;;4596:5;;4393:218;;4695:2;4685:8;4682:16;4676:3;4670:4;4667:13;4663:36;4657:2;4647:8;4644:16;4639:2;4633:4;4630:12;4626:35;4623:77;4620:159;;;-1:-1:-1;4732:19:1;;;4764:5;;4620:159;4811:34;4836:8;4830:4;4811:34;:::i;:::-;4881:6;4877:1;4873:6;4869:19;4860:7;4857:32;4854:58;;;4892:18;;:::i;:::-;4930:20;;4150:806;-1:-1:-1;;;4150:806:1:o;4961:140::-;5019:5;5048:47;5089:4;5079:8;5075:19;5069:4;5048:47;:::i;5106:168::-;5179:9;;;5210;;5227:15;;;5221:22;;5207:37;5197:71;;5248:18;;:::i;5688:356::-;5890:2;5872:21;;;5909:18;;;5902:30;5968:34;5963:2;5948:18;;5941:62;6035:2;6020:18;;5688:356::o;6404:251::-;6474:6;6527:2;6515:9;6506:7;6502:23;6498:32;6495:52;;;6543:1;6540;6533:12;6495:52;6575:9;6569:16;6594:31;6619:5;6594:31;:::i;7581:306::-;7669:6;7677;7685;7738:2;7726:9;7717:7;7713:23;7709:32;7706:52;;;7754:1;7751;7744:12;7706:52;7783:9;7777:16;7767:26;;7833:2;7822:9;7818:18;7812:25;7802:35;;7877:2;7866:9;7862:18;7856:25;7846:35;;7581:306;;;;;:::o;8171:277::-;8238:6;8291:2;8279:9;8270:7;8266:23;8262:32;8259:52;;;8307:1;8304;8297:12;8259:52;8339:9;8333:16;8392:5;8385:13;8378:21;8371:5;8368:32;8358:60;;8414:1;8411;8404:12;8453:217;8493:1;8519;8509:132;;8563:10;8558:3;8554:20;8551:1;8544:31;8598:4;8595:1;8588:15;8626:4;8623:1;8616:15;8509:132;-1:-1:-1;8655:9:1;;8453:217::o;12699:125::-;12764:9;;;12785:10;;;12782:36;;;12798:18;;:::i;13600:135::-;13639:3;13660:17;;;13657:43;;13680:18;;:::i;:::-;-1:-1:-1;13727:1:1;13716:13;;13600:135::o;13872:127::-;13933:10;13928:3;13924:20;13921:1;13914:31;13964:4;13961:1;13954:15;13988:4;13985:1;13978:15;14004:980;14266:4;14314:3;14303:9;14299:19;14345:6;14334:9;14327:25;14371:2;14409:6;14404:2;14393:9;14389:18;14382:34;14452:3;14447:2;14436:9;14432:18;14425:31;14476:6;14511;14505:13;14542:6;14534;14527:22;14580:3;14569:9;14565:19;14558:26;;14619:2;14611:6;14607:15;14593:29;;14640:1;14650:195;14664:6;14661:1;14658:13;14650:195;;;14729:13;;-1:-1:-1;;;;;14725:39:1;14713:52;;14820:15;;;;14785:12;;;;14761:1;14679:9;14650:195;;;-1:-1:-1;;;;;;;14901:32:1;;;;14896:2;14881:18;;14874:60;-1:-1:-1;;;14965:3:1;14950:19;14943:35;14862:3;14004:980;-1:-1:-1;;;14004:980:1:o;15704:128::-;15771:9;;;15792:11;;;15789:37;;;15806:18;;:::i

Swarm Source

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