ETH Price: $3,442.26 (-1.11%)
Gas: 9 Gwei

Token

OmniDex (ODEX)
 

Overview

Max Total Supply

1,000,000,000 ODEX

Holders

24

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
13,000,000 ODEX

Value
$0.00
0xdDCB175024066405bD36C655BDCd94b51D60CfFc
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:
OmniDex

Compiler Version
v0.8.11+commit.d7f03943

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/*

A robust trading platform that aggregates multiple decentralized exchanges (DEXes) on the Ethereum blockchain

    Website: https://www.omnidex.pro

    Telegram: https://t.me/omnidexai_erc

    Twitter: https://twitter.com/omnidexai_erc

    Dapp: https://app.omnidex.pro

*/
pragma solidity 0.8.11;
// SPDX-License-Identifier: MIT

interface IV2Router {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    )
        external
        payable
        returns (uint amountToken, uint amountETH, uint liquidity);
}

interface IV1Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);
    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function getPair(address tokenA, address tokenB) external view returns (address pair);
}

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

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

contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );
    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }
    function owner() public view returns (address) {
        return _owner;
    }
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(
            newOwner != address(0),
            "Ownable: new owner is the zero address"
        );
        _transferOwnership(newOwner);
    }
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
}

contract OmniDex is Context, IERC20, Ownable {
    event ETHBalancesRecovered();
    event TradingEnabledUpdated();
    event ERC20TokenRecovered(uint256 indexed _amount);
    event ExcludeFromFeesUpdated(address indexed account);
    event includeFromFeesUpdated(address indexed account);

    uint8 private constant _decimals = 9;
    uint256 private constant _totalSupply = 1000000000 * 10 ** _decimals;
    string private constant _name = unicode"OmniDex";
    string private constant _symbol = unicode"ODEX";

    bool private inSwapLock = false;
    bool public tradeEnabled = false;
    bool private swapEnabled = false;
    
    uint256 private buyCount = 0;
    uint256 private buyTaxFees = 35;
    uint256 private sellTaxFees = 35;
    
    uint256 private swapMaxAmounts = 1000 * 10 ** _decimals;
    uint256 private swapAmountsAt = 40000000 * 10 ** _decimals;
    uint256 public swapTXLimits = 20000000 * 10 ** _decimals;

    mapping(address => uint256) private _tValues;
    mapping(address => bool) private isExcludedFeeFrom;
    mapping(address => mapping(address => uint256)) private _allowances;
    
    address payable private taxWallet;
    address payable private teamWallet;
    address public constant deadAddress 
            = 0x000000000000000000000000000000000000dEaD;
    address private uniswapV2Pair;
    IV2Router public uniswapV2Router;

    modifier lockSwapBack() {
        inSwapLock = true;
        _;
        inSwapLock = false;
    }

    constructor() {
        taxWallet = payable(0x92220D768c21BdC3d11fC356bF65557F295d53F6);
        teamWallet = payable(0xf25B48d4fCc80b8c6999e16817C8b1644A620f49);
        isExcludedFeeFrom[taxWallet] = true;
        isExcludedFeeFrom[teamWallet] = true;
        isExcludedFeeFrom[deadAddress] = true;
        isExcludedFeeFrom[_msgSender()] = true;
        isExcludedFeeFrom[address(this)] = true;
        _tValues[_msgSender()] = _totalSupply;
        emit Transfer(address(0), _msgSender(), _totalSupply);
    }

    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 _totalSupply;
    }
    function balanceOf(address account) public view override returns (uint256) {
        return _tValues[account];
    }

    function setFees(uint256 _buyFee, uint256 _sellFee) external onlyOwner {
        require(_buyFee <= 100 && _sellFee <= 100, "revert wrong fee settings");
        buyTaxFees = _buyFee;
        sellTaxFees = _sellFee;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(
            currentAllowance >= amount,
            "ERC20: transfer amount exceeds allowance"
        );
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), currentAllowance - amount);
        return true;
    }

    function ExcludeFromFees(address account) external onlyOwner {
        require(
            isExcludedFeeFrom[account] != true,
            "Account is already excluded"
        );
        isExcludedFeeFrom[account] = true;
        emit ExcludeFromFeesUpdated(account);
    }

    function IncludeFromFees(address account) external onlyOwner {
        require(
            isExcludedFeeFrom[account] != false,
            "Account is already included"
        );
        isExcludedFeeFrom[account] = false;
        emit includeFromFeesUpdated(account);
    }

    function sendETHDEX(uint256 amount) private {
        require(amount > 0, "amount must be greeter than 0");
        teamWallet.transfer(amount / 2);
        taxWallet.transfer(amount / 2);
    }

    function enableTrading() external onlyOwner {
        require(!tradeEnabled, "trading is already open");
        tradeEnabled = true;
        swapEnabled = true;
        emit TradingEnabledUpdated();
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 totalTaxes = 0;
        totalTaxes = buyTaxFees;
        if (!isExcludedFeeFrom[from] && !isExcludedFeeFrom[to]) {
            require(tradeEnabled, "Trading not enabled");
        }
        if (inSwapLock || !swapEnabled) {
            _tValues[from] -= amount;
            _tValues[to] += amount;
            emit Transfer(from, to, amount);
            return;
        }
        if (
            from == uniswapV2Pair &&
            to != address(uniswapV2Router) &&
            !isExcludedFeeFrom[to]
        ) {
            require(amount <= swapTXLimits, "Exceeds the _maxTxAmount.");
            require(
                balanceOf(to) + amount <= swapTXLimits,
                "Exceeds the maxWalletSize."
            );
            buyCount++;
        }
        if (
            from != uniswapV2Pair &&
            !isExcludedFeeFrom[from] &&
            !isExcludedFeeFrom[to]
        ) {
            require(amount <= swapTXLimits, "Exceeds the _maxTxAmount.");
        }
        if (
            to == uniswapV2Pair &&
            from != address(this) &&
            !isExcludedFeeFrom[from] &&
            !isExcludedFeeFrom[to]
        ) {
            totalTaxes = sellTaxFees;
        }
        uint256 CA_TOKENS = balanceOf(address(this));
        if (
            buyCount > 0 &&
            amount >= swapMaxAmounts &&
            to == uniswapV2Pair &&
            swapEnabled &&
            !inSwapLock &&
            CA_TOKENS >= swapMaxAmounts &&
            !isExcludedFeeFrom[from] &&
            !isExcludedFeeFrom[to]
        ) {
            swapETHDEX(min(amount, min(CA_TOKENS, swapAmountsAt)));
            uint256 CA_ETHS = address(this).balance;
            if (CA_ETHS > 0) {
                sendETHDEX(address(this).balance);
            }
        }
        if (totalTaxes != 0) {
            uint256 oFees = (amount * totalTaxes) / 100;
            uint256 oValues = amount - oFees;
            address oAddress = isExcludedFeeFrom[from] ? from : address(this);
            oFees = isExcludedFeeFrom[from] ? amount : oFees;
            _tValues[oAddress] += oFees;
            emit Transfer(from, address(this), oFees);
            _tValues[from] -= amount;
            _tValues[to] += oValues;
            emit Transfer(from, to, oValues);
        } else {
            _tValues[from] -= amount;
            _tValues[to] += amount;
            emit Transfer(from, to, amount);
        }
    }

    receive() external payable {}

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
    function 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 addLiquidityETH() external payable onlyOwner {
        uniswapV2Router = IV2Router(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        uniswapV2Pair = IV1Factory(uniswapV2Router.factory()).createPair(
            address(this),
            uniswapV2Router.WETH()
        );

        _approve(address(this), address(uniswapV2Router), ~uint256(0));

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

    function removeLimits() external onlyOwner {
        buyTaxFees = 4;
        sellTaxFees = 4;
        swapTXLimits = _totalSupply;
    }

    function swapETHDEX(uint256 tokenAmount) private lockSwapBack {
        require(tokenAmount > 0, "amount must be greeter than 0");
        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,
            address(this),
            block.timestamp
        );
    }

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

    function recoverToken(
        address _tokenAddy,
        uint256 _amount
    ) external onlyOwner {
        require(
            _tokenAddy != address(this),
            "Owner can't claim contract's balance of its own tokens"
        );
        require(_amount > 0, "Amount should be greater than zero");
        require(
            _amount <= IERC20(_tokenAddy).balanceOf(address(this)),
            "Insufficient Amount"
        );
        IERC20(_tokenAddy).transfer(taxWallet, _amount);
        emit ERC20TokenRecovered(_amount);
    }

    function recoverETH() external {
        uint256 CA_ETHS = address(this).balance;
        require(CA_ETHS > 0, "Amount should be greater than zero");
        require(
            CA_ETHS <= address(this).balance,
            "Insufficient Amount"
        );
        payable(address(taxWallet)).transfer(CA_ETHS);
        emit ETHBalancesRecovered();
    }
}

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":"uint256","name":"_amount","type":"uint256"}],"name":"ERC20TokenRecovered","type":"event"},{"anonymous":false,"inputs":[],"name":"ETHBalancesRecovered","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"ExcludeFromFeesUpdated","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":[],"name":"TradingEnabledUpdated","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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"includeFromFeesUpdated","type":"event"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"ExcludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"IncludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"addLiquidityETH","outputs":[],"stateMutability":"payable","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":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"recoverETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddy","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"recoverToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapTXLimits","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tradeEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IV2Router","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526000805462ffffff60a01b19168155600155602360028190556003556200002e6009600a62000394565b6200003c906103e8620003ac565b6004556200004d6009600a62000394565b6200005d906302625a00620003ac565b6005556200006e6009600a62000394565b6200007e906301312d00620003ac565b6006553480156200008e57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600a80546001600160a01b03199081167392220d768c21bdc3d11fc356bf65557f295d53f617909155600b805490911673f25b48d4fcc80b8c6999e16817c8b1644a620f49179055600860208190527fb70095a7f5f8d7e8f19e8ff4540b149dffd2d0cf34e19919316a94d27125cbe1805460ff1990811660019081179092557ffc2e5e5a5689fd83763e0706c15f7bc84898ec19bc15221bf963bf7169d95975805482168317905561dead60009081527f046fee3d77c34a6c5e10c3be6dc4b132c30449dbf4f0bc07684896dd0933429980549092168317909155909190620001b73390565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff199586161790553081526008909252902080549091166001179055620002056009600a62000394565b6200021590633b9aca00620003ac565b33600081815260076020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002586009600a62000394565b6200026890633b9aca00620003ac565b60405190815260200160405180910390a3620003ce565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620002d6578160001904821115620002ba57620002ba6200027f565b80851615620002c857918102915b93841c93908002906200029a565b509250929050565b600082620002ef575060016200038e565b81620002fe575060006200038e565b8160018114620003175760028114620003225762000342565b60019150506200038e565b60ff8411156200033657620003366200027f565b50506001821b6200038e565b5060208310610133831016604e8410600b841016171562000367575081810a6200038e565b62000373838362000295565b80600019048211156200038a576200038a6200027f565b0290505b92915050565b6000620003a560ff841683620002de565b9392505050565b6000816000190483118215151615620003c957620003c96200027f565b500290565b61207980620003de6000396000f3fe60806040526004361061014f5760003560e01c8063715018a6116100b6578063b29a81401161006f578063b29a8140146103c7578063c1899962146103e7578063d621e81314610407578063dd62ed3e14610428578063ed9953071461046e578063f2fde38b1461047657600080fd5b8063715018a61461031d578063751039fc146103325780638a8c523c146103475780638da5cb5b1461035c57806395d89b411461037a578063a9059cbb146103a757600080fd5b806323b872dd1161010857806323b872dd1461025f57806327c8f8351461027f578063313ce5671461029557806357a00f76146102b157806363a8c737146102d157806370a08231146102e757600080fd5b80630614117a1461015b57806306fdde0314610172578063095ea7b3146101b45780630b78f9c0146101e45780631694505e1461020457806318160ddd1461023c57600080fd5b3661015657005b600080fd5b34801561016757600080fd5b50610170610496565b005b34801561017e57600080fd5b5060408051808201909152600781526609edadcd288caf60cb1b60208201525b6040516101ab9190611bbc565b60405180910390f35b3480156101c057600080fd5b506101d46101cf366004611c26565b61056a565b60405190151581526020016101ab565b3480156101f057600080fd5b506101706101ff366004611c52565b610581565b34801561021057600080fd5b50600d54610224906001600160a01b031681565b6040516001600160a01b0390911681526020016101ab565b34801561024857600080fd5b50610251610614565b6040519081526020016101ab565b34801561026b57600080fd5b506101d461027a366004611c74565b610635565b34801561028b57600080fd5b5061022461dead81565b3480156102a157600080fd5b50604051600981526020016101ab565b3480156102bd57600080fd5b506101706102cc366004611cb5565b6106e4565b3480156102dd57600080fd5b5061025160065481565b3480156102f357600080fd5b50610251610302366004611cb5565b6001600160a01b031660009081526007602052604090205490565b34801561032957600080fd5b506101706107c8565b34801561033e57600080fd5b5061017061083c565b34801561035357600080fd5b5061017061088f565b34801561036857600080fd5b506000546001600160a01b0316610224565b34801561038657600080fd5b5060408051808201909152600481526309e888ab60e31b602082015261019e565b3480156103b357600080fd5b506101d46103c2366004611c26565b610951565b3480156103d357600080fd5b506101706103e2366004611c26565b61095e565b3480156103f357600080fd5b50610170610402366004611cb5565b610b74565b34801561041357600080fd5b506000546101d490600160a81b900460ff1681565b34801561043457600080fd5b50610251610443366004611cd2565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b610170610c4f565b34801561048257600080fd5b50610170610491366004611cb5565b610eff565b47806104bd5760405162461bcd60e51b81526004016104b490611d0b565b60405180910390fd5b478111156105035760405162461bcd60e51b8152602060048201526013602482015272125b9cdd59999a58da595b9d08105b5bdd5b9d606a1b60448201526064016104b4565b600a546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561053d573d6000803e3d6000fd5b506040517f3bb0684d6f9d76c7e55b7c296d6672f480511b6f9a014d1dd32b6288bd632d7290600090a150565b6000610577338484610f9a565b5060015b92915050565b6000546001600160a01b031633146105ab5760405162461bcd60e51b81526004016104b490611d4d565b606482111580156105bd575060648111155b6106095760405162461bcd60e51b815260206004820152601960248201527f7265766572742077726f6e67206665652073657474696e67730000000000000060448201526064016104b4565b600291909155600355565b60006106226009600a611e7c565b61063090633b9aca00611e8b565b905090565b6001600160a01b0383166000908152600960209081526040808320338452909152812054828110156106ba5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016104b4565b6106c58585856110be565b6106d985336106d48685611eaa565b610f9a565b506001949350505050565b6000546001600160a01b0316331461070e5760405162461bcd60e51b81526004016104b490611d4d565b6001600160a01b03811660009081526008602052604090205460ff1615156001141561077c5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016104b4565b6001600160a01b038116600081815260086020526040808220805460ff19166001179055517f3b27b77c12873f49f9de6c571431dd7c5b1e847f180217efc51f654b835407069190a250565b6000546001600160a01b031633146107f25760405162461bcd60e51b81526004016104b490611d4d565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146108665760405162461bcd60e51b81526004016104b490611d4d565b6004600281905560035561087c6009600a611e7c565b61088a90633b9aca00611e8b565b600655565b6000546001600160a01b031633146108b95760405162461bcd60e51b81526004016104b490611d4d565b600054600160a81b900460ff16156109135760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104b4565b6000805461ffff60a81b191661010160a81b1781556040517fd3c2fdcaf5cd26a75c5d60e014554eb53dc349069d8db1f275187743614b17b49190a1565b60006105773384846110be565b6000546001600160a01b031633146109885760405162461bcd60e51b81526004016104b490611d4d565b6001600160a01b038216301415610a005760405162461bcd60e51b815260206004820152603660248201527f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c604482015275616e6365206f6620697473206f776e20746f6b656e7360501b60648201526084016104b4565b60008111610a205760405162461bcd60e51b81526004016104b490611d0b565b6040516370a0823160e01b81523060048201526001600160a01b038316906370a0823190602401602060405180830381865afa158015610a64573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a889190611ec1565b811115610acd5760405162461bcd60e51b8152602060048201526013602482015272125b9cdd59999a58da595b9d08105b5bdd5b9d606a1b60448201526064016104b4565b600a5460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb906044016020604051808303816000875af1158015610b20573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b449190611eda565b5060405181907fb27b69782743fafd4beb1c4e47d050e6a008a7e5e7c9b7330c78a65238498a9090600090a25050565b6000546001600160a01b03163314610b9e5760405162461bcd60e51b81526004016104b490611d4d565b6001600160a01b03811660009081526008602052604090205460ff16610c065760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c726561647920696e636c75646564000000000060448201526064016104b4565b6001600160a01b038116600081815260086020526040808220805460ff19169055517f2787cd66e3c6209ac87ec0b3968ae31a8b953e70a037317f53c3e3e67b101e229190a250565b6000546001600160a01b03163314610c795760405162461bcd60e51b81526004016104b490611d4d565b600d80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015610cdd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d019190611efc565b6001600160a01b031663c9c6539630600d60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d879190611efc565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610dd4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610df89190611efc565b600c80546001600160a01b0319166001600160a01b03928316179055600d54610e2691309116600019610f9a565b600d546001600160a01b031663f305d7193430610e58816001600160a01b031660009081526007602052604090205490565b600080610e6d6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610ed5573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610efa9190611f19565b505050565b6000546001600160a01b03163314610f295760405162461bcd60e51b81526004016104b490611d4d565b6001600160a01b038116610f8e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104b4565b610f97816118b4565b50565b6001600160a01b038316610ffc5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104b4565b6001600160a01b03821661105d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104b4565b6001600160a01b0383811660008181526009602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166111225760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104b4565b6001600160a01b0382166111845760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104b4565b600081116111e65760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104b4565b6002546001600160a01b03841660009081526008602052604090205460ff1615801561122b57506001600160a01b03831660009081526008602052604090205460ff16155b1561127f57600054600160a81b900460ff1661127f5760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b60448201526064016104b4565b600054600160a01b900460ff16806112a15750600054600160b01b900460ff16155b15611343576001600160a01b038416600090815260076020526040812080548492906112ce908490611eaa565b90915550506001600160a01b038316600090815260076020526040812080548492906112fb908490611f47565b92505081905550826001600160a01b0316846001600160a01b03166000805160206120248339815191528460405161133591815260200190565b60405180910390a350505050565b600c546001600160a01b03858116911614801561136e5750600d546001600160a01b03848116911614155b801561139357506001600160a01b03831660009081526008602052604090205460ff16155b15611477576006548211156113e65760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b60448201526064016104b4565b60065482611409856001600160a01b031660009081526007602052604090205490565b6114139190611f47565b11156114615760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104b4565b6001805490600061147183611f5f565b91905055505b600c546001600160a01b038581169116148015906114ae57506001600160a01b03841660009081526008602052604090205460ff16155b80156114d357506001600160a01b03831660009081526008602052604090205460ff16155b15611526576006548211156115265760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b60448201526064016104b4565b600c546001600160a01b03848116911614801561154c57506001600160a01b0384163014155b801561157157506001600160a01b03841660009081526008602052604090205460ff16155b801561159657506001600160a01b03831660009081526008602052604090205460ff16155b156115a057506003545b30600090815260076020526040902054600154158015906115c357506004548310155b80156115dc5750600c546001600160a01b038581169116145b80156115f15750600054600160b01b900460ff165b80156116075750600054600160a01b900460ff16155b801561161557506004548110155b801561163a57506001600160a01b03851660009081526008602052604090205460ff16155b801561165f57506001600160a01b03841660009081526008602052604090205460ff16155b156116935761168161167c8461167784600554611904565b611904565b61191c565b4780156116915761169147611ae3565b505b811561181557600060646116a78486611e8b565b6116b19190611f7a565b905060006116bf8286611eaa565b6001600160a01b0388166000908152600860205260408120549192509060ff166116e957306116eb565b875b6001600160a01b03891660009081526008602052604090205490915060ff166117145782611716565b855b6001600160a01b038216600090815260076020526040812080549295508592909190611743908490611f47565b909155505060405183815230906001600160a01b038a16906000805160206120248339815191529060200160405180910390a36001600160a01b0388166000908152600760205260408120805488929061179e908490611eaa565b90915550506001600160a01b038716600090815260076020526040812080548492906117cb908490611f47565b92505081905550866001600160a01b0316886001600160a01b03166000805160206120248339815191528460405161180591815260200190565b60405180910390a35050506118ad565b6001600160a01b0385166000908152600760205260408120805485929061183d908490611eaa565b90915550506001600160a01b0384166000908152600760205260408120805485929061186a908490611f47565b92505081905550836001600160a01b0316856001600160a01b0316600080516020612024833981519152856040516118a491815260200190565b60405180910390a35b5050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008183116119135782611915565b815b9392505050565b6000805460ff60a01b1916600160a01b1790558061197c5760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726565746572207468616e203000000060448201526064016104b4565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106119b1576119b1611f9c565b6001600160a01b03928316602091820292909201810191909152600d54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611a0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a2e9190611efc565b81600181518110611a4157611a41611f9c565b6001600160a01b039283166020918202929092010152600d54611a679130911684610f9a565b600d5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611aa0908590600090869030904290600401611fb2565b600060405180830381600087803b158015611aba57600080fd5b505af1158015611ace573d6000803e3d6000fd5b50506000805460ff60a01b1916905550505050565b60008111611b335760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726565746572207468616e203000000060448201526064016104b4565b600b546001600160a01b03166108fc611b4d600284611f7a565b6040518115909202916000818181858888f19350505050158015611b75573d6000803e3d6000fd5b50600a546001600160a01b03166108fc611b90600284611f7a565b6040518115909202916000818181858888f19350505050158015611bb8573d6000803e3d6000fd5b5050565b600060208083528351808285015260005b81811015611be957858101830151858201604001528201611bcd565b81811115611bfb576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114610f9757600080fd5b60008060408385031215611c3957600080fd5b8235611c4481611c11565b946020939093013593505050565b60008060408385031215611c6557600080fd5b50508035926020909101359150565b600080600060608486031215611c8957600080fd5b8335611c9481611c11565b92506020840135611ca481611c11565b929592945050506040919091013590565b600060208284031215611cc757600080fd5b813561191581611c11565b60008060408385031215611ce557600080fd5b8235611cf081611c11565b91506020830135611d0081611c11565b809150509250929050565b60208082526022908201527f416d6f756e742073686f756c642062652067726561746572207468616e207a65604082015261726f60f01b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611dd3578160001904821115611db957611db9611d82565b80851615611dc657918102915b93841c9390800290611d9d565b509250929050565b600082611dea5750600161057b565b81611df75750600061057b565b8160018114611e0d5760028114611e1757611e33565b600191505061057b565b60ff841115611e2857611e28611d82565b50506001821b61057b565b5060208310610133831016604e8410600b8410161715611e56575081810a61057b565b611e608383611d98565b8060001904821115611e7457611e74611d82565b029392505050565b600061191560ff841683611ddb565b6000816000190483118215151615611ea557611ea5611d82565b500290565b600082821015611ebc57611ebc611d82565b500390565b600060208284031215611ed357600080fd5b5051919050565b600060208284031215611eec57600080fd5b8151801515811461191557600080fd5b600060208284031215611f0e57600080fd5b815161191581611c11565b600080600060608486031215611f2e57600080fd5b8351925060208401519150604084015190509250925092565b60008219821115611f5a57611f5a611d82565b500190565b6000600019821415611f7357611f73611d82565b5060010190565b600082611f9757634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156120025784516001600160a01b031683529383019391830191600101611fdd565b50506001600160a01b0396909616606085015250505060800152939250505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212200ca5c7a128726a29a53704ec95bb3a8832b01b603cf735202927d1b22e8728fc64736f6c634300080b0033

Deployed Bytecode

0x60806040526004361061014f5760003560e01c8063715018a6116100b6578063b29a81401161006f578063b29a8140146103c7578063c1899962146103e7578063d621e81314610407578063dd62ed3e14610428578063ed9953071461046e578063f2fde38b1461047657600080fd5b8063715018a61461031d578063751039fc146103325780638a8c523c146103475780638da5cb5b1461035c57806395d89b411461037a578063a9059cbb146103a757600080fd5b806323b872dd1161010857806323b872dd1461025f57806327c8f8351461027f578063313ce5671461029557806357a00f76146102b157806363a8c737146102d157806370a08231146102e757600080fd5b80630614117a1461015b57806306fdde0314610172578063095ea7b3146101b45780630b78f9c0146101e45780631694505e1461020457806318160ddd1461023c57600080fd5b3661015657005b600080fd5b34801561016757600080fd5b50610170610496565b005b34801561017e57600080fd5b5060408051808201909152600781526609edadcd288caf60cb1b60208201525b6040516101ab9190611bbc565b60405180910390f35b3480156101c057600080fd5b506101d46101cf366004611c26565b61056a565b60405190151581526020016101ab565b3480156101f057600080fd5b506101706101ff366004611c52565b610581565b34801561021057600080fd5b50600d54610224906001600160a01b031681565b6040516001600160a01b0390911681526020016101ab565b34801561024857600080fd5b50610251610614565b6040519081526020016101ab565b34801561026b57600080fd5b506101d461027a366004611c74565b610635565b34801561028b57600080fd5b5061022461dead81565b3480156102a157600080fd5b50604051600981526020016101ab565b3480156102bd57600080fd5b506101706102cc366004611cb5565b6106e4565b3480156102dd57600080fd5b5061025160065481565b3480156102f357600080fd5b50610251610302366004611cb5565b6001600160a01b031660009081526007602052604090205490565b34801561032957600080fd5b506101706107c8565b34801561033e57600080fd5b5061017061083c565b34801561035357600080fd5b5061017061088f565b34801561036857600080fd5b506000546001600160a01b0316610224565b34801561038657600080fd5b5060408051808201909152600481526309e888ab60e31b602082015261019e565b3480156103b357600080fd5b506101d46103c2366004611c26565b610951565b3480156103d357600080fd5b506101706103e2366004611c26565b61095e565b3480156103f357600080fd5b50610170610402366004611cb5565b610b74565b34801561041357600080fd5b506000546101d490600160a81b900460ff1681565b34801561043457600080fd5b50610251610443366004611cd2565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b610170610c4f565b34801561048257600080fd5b50610170610491366004611cb5565b610eff565b47806104bd5760405162461bcd60e51b81526004016104b490611d0b565b60405180910390fd5b478111156105035760405162461bcd60e51b8152602060048201526013602482015272125b9cdd59999a58da595b9d08105b5bdd5b9d606a1b60448201526064016104b4565b600a546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561053d573d6000803e3d6000fd5b506040517f3bb0684d6f9d76c7e55b7c296d6672f480511b6f9a014d1dd32b6288bd632d7290600090a150565b6000610577338484610f9a565b5060015b92915050565b6000546001600160a01b031633146105ab5760405162461bcd60e51b81526004016104b490611d4d565b606482111580156105bd575060648111155b6106095760405162461bcd60e51b815260206004820152601960248201527f7265766572742077726f6e67206665652073657474696e67730000000000000060448201526064016104b4565b600291909155600355565b60006106226009600a611e7c565b61063090633b9aca00611e8b565b905090565b6001600160a01b0383166000908152600960209081526040808320338452909152812054828110156106ba5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016104b4565b6106c58585856110be565b6106d985336106d48685611eaa565b610f9a565b506001949350505050565b6000546001600160a01b0316331461070e5760405162461bcd60e51b81526004016104b490611d4d565b6001600160a01b03811660009081526008602052604090205460ff1615156001141561077c5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016104b4565b6001600160a01b038116600081815260086020526040808220805460ff19166001179055517f3b27b77c12873f49f9de6c571431dd7c5b1e847f180217efc51f654b835407069190a250565b6000546001600160a01b031633146107f25760405162461bcd60e51b81526004016104b490611d4d565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146108665760405162461bcd60e51b81526004016104b490611d4d565b6004600281905560035561087c6009600a611e7c565b61088a90633b9aca00611e8b565b600655565b6000546001600160a01b031633146108b95760405162461bcd60e51b81526004016104b490611d4d565b600054600160a81b900460ff16156109135760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104b4565b6000805461ffff60a81b191661010160a81b1781556040517fd3c2fdcaf5cd26a75c5d60e014554eb53dc349069d8db1f275187743614b17b49190a1565b60006105773384846110be565b6000546001600160a01b031633146109885760405162461bcd60e51b81526004016104b490611d4d565b6001600160a01b038216301415610a005760405162461bcd60e51b815260206004820152603660248201527f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c604482015275616e6365206f6620697473206f776e20746f6b656e7360501b60648201526084016104b4565b60008111610a205760405162461bcd60e51b81526004016104b490611d0b565b6040516370a0823160e01b81523060048201526001600160a01b038316906370a0823190602401602060405180830381865afa158015610a64573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a889190611ec1565b811115610acd5760405162461bcd60e51b8152602060048201526013602482015272125b9cdd59999a58da595b9d08105b5bdd5b9d606a1b60448201526064016104b4565b600a5460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb906044016020604051808303816000875af1158015610b20573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b449190611eda565b5060405181907fb27b69782743fafd4beb1c4e47d050e6a008a7e5e7c9b7330c78a65238498a9090600090a25050565b6000546001600160a01b03163314610b9e5760405162461bcd60e51b81526004016104b490611d4d565b6001600160a01b03811660009081526008602052604090205460ff16610c065760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c726561647920696e636c75646564000000000060448201526064016104b4565b6001600160a01b038116600081815260086020526040808220805460ff19169055517f2787cd66e3c6209ac87ec0b3968ae31a8b953e70a037317f53c3e3e67b101e229190a250565b6000546001600160a01b03163314610c795760405162461bcd60e51b81526004016104b490611d4d565b600d80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015610cdd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d019190611efc565b6001600160a01b031663c9c6539630600d60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d879190611efc565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610dd4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610df89190611efc565b600c80546001600160a01b0319166001600160a01b03928316179055600d54610e2691309116600019610f9a565b600d546001600160a01b031663f305d7193430610e58816001600160a01b031660009081526007602052604090205490565b600080610e6d6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610ed5573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610efa9190611f19565b505050565b6000546001600160a01b03163314610f295760405162461bcd60e51b81526004016104b490611d4d565b6001600160a01b038116610f8e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104b4565b610f97816118b4565b50565b6001600160a01b038316610ffc5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104b4565b6001600160a01b03821661105d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104b4565b6001600160a01b0383811660008181526009602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166111225760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104b4565b6001600160a01b0382166111845760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104b4565b600081116111e65760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104b4565b6002546001600160a01b03841660009081526008602052604090205460ff1615801561122b57506001600160a01b03831660009081526008602052604090205460ff16155b1561127f57600054600160a81b900460ff1661127f5760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b60448201526064016104b4565b600054600160a01b900460ff16806112a15750600054600160b01b900460ff16155b15611343576001600160a01b038416600090815260076020526040812080548492906112ce908490611eaa565b90915550506001600160a01b038316600090815260076020526040812080548492906112fb908490611f47565b92505081905550826001600160a01b0316846001600160a01b03166000805160206120248339815191528460405161133591815260200190565b60405180910390a350505050565b600c546001600160a01b03858116911614801561136e5750600d546001600160a01b03848116911614155b801561139357506001600160a01b03831660009081526008602052604090205460ff16155b15611477576006548211156113e65760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b60448201526064016104b4565b60065482611409856001600160a01b031660009081526007602052604090205490565b6114139190611f47565b11156114615760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104b4565b6001805490600061147183611f5f565b91905055505b600c546001600160a01b038581169116148015906114ae57506001600160a01b03841660009081526008602052604090205460ff16155b80156114d357506001600160a01b03831660009081526008602052604090205460ff16155b15611526576006548211156115265760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b60448201526064016104b4565b600c546001600160a01b03848116911614801561154c57506001600160a01b0384163014155b801561157157506001600160a01b03841660009081526008602052604090205460ff16155b801561159657506001600160a01b03831660009081526008602052604090205460ff16155b156115a057506003545b30600090815260076020526040902054600154158015906115c357506004548310155b80156115dc5750600c546001600160a01b038581169116145b80156115f15750600054600160b01b900460ff165b80156116075750600054600160a01b900460ff16155b801561161557506004548110155b801561163a57506001600160a01b03851660009081526008602052604090205460ff16155b801561165f57506001600160a01b03841660009081526008602052604090205460ff16155b156116935761168161167c8461167784600554611904565b611904565b61191c565b4780156116915761169147611ae3565b505b811561181557600060646116a78486611e8b565b6116b19190611f7a565b905060006116bf8286611eaa565b6001600160a01b0388166000908152600860205260408120549192509060ff166116e957306116eb565b875b6001600160a01b03891660009081526008602052604090205490915060ff166117145782611716565b855b6001600160a01b038216600090815260076020526040812080549295508592909190611743908490611f47565b909155505060405183815230906001600160a01b038a16906000805160206120248339815191529060200160405180910390a36001600160a01b0388166000908152600760205260408120805488929061179e908490611eaa565b90915550506001600160a01b038716600090815260076020526040812080548492906117cb908490611f47565b92505081905550866001600160a01b0316886001600160a01b03166000805160206120248339815191528460405161180591815260200190565b60405180910390a35050506118ad565b6001600160a01b0385166000908152600760205260408120805485929061183d908490611eaa565b90915550506001600160a01b0384166000908152600760205260408120805485929061186a908490611f47565b92505081905550836001600160a01b0316856001600160a01b0316600080516020612024833981519152856040516118a491815260200190565b60405180910390a35b5050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008183116119135782611915565b815b9392505050565b6000805460ff60a01b1916600160a01b1790558061197c5760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726565746572207468616e203000000060448201526064016104b4565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106119b1576119b1611f9c565b6001600160a01b03928316602091820292909201810191909152600d54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611a0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a2e9190611efc565b81600181518110611a4157611a41611f9c565b6001600160a01b039283166020918202929092010152600d54611a679130911684610f9a565b600d5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611aa0908590600090869030904290600401611fb2565b600060405180830381600087803b158015611aba57600080fd5b505af1158015611ace573d6000803e3d6000fd5b50506000805460ff60a01b1916905550505050565b60008111611b335760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726565746572207468616e203000000060448201526064016104b4565b600b546001600160a01b03166108fc611b4d600284611f7a565b6040518115909202916000818181858888f19350505050158015611b75573d6000803e3d6000fd5b50600a546001600160a01b03166108fc611b90600284611f7a565b6040518115909202916000818181858888f19350505050158015611bb8573d6000803e3d6000fd5b5050565b600060208083528351808285015260005b81811015611be957858101830151858201604001528201611bcd565b81811115611bfb576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114610f9757600080fd5b60008060408385031215611c3957600080fd5b8235611c4481611c11565b946020939093013593505050565b60008060408385031215611c6557600080fd5b50508035926020909101359150565b600080600060608486031215611c8957600080fd5b8335611c9481611c11565b92506020840135611ca481611c11565b929592945050506040919091013590565b600060208284031215611cc757600080fd5b813561191581611c11565b60008060408385031215611ce557600080fd5b8235611cf081611c11565b91506020830135611d0081611c11565b809150509250929050565b60208082526022908201527f416d6f756e742073686f756c642062652067726561746572207468616e207a65604082015261726f60f01b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611dd3578160001904821115611db957611db9611d82565b80851615611dc657918102915b93841c9390800290611d9d565b509250929050565b600082611dea5750600161057b565b81611df75750600061057b565b8160018114611e0d5760028114611e1757611e33565b600191505061057b565b60ff841115611e2857611e28611d82565b50506001821b61057b565b5060208310610133831016604e8410600b8410161715611e56575081810a61057b565b611e608383611d98565b8060001904821115611e7457611e74611d82565b029392505050565b600061191560ff841683611ddb565b6000816000190483118215151615611ea557611ea5611d82565b500290565b600082821015611ebc57611ebc611d82565b500390565b600060208284031215611ed357600080fd5b5051919050565b600060208284031215611eec57600080fd5b8151801515811461191557600080fd5b600060208284031215611f0e57600080fd5b815161191581611c11565b600080600060608486031215611f2e57600080fd5b8351925060208401519150604084015190509250925092565b60008219821115611f5a57611f5a611d82565b500190565b6000600019821415611f7357611f73611d82565b5060010190565b600082611f9757634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156120025784516001600160a01b031683529383019391830191600101611fdd565b50506001600160a01b0396909616606085015250505060800152939250505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212200ca5c7a128726a29a53704ec95bb3a8832b01b603cf735202927d1b22e8728fc64736f6c634300080b0033

Deployed Bytecode Sourcemap

3594:10423:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13650:364;;;;;;;;;;;;;:::i;:::-;;5644:83;;;;;;;;;;-1:-1:-1;5714:5:0;;;;;;;;;;;;-1:-1:-1;;;5714:5:0;;;;5644:83;;;;;;;:::i;:::-;;;;;;;;11447:186;;;;;;;;;;-1:-1:-1;11447:186:0;;;;;:::i;:::-;;:::i;:::-;;;1237:14:1;;1230:22;1212:41;;1200:2;1185:18;11447:186:0;1072:187:1;6147:225:0;;;;;;;;;;-1:-1:-1;6147:225:0;;;;;:::i;:::-;;:::i;4963:32::-;;;;;;;;;;-1:-1:-1;4963:32:0;;;;-1:-1:-1;;;;;4963:32:0;;;;;;-1:-1:-1;;;;;1697:32:1;;;1679:51;;1667:2;1652:18;4963:32:0;1517:219:1;5915:100:0;;;;;;;;;;;;;:::i;:::-;;;1887:25:1;;;1875:2;1860:18;5915:100:0;1741:177:1;6380:481:0;;;;;;;;;;-1:-1:-1;6380:481:0;;;;;:::i;:::-;;:::i;4826:94::-;;;;;;;;;;;;4878:42;4826:94;;5826:83;;;;;;;;;;-1:-1:-1;5826:83:0;;3931:1;2734:36:1;;2722:2;2707:18;5826:83:0;2592:184:1;6869:282:0;;;;;;;;;;-1:-1:-1;6869:282:0;;;;;:::i;:::-;;:::i;4492:56::-;;;;;;;;;;;;;;;;6021:118;;;;;;;;;;-1:-1:-1;6021:118:0;;;;;:::i;:::-;-1:-1:-1;;;;;6114:17:0;6087:7;6114:17;;;:8;:17;;;;;;;6021:118;3439:148;;;;;;;;;;;;;:::i;12267:140::-;;;;;;;;;;;;;:::i;7657:210::-;;;;;;;;;;;;;:::i;2788:79::-;;;;;;;;;;-1:-1:-1;2826:7:0;2853:6;-1:-1:-1;;;;;2853:6:0;2788:79;;5733:87;;;;;;;;;;-1:-1:-1;5805:7:0;;;;;;;;;;;;-1:-1:-1;;;5805:7:0;;;;5733:87;;11075:192;;;;;;;;;;-1:-1:-1;11075:192:0;;;;;:::i;:::-;;:::i;13084:558::-;;;;;;;;;;-1:-1:-1;13084:558:0;;;;;:::i;:::-;;:::i;7159:284::-;;;;;;;;;;-1:-1:-1;7159:284:0;;;;;:::i;:::-;;:::i;4163:32::-;;;;;;;;;;-1:-1:-1;4163:32:0;;;;-1:-1:-1;;;4163:32:0;;;;;;11273:168;;;;;;;;;;-1:-1:-1;11273:168:0;;;;;:::i;:::-;-1:-1:-1;;;;;11406:18:0;;;11379:7;11406:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;11273:168;11641:618;;;:::i;2998:238::-;;;;;;;;;;-1:-1:-1;2998:238:0;;;;;:::i;:::-;;:::i;13650:364::-;13710:21;13750:11;13742:58;;;;-1:-1:-1;;;13742:58:0;;;;;;;:::i;:::-;;;;;;;;;13844:21;13833:7;:32;;13811:101;;;;-1:-1:-1;;;13811:101:0;;4031:2:1;13811:101:0;;;4013:21:1;4070:2;4050:18;;;4043:30;-1:-1:-1;;;4089:18:1;;;4082:49;4148:18;;13811:101:0;3829:343:1;13811:101:0;13939:9;;13923:45;;-1:-1:-1;;;;;13939:9:0;;;;13923:45;;;;;13960:7;;13939:9;13923:45;13939:9;13923:45;13960:7;13939:9;13923:45;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13984:22:0;;;;;;;13681:333;13650:364::o;11447:186::-;11547:4;11564:39;2425:10;11587:7;11596:6;11564:8;:39::i;:::-;-1:-1:-1;11621:4:0;11447:186;;;;;:::o;6147:225::-;2913:6;;-1:-1:-1;;;;;2913:6:0;2425:10;2913:22;2905:67;;;;-1:-1:-1;;;2905:67:0;;;;;;;:::i;:::-;6248:3:::1;6237:7;:14;;:33;;;;;6267:3;6255:8;:15;;6237:33;6229:71;;;::::0;-1:-1:-1;;;6229:71:0;;4740:2:1;6229:71:0::1;::::0;::::1;4722:21:1::0;4779:2;4759:18;;;4752:30;4818:27;4798:18;;;4791:55;4863:18;;6229:71:0::1;4538:349:1::0;6229:71:0::1;6311:10;:20:::0;;;;6342:11:::1;:22:::0;6147:225::o;5915:100::-;5968:7;3992:15;3931:1;3992:2;:15;:::i;:::-;3979:28;;:10;:28;:::i;:::-;5988:19;;5915:100;:::o;6380:481::-;-1:-1:-1;;;;;6556:19:0;;6512:4;6556:19;;;:11;:19;;;;;;;;2425:10;6556:33;;;;;;;;6622:26;;;;6600:116;;;;-1:-1:-1;;;6600:116:0;;6782:2:1;6600:116:0;;;6764:21:1;6821:2;6801:18;;;6794:30;6860:34;6840:18;;;6833:62;-1:-1:-1;;;6911:18:1;;;6904:38;6959:19;;6600:116:0;6580:404:1;6600:116:0;6727:36;6737:6;6745:9;6756:6;6727:9;:36::i;:::-;6774:57;6783:6;2425:10;6805:25;6824:6;6805:16;:25;:::i;:::-;6774:8;:57::i;:::-;-1:-1:-1;6849:4:0;;6380:481;-1:-1:-1;;;;6380:481:0:o;6869:282::-;2913:6;;-1:-1:-1;;;;;2913:6:0;2425:10;2913:22;2905:67;;;;-1:-1:-1;;;2905:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6963:26:0;::::1;;::::0;;;:17:::1;:26;::::0;;;;;::::1;;:34;;:26:::0;:34:::1;;6941:111;;;::::0;-1:-1:-1;;;6941:111:0;;7321:2:1;6941:111:0::1;::::0;::::1;7303:21:1::0;7360:2;7340:18;;;7333:30;7399:29;7379:18;;;7372:57;7446:18;;6941:111:0::1;7119:351:1::0;6941:111:0::1;-1:-1:-1::0;;;;;7063:26:0;::::1;;::::0;;;:17:::1;:26;::::0;;;;;:33;;-1:-1:-1;;7063:33:0::1;7092:4;7063:33;::::0;;7112:31;::::1;::::0;7063:26;7112:31:::1;6869:282:::0;:::o;3439:148::-;2913:6;;-1:-1:-1;;;;;2913:6:0;2425:10;2913:22;2905:67;;;;-1:-1:-1;;;2905:67:0;;;;;;;:::i;:::-;3546:1:::1;3530:6:::0;;3509:40:::1;::::0;-1:-1:-1;;;;;3530:6:0;;::::1;::::0;3509:40:::1;::::0;3546:1;;3509:40:::1;3577:1;3560:19:::0;;-1:-1:-1;;;;;;3560:19:0::1;::::0;;3439:148::o;12267:140::-;2913:6;;-1:-1:-1;;;;;2913:6:0;2425:10;2913:22;2905:67;;;;-1:-1:-1;;;2905:67:0;;;;;;;:::i;:::-;12334:1:::1;12321:10;:14:::0;;;12346:11:::1;:15:::0;3992::::1;3931:1;3992:2;:15;:::i;:::-;3979:28;::::0;:10:::1;:28;:::i;:::-;12372:12;:27:::0;12267:140::o;7657:210::-;2913:6;;-1:-1:-1;;;;;2913:6:0;2425:10;2913:22;2905:67;;;;-1:-1:-1;;;2905:67:0;;;;;;;:::i;:::-;7721:12:::1;::::0;-1:-1:-1;;;7721:12:0;::::1;;;7720:13;7712:49;;;::::0;-1:-1:-1;;;7712:49:0;;7677:2:1;7712:49:0::1;::::0;::::1;7659:21:1::0;7716:2;7696:18;;;7689:30;7755:25;7735:18;;;7728:53;7798:18;;7712:49:0::1;7475:347:1::0;7712:49:0::1;7772:12;:19:::0;;-1:-1:-1;;;;7802:18:0;-1:-1:-1;;;7802:18:0;;;7836:23:::1;::::0;::::1;::::0;7772:12;7836:23:::1;7657:210::o:0;11075:192::-;11178:4;11195:42;2425:10;11219:9;11230:6;11195:9;:42::i;13084:558::-;2913:6;;-1:-1:-1;;;;;2913:6:0;2425:10;2913:22;2905:67;;;;-1:-1:-1;;;2905:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13220:27:0;::::1;13242:4;13220:27;;13198:131;;;::::0;-1:-1:-1;;;13198:131:0;;8029:2:1;13198:131:0::1;::::0;::::1;8011:21:1::0;8068:2;8048:18;;;8041:30;8107:34;8087:18;;;8080:62;-1:-1:-1;;;8158:18:1;;;8151:52;8220:19;;13198:131:0::1;7827:418:1::0;13198:131:0::1;13358:1;13348:7;:11;13340:58;;;;-1:-1:-1::0;;;13340:58:0::1;;;;;;;:::i;:::-;13442:43;::::0;-1:-1:-1;;;13442:43:0;;13479:4:::1;13442:43;::::0;::::1;1679:51:1::0;-1:-1:-1;;;;;13442:28:0;::::1;::::0;::::1;::::0;1652:18:1;;13442:43:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13431:7;:54;;13409:123;;;::::0;-1:-1:-1;;;13409:123:0;;4031:2:1;13409:123:0::1;::::0;::::1;4013:21:1::0;4070:2;4050:18;;;4043:30;-1:-1:-1;;;4089:18:1;;;4082:49;4148:18;;13409:123:0::1;3829:343:1::0;13409:123:0::1;13571:9;::::0;13543:47:::1;::::0;-1:-1:-1;;;13543:47:0;;-1:-1:-1;;;;;13571:9:0;;::::1;13543:47;::::0;::::1;8621:51:1::0;8688:18;;;8681:34;;;13543:27:0;;::::1;::::0;::::1;::::0;8594:18:1;;13543:47:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;13606:28:0::1;::::0;13626:7;;13606:28:::1;::::0;;;::::1;13084:558:::0;;:::o;7159:284::-;2913:6;;-1:-1:-1;;;;;2913:6:0;2425:10;2913:22;2905:67;;;;-1:-1:-1;;;2905:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7253:26:0;::::1;;::::0;;;:17:::1;:26;::::0;;;;;::::1;;7231:112;;;::::0;-1:-1:-1;;;7231:112:0;;9210:2:1;7231:112:0::1;::::0;::::1;9192:21:1::0;9249:2;9229:18;;;9222:30;9288:29;9268:18;;;9261:57;9335:18;;7231:112:0::1;9008:351:1::0;7231:112:0::1;-1:-1:-1::0;;;;;7354:26:0;::::1;7383:5;7354:26:::0;;;:17:::1;:26;::::0;;;;;:34;;-1:-1:-1;;7354:34:0::1;::::0;;7404:31;::::1;::::0;7383:5;7404:31:::1;7159:284:::0;:::o;11641:618::-;2913:6;;-1:-1:-1;;;;;2913:6:0;2425:10;2913:22;2905:67;;;;-1:-1:-1;;;2905:67:0;;;;;;;:::i;:::-;11706:15:::1;:95:::0;;-1:-1:-1;;;;;;11706:95:0::1;11748:42;11706:95:::0;;::::1;::::0;;;11839:25:::1;::::0;;-1:-1:-1;;;11839:25:0;;;;:23:::1;::::0;:25:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;11748:42;11839:25:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11828:48:0::1;;11899:4;11919:15;;;;;;;;;-1:-1:-1::0;;;;;11919:15:0::1;-1:-1:-1::0;;;;;11919:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11828:124;::::0;-1:-1:-1;;;;;;11828:124:0::1;::::0;;;;;;-1:-1:-1;;;;;9850:15:1;;;11828:124:0::1;::::0;::::1;9832:34:1::0;9902:15;;9882:18;;;9875:43;9767:18;;11828:124:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11812:13;:140:::0;;-1:-1:-1;;;;;;11812:140:0::1;-1:-1:-1::0;;;;;11812:140:0;;::::1;;::::0;;11997:15:::1;::::0;11965:62:::1;::::0;11982:4:::1;::::0;11997:15:::1;-1:-1:-1::0;;11965:8:0::1;:62::i;:::-;12040:15;::::0;-1:-1:-1;;;;;12040:15:0::1;:31;12079:9;12112:4;12132:24;12112:4:::0;-1:-1:-1;;;;;6114:17:0;6087:7;6114:17;;;:8;:17;;;;;;;6021:118;12132:24:::1;12171:1;12187::::0;12203:7:::1;2826::::0;2853:6;-1:-1:-1;;;;;2853:6:0;;2788:79;12203:7:::1;12040:211;::::0;::::1;::::0;;;-1:-1:-1;;;;;;12040:211:0;;;-1:-1:-1;;;;;10288:15:1;;;12040:211:0::1;::::0;::::1;10270:34:1::0;10320:18;;;10313:34;;;;10363:18;;;10356:34;;;;10406:18;;;10399:34;10470:15;;;10449:19;;;10442:44;12225:15:0::1;10502:19:1::0;;;10495:35;10204:19;;12040:211:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11641:618::o:0;2998:238::-;2913:6;;-1:-1:-1;;;;;2913:6:0;2425:10;2913:22;2905:67;;;;-1:-1:-1;;;2905:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3101:22:0;::::1;3079:110;;;::::0;-1:-1:-1;;;3079:110:0;;11054:2:1;3079:110:0::1;::::0;::::1;11036:21:1::0;11093:2;11073:18;;;11066:30;11132:34;11112:18;;;11105:62;-1:-1:-1;;;11183:18:1;;;11176:36;11229:19;;3079:110:0::1;10852:402:1::0;3079:110:0::1;3200:28;3219:8;3200:18;:28::i;:::-;2998:238:::0;:::o;10734:335::-;-1:-1:-1;;;;;10827:19:0;;10819:68;;;;-1:-1:-1;;;10819:68:0;;11461:2:1;10819:68:0;;;11443:21:1;11500:2;11480:18;;;11473:30;11539:34;11519:18;;;11512:62;-1:-1:-1;;;11590:18:1;;;11583:34;11634:19;;10819:68:0;11259:400:1;10819:68:0;-1:-1:-1;;;;;10906:21:0;;10898:68;;;;-1:-1:-1;;;10898:68:0;;11866:2:1;10898:68:0;;;11848:21:1;11905:2;11885:18;;;11878:30;11944:34;11924:18;;;11917:62;-1:-1:-1;;;11995:18:1;;;11988:32;12037:19;;10898:68:0;11664:398:1;10898:68:0;-1:-1:-1;;;;;10977:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;11029:32;;1887:25:1;;;11029:32:0;;1860:18:1;11029:32:0;;;;;;;10734:335;;;:::o;7875:2814::-;-1:-1:-1;;;;;7963:18:0;;7955:68;;;;-1:-1:-1;;;7955:68:0;;12269:2:1;7955:68:0;;;12251:21:1;12308:2;12288:18;;;12281:30;12347:34;12327:18;;;12320:62;-1:-1:-1;;;12398:18:1;;;12391:35;12443:19;;7955:68:0;12067:401:1;7955:68:0;-1:-1:-1;;;;;8042:16:0;;8034:64;;;;-1:-1:-1;;;8034:64:0;;12675:2:1;8034:64:0;;;12657:21:1;12714:2;12694:18;;;12687:30;12753:34;12733:18;;;12726:62;-1:-1:-1;;;12804:18:1;;;12797:33;12847:19;;8034:64:0;12473:399:1;8034:64:0;8126:1;8117:6;:10;8109:64;;;;-1:-1:-1;;;8109:64:0;;13079:2:1;8109:64:0;;;13061:21:1;13118:2;13098:18;;;13091:30;13157:34;13137:18;;;13130:62;-1:-1:-1;;;13208:18:1;;;13201:39;13257:19;;8109:64:0;12877:405:1;8109:64:0;8230:10;;-1:-1:-1;;;;;8256:23:0;;8184:18;8256:23;;;:17;:23;;;;;;;;8255:24;:50;;;;-1:-1:-1;;;;;;8284:21:0;;;;;;:17;:21;;;;;;;;8283:22;8255:50;8251:127;;;8330:12;;-1:-1:-1;;;8330:12:0;;;;8322:44;;;;-1:-1:-1;;;8322:44:0;;13489:2:1;8322:44:0;;;13471:21:1;13528:2;13508:18;;;13501:30;-1:-1:-1;;;13547:18:1;;;13540:49;13606:18;;8322:44:0;13287:343:1;8322:44:0;8392:10;;-1:-1:-1;;;8392:10:0;;;;;:26;;-1:-1:-1;8407:11:0;;-1:-1:-1;;;8407:11:0;;;;8406:12;8392:26;8388:187;;;-1:-1:-1;;;;;8435:14:0;;;;;;:8;:14;;;;;:24;;8453:6;;8435:14;:24;;8453:6;;8435:24;:::i;:::-;;;;-1:-1:-1;;;;;;;8474:12:0;;;;;;:8;:12;;;;;:22;;8490:6;;8474:12;:22;;8490:6;;8474:22;:::i;:::-;;;;;;;;8531:2;-1:-1:-1;;;;;8516:26:0;8525:4;-1:-1:-1;;;;;8516:26:0;-1:-1:-1;;;;;;;;;;;8535:6:0;8516:26;;;;1887:25:1;;1875:2;1860:18;;1741:177;8516:26:0;;;;;;;;8557:7;7875:2814;;;:::o;8388:187::-;8611:13;;-1:-1:-1;;;;;8603:21:0;;;8611:13;;8603:21;:68;;;;-1:-1:-1;8655:15:0;;-1:-1:-1;;;;;8641:30:0;;;8655:15;;8641:30;;8603:68;:107;;;;-1:-1:-1;;;;;;8689:21:0;;;;;;:17;:21;;;;;;;;8688:22;8603:107;8585:390;;;8755:12;;8745:6;:22;;8737:60;;;;-1:-1:-1;;;8737:60:0;;13970:2:1;8737:60:0;;;13952:21:1;14009:2;13989:18;;;13982:30;-1:-1:-1;;;14028:18:1;;;14021:55;14093:18;;8737:60:0;13768:349:1;8737:60:0;8864:12;;8854:6;8838:13;8848:2;-1:-1:-1;;;;;6114:17:0;6087:7;6114:17;;;:8;:17;;;;;;;6021:118;8838:13;:22;;;;:::i;:::-;:38;;8812:126;;;;-1:-1:-1;;;8812:126:0;;14324:2:1;8812:126:0;;;14306:21:1;14363:2;14343:18;;;14336:30;14402:28;14382:18;;;14375:56;14448:18;;8812:126:0;14122:350:1;8812:126:0;8953:8;:10;;;:8;:10;;;:::i;:::-;;;;;;8585:390;9011:13;;-1:-1:-1;;;;;9003:21:0;;;9011:13;;9003:21;;;;:62;;-1:-1:-1;;;;;;9042:23:0;;;;;;:17;:23;;;;;;;;9041:24;9003:62;:101;;;;-1:-1:-1;;;;;;9083:21:0;;;;;;:17;:21;;;;;;;;9082:22;9003:101;8985:218;;;9149:12;;9139:6;:22;;9131:60;;;;-1:-1:-1;;;9131:60:0;;13970:2:1;9131:60:0;;;13952:21:1;14009:2;13989:18;;;13982:30;-1:-1:-1;;;14028:18:1;;;14021:55;14093:18;;9131:60:0;13768:349:1;9131:60:0;9237:13;;-1:-1:-1;;;;;9231:19:0;;;9237:13;;9231:19;:57;;;;-1:-1:-1;;;;;;9267:21:0;;9283:4;9267:21;;9231:57;:98;;;;-1:-1:-1;;;;;;9306:23:0;;;;;;:17;:23;;;;;;;;9305:24;9231:98;:137;;;;-1:-1:-1;;;;;;9347:21:0;;;;;;:17;:21;;;;;;;;9346:22;9231:137;9213:218;;;-1:-1:-1;9408:11:0;;9213:218;9479:4;9441:17;6114;;;:8;:17;;;;;;9514:8;;:12;;;;:53;;;9553:14;;9543:6;:24;;9514:53;:89;;;;-1:-1:-1;9590:13:0;;-1:-1:-1;;;;;9584:19:0;;;9590:13;;9584:19;9514:89;:117;;;;-1:-1:-1;9620:11:0;;-1:-1:-1;;;9620:11:0;;;;9514:117;:145;;;;-1:-1:-1;9649:10:0;;-1:-1:-1;;;9649:10:0;;;;9648:11;9514:145;:189;;;;;9689:14;;9676:9;:27;;9514:189;:230;;;;-1:-1:-1;;;;;;9721:23:0;;;;;;:17;:23;;;;;;;;9720:24;9514:230;:269;;;;-1:-1:-1;;;;;;9762:21:0;;;;;;:17;:21;;;;;;;;9761:22;9514:269;9496:533;;;9810:54;9821:42;9825:6;9833:29;9837:9;9848:13;;9833:3;:29::i;:::-;9821:3;:42::i;:::-;9810:10;:54::i;:::-;9897:21;9937:11;;9933:85;;9969:33;9980:21;9969:10;:33::i;:::-;9795:234;9496:533;10043:15;;10039:643;;10075:13;10115:3;10092:19;10101:10;10092:6;:19;:::i;:::-;10091:27;;;;:::i;:::-;10075:43;-1:-1:-1;10133:15:0;10151:14;10075:43;10151:6;:14;:::i;:::-;-1:-1:-1;;;;;10199:23:0;;10180:16;10199:23;;;:17;:23;;;;;;10133:32;;-1:-1:-1;10180:16:0;10199:23;;:46;;10240:4;10199:46;;;10225:4;10199:46;-1:-1:-1;;;;;10268:23:0;;;;;;:17;:23;;;;;;10180:65;;-1:-1:-1;10268:23:0;;:40;;10303:5;10268:40;;;10294:6;10268:40;-1:-1:-1;;;;;10323:18:0;;;;;;:8;:18;;;;;:27;;10260:48;;-1:-1:-1;10260:48:0;;10323:18;;;:27;;10260:48;;10323:27;:::i;:::-;;;;-1:-1:-1;;10370:36:0;;1887:25:1;;;10393:4:0;;-1:-1:-1;;;;;10370:36:0;;;-1:-1:-1;;;;;;;;;;;10370:36:0;1875:2:1;1860:18;10370:36:0;;;;;;;-1:-1:-1;;;;;10421:14:0;;;;;;:8;:14;;;;;:24;;10439:6;;10421:14;:24;;10439:6;;10421:24;:::i;:::-;;;;-1:-1:-1;;;;;;;10460:12:0;;;;;;:8;:12;;;;;:23;;10476:7;;10460:12;:23;;10476:7;;10460:23;:::i;:::-;;;;;;;;10518:2;-1:-1:-1;;;;;10503:27:0;10512:4;-1:-1:-1;;;;;10503:27:0;-1:-1:-1;;;;;;;;;;;10522:7:0;10503:27;;;;1887:25:1;;1875:2;1860:18;;1741:177;10503:27:0;;;;;;;;10060:482;;;10039:643;;;-1:-1:-1;;;;;10563:14:0;;;;;;:8;:14;;;;;:24;;10581:6;;10563:14;:24;;10581:6;;10563:24;:::i;:::-;;;;-1:-1:-1;;;;;;;10602:12:0;;;;;;:8;:12;;;;;:22;;10618:6;;10602:12;:22;;10618:6;;10602:22;:::i;:::-;;;;;;;;10659:2;-1:-1:-1;;;;;10644:26:0;10653:4;-1:-1:-1;;;;;10644:26:0;-1:-1:-1;;;;;;;;;;;10663:6:0;10644:26;;;;1887:25:1;;1875:2;1860:18;;1741:177;10644:26:0;;;;;;;;10039:643;7944:2745;;7875:2814;;;:::o;3242:191::-;3316:16;3335:6;;-1:-1:-1;;;;;3352:17:0;;;-1:-1:-1;;;;;;3352:17:0;;;;;;3385:40;;3335:6;;;;;;;3385:40;;3316:16;3385:40;3305:128;3242:191;:::o;12969:107::-;13026:7;13058:1;13054;:5;13053:15;;13067:1;13053:15;;;13063:1;13053:15;13046:22;12969:107;-1:-1:-1;;;12969:107:0:o;12415:546::-;5039:10;:17;;-1:-1:-1;;;;5039:17:0;-1:-1:-1;;;5039:17:0;;;12496:15;12488:57:::1;;;::::0;-1:-1:-1;;;12488:57:0;;15041:2:1;12488:57:0::1;::::0;::::1;15023:21:1::0;15080:2;15060:18;;;15053:30;15119:31;15099:18;;;15092:59;15168:18;;12488:57:0::1;14839:353:1::0;12488:57:0::1;12580:16;::::0;;12594:1:::1;12580:16:::0;;;;;::::1;::::0;;12556:21:::1;::::0;12580:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12580:16:0::1;12556:40;;12625:4;12607;12612:1;12607:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12607:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12651:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;12651:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;12607:7;;12651:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12641:4;12646:1;12641:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12641:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;12716:15:::1;::::0;12684:62:::1;::::0;12701:4:::1;::::0;12716:15:::1;12734:11:::0;12684:8:::1;:62::i;:::-;12757:15;::::0;:196:::1;::::0;-1:-1:-1;;;12757:196:0;;-1:-1:-1;;;;;12757:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12838:11;;12757:15:::1;::::0;12880:4;;12907::::1;::::0;12927:15:::1;::::0;12757:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5092:5:0;5079:18;;-1:-1:-1;;;;5079:18:0;;;-1:-1:-1;;;;12415:546:0:o;7451:198::-;7523:1;7514:6;:10;7506:52;;;;-1:-1:-1;;;7506:52:0;;15041:2:1;7506:52:0;;;15023:21:1;15080:2;15060:18;;;15053:30;15119:31;15099:18;;;15092:59;15168:18;;7506:52:0;14839:353:1;7506:52:0;7569:10;;-1:-1:-1;;;;;7569:10:0;:31;7589:10;7598:1;7589:6;:10;:::i;:::-;7569:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7611:9:0;;-1:-1:-1;;;;;7611:9:0;:30;7630:10;7639:1;7630:6;:10;:::i;:::-;7611:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7451:198;:::o;14:597: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;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:131::-;-1:-1:-1;;;;;691:31:1;;681:42;;671:70;;737:1;734;727:12;752:315;820:6;828;881:2;869:9;860:7;856:23;852:32;849:52;;;897:1;894;887:12;849:52;936:9;923:23;955:31;980:5;955:31;:::i;:::-;1005:5;1057:2;1042:18;;;;1029:32;;-1:-1:-1;;;752:315:1:o;1264:248::-;1332:6;1340;1393:2;1381:9;1372:7;1368:23;1364:32;1361:52;;;1409:1;1406;1399:12;1361:52;-1:-1:-1;;1432:23:1;;;1502:2;1487:18;;;1474:32;;-1:-1:-1;1264:248:1:o;1923:456::-;2000:6;2008;2016;2069:2;2057:9;2048:7;2044:23;2040:32;2037:52;;;2085:1;2082;2075:12;2037:52;2124:9;2111:23;2143:31;2168:5;2143:31;:::i;:::-;2193:5;-1:-1:-1;2250:2:1;2235:18;;2222:32;2263:33;2222:32;2263:33;:::i;:::-;1923:456;;2315:7;;-1:-1:-1;;;2369:2:1;2354:18;;;;2341:32;;1923:456::o;2781:247::-;2840:6;2893:2;2881:9;2872:7;2868:23;2864:32;2861:52;;;2909:1;2906;2899:12;2861:52;2948:9;2935:23;2967:31;2992:5;2967:31;:::i;3033:388::-;3101:6;3109;3162:2;3150:9;3141:7;3137:23;3133:32;3130:52;;;3178:1;3175;3168:12;3130:52;3217:9;3204:23;3236:31;3261:5;3236:31;:::i;:::-;3286:5;-1:-1:-1;3343:2:1;3328:18;;3315:32;3356:33;3315:32;3356:33;:::i;:::-;3408:7;3398:17;;;3033:388;;;;;:::o;3426:398::-;3628:2;3610:21;;;3667:2;3647:18;;;3640:30;3706:34;3701:2;3686:18;;3679:62;-1:-1:-1;;;3772:2:1;3757:18;;3750:32;3814:3;3799:19;;3426:398::o;4177:356::-;4379:2;4361:21;;;4398:18;;;4391:30;4457:34;4452:2;4437:18;;4430:62;4524:2;4509:18;;4177:356::o;4892:127::-;4953:10;4948:3;4944:20;4941:1;4934:31;4984:4;4981:1;4974:15;5008:4;5005:1;4998:15;5024:422;5113:1;5156:5;5113:1;5170:270;5191:7;5181:8;5178:21;5170:270;;;5250:4;5246:1;5242:6;5238:17;5232:4;5229:27;5226:53;;;5259:18;;:::i;:::-;5309:7;5299:8;5295:22;5292:55;;;5329:16;;;;5292:55;5408:22;;;;5368:15;;;;5170:270;;;5174:3;5024:422;;;;;:::o;5451:806::-;5500:5;5530:8;5520:80;;-1:-1:-1;5571:1:1;5585:5;;5520:80;5619:4;5609:76;;-1:-1:-1;5656:1:1;5670:5;;5609:76;5701:4;5719:1;5714:59;;;;5787:1;5782:130;;;;5694:218;;5714:59;5744:1;5735:10;;5758:5;;;5782:130;5819:3;5809:8;5806:17;5803:43;;;5826:18;;:::i;:::-;-1:-1:-1;;5882:1:1;5868:16;;5897:5;;5694:218;;5996:2;5986:8;5983:16;5977:3;5971:4;5968:13;5964:36;5958:2;5948:8;5945:16;5940:2;5934:4;5931:12;5927:35;5924:77;5921:159;;;-1:-1:-1;6033:19:1;;;6065:5;;5921:159;6112:34;6137:8;6131:4;6112:34;:::i;:::-;6182:6;6178:1;6174:6;6170:19;6161:7;6158:32;6155:58;;;6193:18;;:::i;:::-;6231:20;;5451:806;-1:-1:-1;;;5451:806:1:o;6262:140::-;6320:5;6349:47;6390:4;6380:8;6376:19;6370:4;6349:47;:::i;6407:168::-;6447:7;6513:1;6509;6505:6;6501:14;6498:1;6495:21;6490:1;6483:9;6476:17;6472:45;6469:71;;;6520:18;;:::i;:::-;-1:-1:-1;6560:9:1;;6407:168::o;6989:125::-;7029:4;7057:1;7054;7051:8;7048:34;;;7062:18;;:::i;:::-;-1:-1:-1;7099:9:1;;6989:125::o;8250:184::-;8320:6;8373:2;8361:9;8352:7;8348:23;8344:32;8341:52;;;8389:1;8386;8379:12;8341:52;-1:-1:-1;8412:16:1;;8250:184;-1:-1:-1;8250:184:1:o;8726:277::-;8793:6;8846:2;8834:9;8825:7;8821:23;8817:32;8814:52;;;8862:1;8859;8852:12;8814:52;8894:9;8888:16;8947:5;8940:13;8933:21;8926:5;8923:32;8913:60;;8969:1;8966;8959:12;9364:251;9434:6;9487:2;9475:9;9466:7;9462:23;9458:32;9455:52;;;9503:1;9500;9493:12;9455:52;9535:9;9529:16;9554:31;9579:5;9554:31;:::i;10541:306::-;10629:6;10637;10645;10698:2;10686:9;10677:7;10673:23;10669:32;10666:52;;;10714:1;10711;10704:12;10666:52;10743:9;10737:16;10727:26;;10793:2;10782:9;10778:18;10772:25;10762:35;;10837:2;10826:9;10822:18;10816:25;10806:35;;10541:306;;;;;:::o;13635:128::-;13675:3;13706:1;13702:6;13699:1;13696:13;13693:39;;;13712:18;;:::i;:::-;-1:-1:-1;13748:9:1;;13635:128::o;14477:135::-;14516:3;-1:-1:-1;;14537:17:1;;14534:43;;;14557:18;;:::i;:::-;-1:-1:-1;14604:1:1;14593:13;;14477:135::o;14617:217::-;14657:1;14683;14673:132;;14727:10;14722:3;14718:20;14715:1;14708:31;14762:4;14759:1;14752:15;14790:4;14787:1;14780:15;14673:132;-1:-1:-1;14819:9:1;;14617:217::o;15329:127::-;15390:10;15385:3;15381:20;15378:1;15371:31;15421:4;15418:1;15411:15;15445:4;15442:1;15435:15;15461:980;15723:4;15771:3;15760:9;15756:19;15802:6;15791:9;15784:25;15828:2;15866:6;15861:2;15850:9;15846:18;15839:34;15909:3;15904:2;15893:9;15889:18;15882:31;15933:6;15968;15962:13;15999:6;15991;15984:22;16037:3;16026:9;16022:19;16015:26;;16076:2;16068:6;16064:15;16050:29;;16097:1;16107:195;16121:6;16118:1;16115:13;16107:195;;;16186:13;;-1:-1:-1;;;;;16182:39:1;16170:52;;16277:15;;;;16242:12;;;;16218:1;16136:9;16107:195;;;-1:-1:-1;;;;;;;16358:32:1;;;;16353:2;16338:18;;16331:60;-1:-1:-1;;;16422:3:1;16407:19;16400:35;16319:3;15461:980;-1:-1:-1;;;15461:980:1:o

Swarm Source

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