ETH Price: $2,379.20 (-3.11%)

Token

Mog Trump (MOGA)
 

Overview

Max Total Supply

1,000,000,000 MOGA

Holders

75

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
16,082,555.434540164884639875 MOGA

Value
$0.00
0xde90e1d53982e1d61eb138e46cde4961e3c426c1
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:
MOGA

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-07-19
*/

/**
    https://mogtrump.live
    https://t.me/MogTrumpErc
    https://x.com/MogTrumpErc
 */

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.10;

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

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

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _transferOwnership(_msgSender());
    }

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

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

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

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

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

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

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

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

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

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

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

library SafeMath {
    function tryAdd(uint256 a, uint256 b)
        internal
        pure
        returns (bool, uint256)
    {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    function trySub(uint256 a, uint256 b)
        internal
        pure
        returns (bool, uint256)
    {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    function tryMul(uint256 a, uint256 b)
        internal
        pure
        returns (bool, uint256)
    {
        unchecked {
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    function tryDiv(uint256 a, uint256 b)
        internal
        pure
        returns (bool, uint256)
    {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    function tryMod(uint256 a, uint256 b)
        internal
        pure
        returns (bool, uint256)
    {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

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

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

    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}

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

interface IUniswapV2Router02 {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );

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

contract MOGA is IERC20, Ownable {
    using SafeMath for uint256;

    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    uint256 private _totalSupply = 10**27;
    string private _name = "Mog Trump";
    string private _symbol = "MOGA";

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

    bool private swapping;

    address public marketingWallet;
    address public DevWallet;

    uint256 public maxTransaction = (_totalSupply * 200) / 10000;
    uint256 public swapTokensAtAmount = (_totalSupply * 5) / 1000000;
    uint256 public maxWallet = (_totalSupply * 200) / 10000;

    bool public LimitsEnabledSponks = true;
    bool public SparkTradingEnabled = false;
    bool public SwapEnabledSp = false;

    uint256 public buyTotalFees = 30;
    uint256 public buyMarketingFee = 30;
    uint256 public buyDevFee = 0;

    uint256 public sellTotalFees = 30;
    uint256 public sellMarketingFee = 30;
    uint256 public sellDevFee = 0;

    uint256 public tokensForMarketing;
    uint256 public tokensForDev;

    mapping(address => bool) private _isBlackList;
    mapping(address => bool) private _isExcludedFromFees;
    mapping(address => bool) public _isExcludedmaxTransaction;

    mapping(address => bool) public automatedMarketMakerPairs;

    constructor() {
        uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );

        marketingWallet = address(0x2a5F61117A0f26aff0F1E0299a6baCb1d92bA274);
        DevWallet = address(0x2a5F61117A0f26aff0F1E0299a6baCb1d92bA274);

        _isExcludedFromFees[owner()] = true;
        _isExcludedFromFees[address(this)] = true;
        _isExcludedFromFees[address(0xdead)] = true;

        _isExcludedmaxTransaction[owner()] = true;
        _isExcludedmaxTransaction[address(this)] = true;
        _isExcludedmaxTransaction[address(0xdead)] = true;

        _balances[msg.sender] = _totalSupply;

        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable {}

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

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

    function decimals() public view virtual returns (uint8) {
        return 18;
    }

    function totalSupply() public view virtual returns (uint256) {
        return _totalSupply;
    }

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

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

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

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

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

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

        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue)
        public
        virtual
        returns (bool)
    {
        _approve(
            _msgSender(),
            spender,
            _allowances[_msgSender()][spender] + addedValue
        );
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue)
        public
        virtual
        returns (bool)
    {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(
            currentAllowance >= subtractedValue,
            "ERC20: decreased allowance below zero"
        );
        unchecked {
            _approve(_msgSender(), spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

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

    function createPair() external onlyOwner {
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(
            address(this),
            uniswapV2Router.WETH()
        );

        automatedMarketMakerPairs[address(uniswapV2Pair)] = true;

        _approve(address(this), address(uniswapV2Router), _totalSupply);

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

        SparkTradingEnabled = true;
        SwapEnabledSp = true;
    }

    // remove limits after token is stable
    function removeLimits() external onlyOwner returns (bool) {
        LimitsEnabledSponks = false;
        return true;
    }

    function updateFees(
        uint256 _buyMarketingFee,
        uint256 _buyDevFee,
        uint256 _sellMarketingFee,
        uint256 _sellDevFee
    ) external onlyOwner {
        buyMarketingFee = _buyMarketingFee;
        buyDevFee = _buyDevFee;
        buyTotalFees = buyMarketingFee + buyDevFee;
        sellMarketingFee = _sellMarketingFee;
        sellDevFee = _sellDevFee;
        sellTotalFees = sellMarketingFee + sellDevFee;
        require(
            buyTotalFees <= 99 && sellTotalFees <= 99,
            "Must keep fees at 99% or less"
        );
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(!_isBlackList[from], "[from] black list");
        require(!_isBlackList[to], "[to] black list");

        if (from == address(this) || to == address(this) || amount == 0) {
            internalTransfer(from, to, amount);
            return;
        }

        if (LimitsEnabledSponks) {
            if (
                !_isExcludedmaxTransaction[from] &&
                !_isExcludedmaxTransaction[to] &&
                !swapping
            ) {
                if (!SparkTradingEnabled) {
                    require(
                        _isExcludedFromFees[from] || _isExcludedFromFees[to],
                        "Trading is not active."
                    );
                }

                if (
                    automatedMarketMakerPairs[from] &&
                    !_isExcludedmaxTransaction[to]
                ) {
                    require(
                        amount <= maxTransaction,
                        "Buy transfer amount exceeds the maxTransaction."
                    );
                    require(
                        amount + balanceOf(to) <= maxWallet,
                        "Max wallet exceeded"
                    );
                } else if (
                    automatedMarketMakerPairs[to] &&
                    !_isExcludedmaxTransaction[from]
                ) {
                    require(
                        amount <= maxTransaction,
                        "Sell transfer amount exceeds the maxTransaction."
                    );
                } else if (
                    !_isExcludedmaxTransaction[to] &&
                    !automatedMarketMakerPairs[to]
                ) {
                    require(
                        amount + balanceOf(to) <= maxWallet,
                        "Max wallet exceeded"
                    );
                }
            }
        }

        if (
            SwapEnabledSp &&
            !swapping &&
            automatedMarketMakerPairs[to] &&
            !_isExcludedFromFees[from] &&
            !_isExcludedFromFees[to]
        ) {
            swapping = true;
            swapBack();
            swapping = false;
        }

        bool takeFee = !(from == marketingWallet || from == DevWallet);

        uint256 fees = amount;
        if (takeFee) {
            if (automatedMarketMakerPairs[to] && sellTotalFees > 0) {
                fees = amount.mul(sellTotalFees).div(100);
                tokensForDev += (fees * sellDevFee) / sellTotalFees;
                tokensForMarketing += (fees * sellMarketingFee) / sellTotalFees;
            } else if (automatedMarketMakerPairs[from] && buyTotalFees > 0) {
                fees = amount.mul(buyTotalFees).div(100);
                tokensForDev += (fees * buyDevFee) / buyTotalFees;
                tokensForMarketing += (fees * buyMarketingFee) / buyTotalFees;
            } else fees = 0;

            if (fees > 0) {
                _balances[address(this)] = _balances[address(this)] + fees;
                emit Transfer(from, address(this), fees);
            }
        }

        _balances[from] =
            _balances[from] -
            (takeFee ? amount : (amount - fees));
        _balances[to] = _balances[to] + (takeFee ? (amount - fees) : amount);
        emit Transfer(from, to, amount);
    }

    function internalTransfer(
        address from,
        address to,
        uint256 amount
    ) internal {
        _balances[from] = _balances[from] - amount;
        _balances[to] = _balances[to] + amount;
        emit Transfer(from, to, amount);
    }

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

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

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

        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this),
            block.timestamp
        );
    }

    function swapBack() private {
        uint256 contractBalance = balanceOf(address(this));
        uint256 totalTokensToSwap = tokensForMarketing + tokensForDev;

        if (contractBalance > swapTokensAtAmount * 2000) {
            contractBalance = swapTokensAtAmount * 2000;
        }

        uint256 initialETHBalance = address(this).balance;
        if (contractBalance > swapTokensAtAmount)
            swapTokensForEth(contractBalance);

        uint256 ethBalance = address(this).balance.sub(initialETHBalance);
        uint256 ethForDev = ethBalance.mul(tokensForDev).div(
            totalTokensToSwap + 1
        );

        tokensForMarketing = 0;
        tokensForDev = 0;

        payable(DevWallet).transfer(ethForDev);
        payable(marketingWallet).transfer(address(this).balance);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DevWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"LimitsEnabledSponks","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SparkTradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SwapEnabledSp","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedmaxTransaction","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"createPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransaction","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForDev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyMarketingFee","type":"uint256"},{"internalType":"uint256","name":"_buyDevFee","type":"uint256"},{"internalType":"uint256","name":"_sellMarketingFee","type":"uint256"},{"internalType":"uint256","name":"_sellDevFee","type":"uint256"}],"name":"updateFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6b033b2e3c9fd0803ce800000060035560c0604052600960809081526804d6f67205472756d760bc1b60a0526004906200003a9082620003b7565b506040805180820190915260048152634d4f474160e01b6020820152600590620000659082620003b7565b5061271060035460c86200007a919062000483565b620000869190620004af565b600a55620f424060035460056200009e919062000483565b620000aa9190620004af565b600b5561271060035460c8620000c1919062000483565b620000cd9190620004af565b600c55600d805462ffffff19166001179055601e600e819055600f8190556000601081905560118290556012919091556013553480156200010d57600080fd5b506200011933620002c2565b600680546001600160a01b0319908116737a250d5630b4cf539739df2c5dacb4c659f2488d17909155600880548216732a5f61117a0f26aff0f1e0299a6bacb1d92ba27490811790915560098054909216179055600160176000620001866000546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff199586161790553081526017909252812080548316600190811790915561dead82527f43fedf50e12e5c047fbe3576d03ab50250348e9a6030f531ab6d4ce10f5b0303805490931681179092556018906200020e6000546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff19958616179055308152601883528181208054851660019081179091557fe3ec2099396b7359df1c566dfdf9dfdb5e22fd64a6ede9d61aa32b2f63968fd680549095168117909455600354338083529484528282208190559151918252917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620004d2565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200033d57607f821691505b6020821081036200035e57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620003b257600081815260208120601f850160051c810160208610156200038d5750805b601f850160051c820191505b81811015620003ae5782815560010162000399565b5050505b505050565b81516001600160401b03811115620003d357620003d362000312565b620003eb81620003e4845462000328565b8462000364565b602080601f8311600181146200042357600084156200040a5750858301515b600019600386901b1c1916600185901b178555620003ae565b600085815260208120601f198616915b82811015620004545788860151825594840194600190910190840162000433565b5085821015620004735787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b8082028115828204841417620004a957634e487b7160e01b600052601160045260246000fd5b92915050565b600082620004cd57634e487b7160e01b600052601260045260246000fd5b500490565b611e6680620004e26000396000f3fe60806040526004361061021e5760003560e01c806395d89b4111610123578063c3f70b52116100ab578063e2f456051161006f578063e2f4560514610628578063e3c69c9b1461063e578063e9a3a8a01461065e578063f2fde38b1461067d578063f8b45b051461069d57600080fd5b8063c3f70b5214610566578063c6616ba11461057c578063d85ba0631461059c578063dd62ed3e146105b2578063e1bc3394146105f857600080fd5b8063a0d82dc5116100f2578063a0d82dc5146104c0578063a457c2d7146104d6578063a9059cbb146104f6578063b115e4df14610516578063b62496f51461053657600080fd5b806395d89b411461046a5780639c3b4fdc1461047f5780639e78fb4f146104955780639fccce32146104aa57600080fd5b80636a486a8e116101a657806375f0a8741161017557806375f0a874146103e65780637b8d61cc146104065780637bce5a04146104205780638da5cb5b14610436578063921369131461045457600080fd5b80636a486a8e1461036e57806370a0823114610384578063715018a6146103ba578063751039fc146103d157600080fd5b80631f3fed8f116101ed5780631f3fed8f146102dc57806323b872dd146102f2578063313ce56714610312578063395093511461032e57806349bd5a5e1461034e57600080fd5b806306fdde031461022a578063095ea7b3146102555780631694505e1461028557806318160ddd146102bd57600080fd5b3661022557005b600080fd5b34801561023657600080fd5b5061023f6106b3565b60405161024c9190611b22565b60405180910390f35b34801561026157600080fd5b50610275610270366004611b85565b610745565b604051901515815260200161024c565b34801561029157600080fd5b506006546102a5906001600160a01b031681565b6040516001600160a01b03909116815260200161024c565b3480156102c957600080fd5b506003545b60405190815260200161024c565b3480156102e857600080fd5b506102ce60145481565b3480156102fe57600080fd5b5061027561030d366004611bb1565b61075c565b34801561031e57600080fd5b506040516012815260200161024c565b34801561033a57600080fd5b50610275610349366004611b85565b61080b565b34801561035a57600080fd5b506007546102a5906001600160a01b031681565b34801561037a57600080fd5b506102ce60115481565b34801561039057600080fd5b506102ce61039f366004611bf2565b6001600160a01b031660009081526001602052604090205490565b3480156103c657600080fd5b506103cf610847565b005b3480156103dd57600080fd5b5061027561087d565b3480156103f257600080fd5b506008546102a5906001600160a01b031681565b34801561041257600080fd5b50600d546102759060ff1681565b34801561042c57600080fd5b506102ce600f5481565b34801561044257600080fd5b506000546001600160a01b03166102a5565b34801561046057600080fd5b506102ce60125481565b34801561047657600080fd5b5061023f6108b8565b34801561048b57600080fd5b506102ce60105481565b3480156104a157600080fd5b506103cf6108c7565b3480156104b657600080fd5b506102ce60155481565b3480156104cc57600080fd5b506102ce60135481565b3480156104e257600080fd5b506102756104f1366004611b85565b610b94565b34801561050257600080fd5b50610275610511366004611b85565b610c2d565b34801561052257600080fd5b506009546102a5906001600160a01b031681565b34801561054257600080fd5b50610275610551366004611bf2565b60196020526000908152604090205460ff1681565b34801561057257600080fd5b506102ce600a5481565b34801561058857600080fd5b506103cf610597366004611c0f565b610c3a565b3480156105a857600080fd5b506102ce600e5481565b3480156105be57600080fd5b506102ce6105cd366004611c41565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561060457600080fd5b50610275610613366004611bf2565b60186020526000908152604090205460ff1681565b34801561063457600080fd5b506102ce600b5481565b34801561064a57600080fd5b50600d546102759062010000900460ff1681565b34801561066a57600080fd5b50600d5461027590610100900460ff1681565b34801561068957600080fd5b506103cf610698366004611bf2565b610cfa565b3480156106a957600080fd5b506102ce600c5481565b6060600480546106c290611c7a565b80601f01602080910402602001604051908101604052809291908181526020018280546106ee90611c7a565b801561073b5780601f106107105761010080835404028352916020019161073b565b820191906000526020600020905b81548152906001019060200180831161071e57829003601f168201915b5050505050905090565b6000610752338484610d95565b5060015b92915050565b6000610769848484610eba565b6001600160a01b0384166000908152600260209081526040808320338452909152902054828110156107f35760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6108008533858403610d95565b506001949350505050565b3360008181526002602090815260408083206001600160a01b03871684529091528120549091610752918590610842908690611cca565b610d95565b6000546001600160a01b031633146108715760405162461bcd60e51b81526004016107ea90611cdd565b61087b6000611795565b565b600080546001600160a01b031633146108a85760405162461bcd60e51b81526004016107ea90611cdd565b50600d805460ff19169055600190565b6060600580546106c290611c7a565b6000546001600160a01b031633146108f15760405162461bcd60e51b81526004016107ea90611cdd565b600660009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610944573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109689190611d12565b6001600160a01b031663c9c6539630600660009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ee9190611d12565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610a3b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a5f9190611d12565b600780546001600160a01b0319166001600160a01b039283169081179091556000908152601960205260409020805460ff19166001179055600654600354610aaa9230921690610d95565b6006546001600160a01b031663f305d7194730610adc816001600160a01b031660009081526001602052604090205490565b600080610af16000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610b59573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610b7e9190611d2f565b5050600d805462ffff0019166201010017905550565b3360009081526002602090815260408083206001600160a01b038616845290915281205482811015610c165760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016107ea565b610c233385858403610d95565b5060019392505050565b6000610752338484610eba565b6000546001600160a01b03163314610c645760405162461bcd60e51b81526004016107ea90611cdd565b600f8490556010839055610c788385611cca565b600e5560128290556013819055610c8f8183611cca565b601155600e54606310801590610ca85750606360115411155b610cf45760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420393925206f72206c65737300000060448201526064016107ea565b50505050565b6000546001600160a01b03163314610d245760405162461bcd60e51b81526004016107ea90611cdd565b6001600160a01b038116610d895760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107ea565b610d9281611795565b50565b6001600160a01b038316610df75760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107ea565b6001600160a01b038216610e585760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107ea565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610f1e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107ea565b6001600160a01b038216610f805760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107ea565b6001600160a01b03831660009081526016602052604090205460ff1615610fdd5760405162461bcd60e51b815260206004820152601160248201527016d99c9bdb5748189b1858dac81b1a5cdd607a1b60448201526064016107ea565b6001600160a01b03821660009081526016602052604090205460ff16156110385760405162461bcd60e51b815260206004820152600f60248201526e16dd1bd748189b1858dac81b1a5cdd608a1b60448201526064016107ea565b6001600160a01b03831630148061105757506001600160a01b03821630145b80611060575080155b15611075576110708383836117e5565b505050565b600d5460ff16156113f1576001600160a01b03831660009081526018602052604090205460ff161580156110c257506001600160a01b03821660009081526018602052604090205460ff16155b80156110d85750600754600160a01b900460ff16155b156113f157600d54610100900460ff16611170576001600160a01b03831660009081526017602052604090205460ff168061112b57506001600160a01b03821660009081526017602052604090205460ff165b6111705760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b60448201526064016107ea565b6001600160a01b03831660009081526019602052604090205460ff1680156111b157506001600160a01b03821660009081526018602052604090205460ff16155b1561128f57600a548111156112205760405162461bcd60e51b815260206004820152602f60248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201526e36b0bc2a3930b739b0b1ba34b7b71760891b60648201526084016107ea565b600c546001600160a01b0383166000908152600160205260409020546112469083611cca565b111561128a5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016107ea565b6113f1565b6001600160a01b03821660009081526019602052604090205460ff1680156112d057506001600160a01b03831660009081526018602052604090205460ff16155b1561134057600a5481111561128a5760405162461bcd60e51b815260206004820152603060248201527f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560448201526f1036b0bc2a3930b739b0b1ba34b7b71760811b60648201526084016107ea565b6001600160a01b03821660009081526018602052604090205460ff1615801561138257506001600160a01b03821660009081526019602052604090205460ff16155b156113f157600c546001600160a01b0383166000908152600160205260409020546113ad9083611cca565b11156113f15760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016107ea565b600d5462010000900460ff1680156114135750600754600160a01b900460ff16155b801561143757506001600160a01b03821660009081526019602052604090205460ff165b801561145c57506001600160a01b03831660009081526017602052604090205460ff16155b801561148157506001600160a01b03821660009081526017602052604090205460ff16155b156114af576007805460ff60a01b1916600160a01b1790556114a161188d565b6007805460ff60a01b191690555b6008546000906001600160a01b03858116911614806114db57506009546001600160a01b038581169116145b1590508181156116a8576001600160a01b03841660009081526019602052604090205460ff16801561150f57506000601154115b1561159d57611534606461152e601154866119a590919063ffffffff16565b906119b8565b9050601154601354826115479190611d5d565b6115519190611d74565b601560008282546115629190611cca565b90915550506011546012546115779083611d5d565b6115819190611d74565b601460008282546115929190611cca565b9091555061162d9050565b6001600160a01b03851660009081526019602052604090205460ff1680156115c757506000600e54115b15611629576115e6606461152e600e54866119a590919063ffffffff16565b9050600e54601054826115f99190611d5d565b6116039190611d74565b601560008282546116149190611cca565b9091555050600e54600f546115779083611d5d565b5060005b80156116a8573060009081526001602052604090205461164e908290611cca565b30600081815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061169f9085815260200190565b60405180910390a35b816116bc576116b78184611d96565b6116be565b825b6001600160a01b0386166000908152600160205260409020546116e19190611d96565b6001600160a01b03861660009081526001602052604090205581611705578261170f565b61170f8184611d96565b6001600160a01b0385166000908152600160205260409020546117329190611cca565b6001600160a01b0380861660008181526001602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117869087815260200190565b60405180910390a35050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038316600090815260016020526040902054611809908290611d96565b6001600160a01b038085166000908152600160205260408082209390935590841681522054611839908290611cca565b6001600160a01b0380841660008181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610ead9085815260200190565b30600090815260016020526040812054905060006015546014546118b19190611cca565b9050600b546107d06118c39190611d5d565b8211156118dc57600b546118d9906107d0611d5d565b91505b600b5447908311156118f1576118f1836119c4565b60006118fd4783611b16565b9050600061191d61190f856001611cca565b60155461152e9085906119a5565b6000601481905560158190556009546040519293506001600160a01b03169183156108fc0291849190818181858888f19350505050158015611963573d6000803e3d6000fd5b506008546040516001600160a01b03909116904780156108fc02916000818181858888f1935050505015801561199d573d6000803e3d6000fd5b505050505050565b60006119b18284611d5d565b9392505050565b60006119b18284611d74565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106119f9576119f9611da9565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611a52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a769190611d12565b81600181518110611a8957611a89611da9565b6001600160a01b039283166020918202929092010152600654611aaf9130911684610d95565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790611ae8908590600090869030904290600401611dbf565b600060405180830381600087803b158015611b0257600080fd5b505af115801561199d573d6000803e3d6000fd5b60006119b18284611d96565b600060208083528351808285015260005b81811015611b4f57858101830151858201604001528201611b33565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610d9257600080fd5b60008060408385031215611b9857600080fd5b8235611ba381611b70565b946020939093013593505050565b600080600060608486031215611bc657600080fd5b8335611bd181611b70565b92506020840135611be181611b70565b929592945050506040919091013590565b600060208284031215611c0457600080fd5b81356119b181611b70565b60008060008060808587031215611c2557600080fd5b5050823594602084013594506040840135936060013592509050565b60008060408385031215611c5457600080fd5b8235611c5f81611b70565b91506020830135611c6f81611b70565b809150509250929050565b600181811c90821680611c8e57607f821691505b602082108103611cae57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561075657610756611cb4565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060208284031215611d2457600080fd5b81516119b181611b70565b600080600060608486031215611d4457600080fd5b8351925060208401519150604084015190509250925092565b808202811582820484141761075657610756611cb4565b600082611d9157634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561075657610756611cb4565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611e0f5784516001600160a01b031683529383019391830191600101611dea565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212206fe950297efd4a1121bb094088d4d5e0a3ead1cc68e037862b05f806afc04ad564736f6c63430008130033

Deployed Bytecode

0x60806040526004361061021e5760003560e01c806395d89b4111610123578063c3f70b52116100ab578063e2f456051161006f578063e2f4560514610628578063e3c69c9b1461063e578063e9a3a8a01461065e578063f2fde38b1461067d578063f8b45b051461069d57600080fd5b8063c3f70b5214610566578063c6616ba11461057c578063d85ba0631461059c578063dd62ed3e146105b2578063e1bc3394146105f857600080fd5b8063a0d82dc5116100f2578063a0d82dc5146104c0578063a457c2d7146104d6578063a9059cbb146104f6578063b115e4df14610516578063b62496f51461053657600080fd5b806395d89b411461046a5780639c3b4fdc1461047f5780639e78fb4f146104955780639fccce32146104aa57600080fd5b80636a486a8e116101a657806375f0a8741161017557806375f0a874146103e65780637b8d61cc146104065780637bce5a04146104205780638da5cb5b14610436578063921369131461045457600080fd5b80636a486a8e1461036e57806370a0823114610384578063715018a6146103ba578063751039fc146103d157600080fd5b80631f3fed8f116101ed5780631f3fed8f146102dc57806323b872dd146102f2578063313ce56714610312578063395093511461032e57806349bd5a5e1461034e57600080fd5b806306fdde031461022a578063095ea7b3146102555780631694505e1461028557806318160ddd146102bd57600080fd5b3661022557005b600080fd5b34801561023657600080fd5b5061023f6106b3565b60405161024c9190611b22565b60405180910390f35b34801561026157600080fd5b50610275610270366004611b85565b610745565b604051901515815260200161024c565b34801561029157600080fd5b506006546102a5906001600160a01b031681565b6040516001600160a01b03909116815260200161024c565b3480156102c957600080fd5b506003545b60405190815260200161024c565b3480156102e857600080fd5b506102ce60145481565b3480156102fe57600080fd5b5061027561030d366004611bb1565b61075c565b34801561031e57600080fd5b506040516012815260200161024c565b34801561033a57600080fd5b50610275610349366004611b85565b61080b565b34801561035a57600080fd5b506007546102a5906001600160a01b031681565b34801561037a57600080fd5b506102ce60115481565b34801561039057600080fd5b506102ce61039f366004611bf2565b6001600160a01b031660009081526001602052604090205490565b3480156103c657600080fd5b506103cf610847565b005b3480156103dd57600080fd5b5061027561087d565b3480156103f257600080fd5b506008546102a5906001600160a01b031681565b34801561041257600080fd5b50600d546102759060ff1681565b34801561042c57600080fd5b506102ce600f5481565b34801561044257600080fd5b506000546001600160a01b03166102a5565b34801561046057600080fd5b506102ce60125481565b34801561047657600080fd5b5061023f6108b8565b34801561048b57600080fd5b506102ce60105481565b3480156104a157600080fd5b506103cf6108c7565b3480156104b657600080fd5b506102ce60155481565b3480156104cc57600080fd5b506102ce60135481565b3480156104e257600080fd5b506102756104f1366004611b85565b610b94565b34801561050257600080fd5b50610275610511366004611b85565b610c2d565b34801561052257600080fd5b506009546102a5906001600160a01b031681565b34801561054257600080fd5b50610275610551366004611bf2565b60196020526000908152604090205460ff1681565b34801561057257600080fd5b506102ce600a5481565b34801561058857600080fd5b506103cf610597366004611c0f565b610c3a565b3480156105a857600080fd5b506102ce600e5481565b3480156105be57600080fd5b506102ce6105cd366004611c41565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561060457600080fd5b50610275610613366004611bf2565b60186020526000908152604090205460ff1681565b34801561063457600080fd5b506102ce600b5481565b34801561064a57600080fd5b50600d546102759062010000900460ff1681565b34801561066a57600080fd5b50600d5461027590610100900460ff1681565b34801561068957600080fd5b506103cf610698366004611bf2565b610cfa565b3480156106a957600080fd5b506102ce600c5481565b6060600480546106c290611c7a565b80601f01602080910402602001604051908101604052809291908181526020018280546106ee90611c7a565b801561073b5780601f106107105761010080835404028352916020019161073b565b820191906000526020600020905b81548152906001019060200180831161071e57829003601f168201915b5050505050905090565b6000610752338484610d95565b5060015b92915050565b6000610769848484610eba565b6001600160a01b0384166000908152600260209081526040808320338452909152902054828110156107f35760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6108008533858403610d95565b506001949350505050565b3360008181526002602090815260408083206001600160a01b03871684529091528120549091610752918590610842908690611cca565b610d95565b6000546001600160a01b031633146108715760405162461bcd60e51b81526004016107ea90611cdd565b61087b6000611795565b565b600080546001600160a01b031633146108a85760405162461bcd60e51b81526004016107ea90611cdd565b50600d805460ff19169055600190565b6060600580546106c290611c7a565b6000546001600160a01b031633146108f15760405162461bcd60e51b81526004016107ea90611cdd565b600660009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610944573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109689190611d12565b6001600160a01b031663c9c6539630600660009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ee9190611d12565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610a3b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a5f9190611d12565b600780546001600160a01b0319166001600160a01b039283169081179091556000908152601960205260409020805460ff19166001179055600654600354610aaa9230921690610d95565b6006546001600160a01b031663f305d7194730610adc816001600160a01b031660009081526001602052604090205490565b600080610af16000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610b59573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610b7e9190611d2f565b5050600d805462ffff0019166201010017905550565b3360009081526002602090815260408083206001600160a01b038616845290915281205482811015610c165760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016107ea565b610c233385858403610d95565b5060019392505050565b6000610752338484610eba565b6000546001600160a01b03163314610c645760405162461bcd60e51b81526004016107ea90611cdd565b600f8490556010839055610c788385611cca565b600e5560128290556013819055610c8f8183611cca565b601155600e54606310801590610ca85750606360115411155b610cf45760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420393925206f72206c65737300000060448201526064016107ea565b50505050565b6000546001600160a01b03163314610d245760405162461bcd60e51b81526004016107ea90611cdd565b6001600160a01b038116610d895760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107ea565b610d9281611795565b50565b6001600160a01b038316610df75760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107ea565b6001600160a01b038216610e585760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107ea565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610f1e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107ea565b6001600160a01b038216610f805760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107ea565b6001600160a01b03831660009081526016602052604090205460ff1615610fdd5760405162461bcd60e51b815260206004820152601160248201527016d99c9bdb5748189b1858dac81b1a5cdd607a1b60448201526064016107ea565b6001600160a01b03821660009081526016602052604090205460ff16156110385760405162461bcd60e51b815260206004820152600f60248201526e16dd1bd748189b1858dac81b1a5cdd608a1b60448201526064016107ea565b6001600160a01b03831630148061105757506001600160a01b03821630145b80611060575080155b15611075576110708383836117e5565b505050565b600d5460ff16156113f1576001600160a01b03831660009081526018602052604090205460ff161580156110c257506001600160a01b03821660009081526018602052604090205460ff16155b80156110d85750600754600160a01b900460ff16155b156113f157600d54610100900460ff16611170576001600160a01b03831660009081526017602052604090205460ff168061112b57506001600160a01b03821660009081526017602052604090205460ff165b6111705760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b60448201526064016107ea565b6001600160a01b03831660009081526019602052604090205460ff1680156111b157506001600160a01b03821660009081526018602052604090205460ff16155b1561128f57600a548111156112205760405162461bcd60e51b815260206004820152602f60248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201526e36b0bc2a3930b739b0b1ba34b7b71760891b60648201526084016107ea565b600c546001600160a01b0383166000908152600160205260409020546112469083611cca565b111561128a5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016107ea565b6113f1565b6001600160a01b03821660009081526019602052604090205460ff1680156112d057506001600160a01b03831660009081526018602052604090205460ff16155b1561134057600a5481111561128a5760405162461bcd60e51b815260206004820152603060248201527f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560448201526f1036b0bc2a3930b739b0b1ba34b7b71760811b60648201526084016107ea565b6001600160a01b03821660009081526018602052604090205460ff1615801561138257506001600160a01b03821660009081526019602052604090205460ff16155b156113f157600c546001600160a01b0383166000908152600160205260409020546113ad9083611cca565b11156113f15760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016107ea565b600d5462010000900460ff1680156114135750600754600160a01b900460ff16155b801561143757506001600160a01b03821660009081526019602052604090205460ff165b801561145c57506001600160a01b03831660009081526017602052604090205460ff16155b801561148157506001600160a01b03821660009081526017602052604090205460ff16155b156114af576007805460ff60a01b1916600160a01b1790556114a161188d565b6007805460ff60a01b191690555b6008546000906001600160a01b03858116911614806114db57506009546001600160a01b038581169116145b1590508181156116a8576001600160a01b03841660009081526019602052604090205460ff16801561150f57506000601154115b1561159d57611534606461152e601154866119a590919063ffffffff16565b906119b8565b9050601154601354826115479190611d5d565b6115519190611d74565b601560008282546115629190611cca565b90915550506011546012546115779083611d5d565b6115819190611d74565b601460008282546115929190611cca565b9091555061162d9050565b6001600160a01b03851660009081526019602052604090205460ff1680156115c757506000600e54115b15611629576115e6606461152e600e54866119a590919063ffffffff16565b9050600e54601054826115f99190611d5d565b6116039190611d74565b601560008282546116149190611cca565b9091555050600e54600f546115779083611d5d565b5060005b80156116a8573060009081526001602052604090205461164e908290611cca565b30600081815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061169f9085815260200190565b60405180910390a35b816116bc576116b78184611d96565b6116be565b825b6001600160a01b0386166000908152600160205260409020546116e19190611d96565b6001600160a01b03861660009081526001602052604090205581611705578261170f565b61170f8184611d96565b6001600160a01b0385166000908152600160205260409020546117329190611cca565b6001600160a01b0380861660008181526001602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117869087815260200190565b60405180910390a35050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038316600090815260016020526040902054611809908290611d96565b6001600160a01b038085166000908152600160205260408082209390935590841681522054611839908290611cca565b6001600160a01b0380841660008181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610ead9085815260200190565b30600090815260016020526040812054905060006015546014546118b19190611cca565b9050600b546107d06118c39190611d5d565b8211156118dc57600b546118d9906107d0611d5d565b91505b600b5447908311156118f1576118f1836119c4565b60006118fd4783611b16565b9050600061191d61190f856001611cca565b60155461152e9085906119a5565b6000601481905560158190556009546040519293506001600160a01b03169183156108fc0291849190818181858888f19350505050158015611963573d6000803e3d6000fd5b506008546040516001600160a01b03909116904780156108fc02916000818181858888f1935050505015801561199d573d6000803e3d6000fd5b505050505050565b60006119b18284611d5d565b9392505050565b60006119b18284611d74565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106119f9576119f9611da9565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611a52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a769190611d12565b81600181518110611a8957611a89611da9565b6001600160a01b039283166020918202929092010152600654611aaf9130911684610d95565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790611ae8908590600090869030904290600401611dbf565b600060405180830381600087803b158015611b0257600080fd5b505af115801561199d573d6000803e3d6000fd5b60006119b18284611d96565b600060208083528351808285015260005b81811015611b4f57858101830151858201604001528201611b33565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610d9257600080fd5b60008060408385031215611b9857600080fd5b8235611ba381611b70565b946020939093013593505050565b600080600060608486031215611bc657600080fd5b8335611bd181611b70565b92506020840135611be181611b70565b929592945050506040919091013590565b600060208284031215611c0457600080fd5b81356119b181611b70565b60008060008060808587031215611c2557600080fd5b5050823594602084013594506040840135936060013592509050565b60008060408385031215611c5457600080fd5b8235611c5f81611b70565b91506020830135611c6f81611b70565b809150509250929050565b600181811c90821680611c8e57607f821691505b602082108103611cae57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561075657610756611cb4565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060208284031215611d2457600080fd5b81516119b181611b70565b600080600060608486031215611d4457600080fd5b8351925060208401519150604084015190509250925092565b808202811582820484141761075657610756611cb4565b600082611d9157634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561075657610756611cb4565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611e0f5784516001600160a01b031683529383019391830191600101611dea565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212206fe950297efd4a1121bb094088d4d5e0a3ead1cc68e037862b05f806afc04ad564736f6c63430008130033

Deployed Bytecode Sourcemap

5719:11969:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7900:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8919:210;;;;;;;;;;-1:-1:-1;8919:210:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;8919:210:0;1023:187:1;6045:41:0;;;;;;;;;;-1:-1:-1;6045:41:0;;;;-1:-1:-1;;;;;6045:41:0;;;;;;-1:-1:-1;;;;;1405:32:1;;;1387:51;;1375:2;1360:18;6045:41:0;1215:229:1;8194:99:0;;;;;;;;;;-1:-1:-1;8273:12:0;;8194:99;;;1595:25:1;;;1583:2;1568:18;8194:99:0;1449:177:1;6804:33:0;;;;;;;;;;;;;;;;9137:529;;;;;;;;;;-1:-1:-1;9137:529:0;;;;;:::i;:::-;;:::i;8102:84::-;;;;;;;;;;-1:-1:-1;8102:84:0;;8176:2;2234:36:1;;2222:2;2207:18;8102:84:0;2092:184:1;9674:297:0;;;;;;;;;;-1:-1:-1;9674:297:0;;;;;:::i;:::-;;:::i;6093:28::-;;;;;;;;;;-1:-1:-1;6093:28:0;;;;-1:-1:-1;;;;;6093:28:0;;;6683:33;;;;;;;;;;;;;;;;8301:177;;;;;;;;;;-1:-1:-1;8301:177:0;;;;;:::i;:::-;-1:-1:-1;;;;;8452:18:0;8420:7;8452:18;;;:9;:18;;;;;;;8301:177;898:103;;;;;;;;;;;;;:::i;:::-;;11567:126;;;;;;;;;;;;;:::i;6160:30::-;;;;;;;;;;-1:-1:-1;6160:30:0;;;;-1:-1:-1;;;;;6160:30:0;;;6432:38;;;;;;;;;;-1:-1:-1;6432:38:0;;;;;;;;6604:35;;;;;;;;;;;;;;;;675:87;;;;;;;;;;-1:-1:-1;721:7:0;748:6;-1:-1:-1;;;;;748:6:0;675:87;;6723:36;;;;;;;;;;;;;;;;7999:95;;;;;;;;;;;;;:::i;6646:28::-;;;;;;;;;;;;;;;;10857:658;;;;;;;;;;;;;:::i;6844:27::-;;;;;;;;;;;;;;;;6766:29;;;;;;;;;;;;;;;;9979:482;;;;;;;;;;-1:-1:-1;9979:482:0;;;;;:::i;:::-;;:::i;8486:216::-;;;;;;;;;;-1:-1:-1;8486:216:0;;;;;:::i;:::-;;:::i;6197:24::-;;;;;;;;;;-1:-1:-1;6197:24:0;;;;-1:-1:-1;;;;;6197:24:0;;;7057:57;;;;;;;;;;-1:-1:-1;7057:57:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6230:60;;;;;;;;;;;;;;;;11701:584;;;;;;;;;;-1:-1:-1;11701:584:0;;;;;:::i;:::-;;:::i;6565:32::-;;;;;;;;;;;;;;;;8710:201;;;;;;;;;;-1:-1:-1;8710:201:0;;;;;:::i;:::-;-1:-1:-1;;;;;8876:18:0;;;8844:7;8876:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8710:201;6991:57;;;;;;;;;;-1:-1:-1;6991:57:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6297:64;;;;;;;;;;;;;;;;6523:33;;;;;;;;;;-1:-1:-1;6523:33:0;;;;;;;;;;;6477:39;;;;;;;;;;-1:-1:-1;6477:39:0;;;;;;;;;;;1009:238;;;;;;;;;;-1:-1:-1;1009:238:0;;;;;:::i;:::-;;:::i;6368:55::-;;;;;;;;;;;;;;;;7900:91;7945:13;7978:5;7971:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7900:91;:::o;8919:210::-;9038:4;9060:39;276:10;9083:7;9092:6;9060:8;:39::i;:::-;-1:-1:-1;9117:4:0;8919:210;;;;;:::o;9137:529::-;9277:4;9294:36;9304:6;9312:9;9323:6;9294:9;:36::i;:::-;-1:-1:-1;;;;;9370:19:0;;9343:24;9370:19;;;:11;:19;;;;;;;;276:10;9370:33;;;;;;;;9436:26;;;;9414:116;;;;-1:-1:-1;;;9414:116:0;;4111:2:1;9414:116:0;;;4093:21:1;4150:2;4130:18;;;4123:30;4189:34;4169:18;;;4162:62;-1:-1:-1;;;4240:18:1;;;4233:38;4288:19;;9414:116:0;;;;;;;;;9566:57;9575:6;276:10;9616:6;9597:16;:25;9566:8;:57::i;:::-;-1:-1:-1;9654:4:0;;9137:529;-1:-1:-1;;;;9137:529:0:o;9674:297::-;276:10;9789:4;9883:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;9883:34:0;;;;;;;;;;9789:4;;9811:130;;9861:7;;9883:47;;9920:10;;9883:47;:::i;:::-;9811:8;:130::i;898:103::-;721:7;748:6;-1:-1:-1;;;;;748:6:0;276:10;810:23;802:68;;;;-1:-1:-1;;;802:68:0;;;;;;;:::i;:::-;963:30:::1;990:1;963:18;:30::i;:::-;898:103::o:0;11567:126::-;11619:4;748:6;;-1:-1:-1;;;;;748:6:0;276:10;810:23;802:68;;;;-1:-1:-1;;;802:68:0;;;;;;;:::i;:::-;-1:-1:-1;11636:19:0::1;:27:::0;;-1:-1:-1;;11636:27:0::1;::::0;;;11567:126;:::o;7999:95::-;8046:13;8079:7;8072:14;;;;;:::i;10857:658::-;721:7;748:6;-1:-1:-1;;;;;748:6:0;276:10;810:23;802:68;;;;-1:-1:-1;;;802:68:0;;;;;;;:::i;:::-;10943:15:::1;;;;;;;;;-1:-1:-1::0;;;;;10943:15:0::1;-1:-1:-1::0;;;;;10943:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10925:55:0::1;;11003:4;11023:15;;;;;;;;;-1:-1:-1::0;;;;;11023:15:0::1;-1:-1:-1::0;;;;;11023:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10925:131;::::0;-1:-1:-1;;;;;;10925:131:0::1;::::0;;;;;;-1:-1:-1;;;;;5427:15:1;;;10925:131:0::1;::::0;::::1;5409:34:1::0;5479:15;;5459:18;;;5452:43;5344:18;;10925:131:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10909:13;:147:::0;;-1:-1:-1;;;;;;10909:147:0::1;-1:-1:-1::0;;;;;10909:147:0;;::::1;::::0;;::::1;::::0;;;-1:-1:-1;11069:49:0;;;:25:::1;:49;::::0;;;;:56;;-1:-1:-1;;11069:56:0::1;-1:-1:-1::0;11069:56:0::1;::::0;;11170:15:::1;::::0;11188:12:::1;::::0;11138:63:::1;::::0;11155:4:::1;::::0;11170:15:::1;::::0;11138:8:::1;:63::i;:::-;11214:15;::::0;-1:-1:-1;;;;;11214:15:0::1;:31;11253:21;11298:4;11318:24;11298:4:::0;-1:-1:-1;;;;;8452:18:0;8420:7;8452:18;;;:9;:18;;;;;;;8301:177;11318:24:::1;11357:1;11373::::0;11389:7:::1;721::::0;748:6;-1:-1:-1;;;;;748:6:0;;675:87;11389:7:::1;11214:223;::::0;::::1;::::0;;;-1:-1:-1;;;;;;11214:223:0;;;-1:-1:-1;;;;;5865:15:1;;;11214:223:0::1;::::0;::::1;5847:34:1::0;5897:18;;;5890:34;;;;5940:18;;;5933:34;;;;5983:18;;;5976:34;6047:15;;;6026:19;;;6019:44;11411:15:0::1;6079:19:1::0;;;6072:35;5781:19;;11214:223:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;11450:19:0::1;:26:::0;;-1:-1:-1;;11487:20:0;;;;;-1:-1:-1;10857:658:0:o;9979:482::-;276:10;10099:4;10148:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;10148:34:0;;;;;;;;;;10215:35;;;;10193:122;;;;-1:-1:-1;;;10193:122:0;;6631:2:1;10193:122:0;;;6613:21:1;6670:2;6650:18;;;6643:30;6709:34;6689:18;;;6682:62;-1:-1:-1;;;6760:18:1;;;6753:35;6805:19;;10193:122:0;6429:401:1;10193:122:0;10351:67;276:10;10374:7;10402:15;10383:16;:34;10351:8;:67::i;:::-;-1:-1:-1;10449:4:0;;9979:482;-1:-1:-1;;;9979:482:0:o;8486:216::-;8608:4;8630:42;276:10;8654:9;8665:6;8630:9;:42::i;11701:584::-;721:7;748:6;-1:-1:-1;;;;;748:6:0;276:10;810:23;802:68;;;;-1:-1:-1;;;802:68:0;;;;;;;:::i;:::-;11888:15:::1;:34:::0;;;11933:9:::1;:22:::0;;;11981:27:::1;11945:10:::0;11906:16;11981:27:::1;:::i;:::-;11966:12;:42:::0;12019:16:::1;:36:::0;;;12066:10:::1;:24:::0;;;12117:29:::1;12079:11:::0;12038:17;12117:29:::1;:::i;:::-;12101:13;:45:::0;12179:12:::1;::::0;12195:2:::1;-1:-1:-1::0;12179:18:0;::::1;::::0;:41:::1;;;12218:2;12201:13;;:19;;12179:41;12157:120;;;::::0;-1:-1:-1;;;12157:120:0;;7037:2:1;12157:120:0::1;::::0;::::1;7019:21:1::0;7076:2;7056:18;;;7049:30;7115:31;7095:18;;;7088:59;7164:18;;12157:120:0::1;6835:353:1::0;12157:120:0::1;11701:584:::0;;;;:::o;1009:238::-;721:7;748:6;-1:-1:-1;;;;;748:6:0;276:10;810:23;802:68;;;;-1:-1:-1;;;802:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1112:22:0;::::1;1090:110;;;::::0;-1:-1:-1;;;1090:110:0;;7395:2:1;1090:110:0::1;::::0;::::1;7377:21:1::0;7434:2;7414:18;;;7407:30;7473:34;7453:18;;;7446:62;-1:-1:-1;;;7524:18:1;;;7517:36;7570:19;;1090:110:0::1;7193:402:1::0;1090:110:0::1;1211:28;1230:8;1211:18;:28::i;:::-;1009:238:::0;:::o;10469:380::-;-1:-1:-1;;;;;10605:19:0;;10597:68;;;;-1:-1:-1;;;10597:68:0;;7802:2:1;10597:68:0;;;7784:21:1;7841:2;7821:18;;;7814:30;7880:34;7860:18;;;7853:62;-1:-1:-1;;;7931:18:1;;;7924:34;7975:19;;10597:68:0;7600:400:1;10597:68:0;-1:-1:-1;;;;;10684:21:0;;10676:68;;;;-1:-1:-1;;;10676:68:0;;8207:2:1;10676:68:0;;;8189:21:1;8246:2;8226:18;;;8219:30;8285:34;8265:18;;;8258:62;-1:-1:-1;;;8336:18:1;;;8329:32;8378:19;;10676:68:0;8005:398:1;10676:68:0;-1:-1:-1;;;;;10757:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10809:32;;1595:25:1;;;10809:32:0;;1568:18:1;10809:32:0;;;;;;;;10469:380;;;:::o;12293:3658::-;-1:-1:-1;;;;;12416:18:0;;12408:68;;;;-1:-1:-1;;;12408:68:0;;8610:2:1;12408:68:0;;;8592:21:1;8649:2;8629:18;;;8622:30;8688:34;8668:18;;;8661:62;-1:-1:-1;;;8739:18:1;;;8732:35;8784:19;;12408:68:0;8408:401:1;12408:68:0;-1:-1:-1;;;;;12495:16:0;;12487:64;;;;-1:-1:-1;;;12487:64:0;;9016:2:1;12487:64:0;;;8998:21:1;9055:2;9035:18;;;9028:30;9094:34;9074:18;;;9067:62;-1:-1:-1;;;9145:18:1;;;9138:33;9188:19;;12487:64:0;8814:399:1;12487:64:0;-1:-1:-1;;;;;12571:18:0;;;;;;:12;:18;;;;;;;;12570:19;12562:49;;;;-1:-1:-1;;;12562:49:0;;9420:2:1;12562:49:0;;;9402:21:1;9459:2;9439:18;;;9432:30;-1:-1:-1;;;9478:18:1;;;9471:47;9535:18;;12562:49:0;9218:341:1;12562:49:0;-1:-1:-1;;;;;12631:16:0;;;;;;:12;:16;;;;;;;;12630:17;12622:45;;;;-1:-1:-1;;;12622:45:0;;9766:2:1;12622:45:0;;;9748:21:1;9805:2;9785:18;;;9778:30;-1:-1:-1;;;9824:18:1;;;9817:45;9879:18;;12622:45:0;9564:339:1;12622:45:0;-1:-1:-1;;;;;12684:21:0;;12700:4;12684:21;;:44;;-1:-1:-1;;;;;;12709:19:0;;12723:4;12709:19;12684:44;:59;;;-1:-1:-1;12732:11:0;;12684:59;12680:147;;;12760:34;12777:4;12783:2;12787:6;12760:16;:34::i;:::-;12293:3658;;;:::o;12680:147::-;12843:19;;;;12839:1639;;;-1:-1:-1;;;;;12902:31:0;;;;;;:25;:31;;;;;;;;12901:32;:83;;;;-1:-1:-1;;;;;;12955:29:0;;;;;;:25;:29;;;;;;;;12954:30;12901:83;:113;;;;-1:-1:-1;13006:8:0;;-1:-1:-1;;;13006:8:0;;;;13005:9;12901:113;12879:1588;;;13054:19;;;;;;;13049:229;;-1:-1:-1;;;;;13132:25:0;;;;;;:19;:25;;;;;;;;;:52;;-1:-1:-1;;;;;;13161:23:0;;;;;;:19;:23;;;;;;;;13132:52;13098:160;;;;-1:-1:-1;;;13098:160:0;;10110:2:1;13098:160:0;;;10092:21:1;10149:2;10129:18;;;10122:30;-1:-1:-1;;;10168:18:1;;;10161:52;10230:18;;13098:160:0;9908:346:1;13098:160:0;-1:-1:-1;;;;;13324:31:0;;;;;;:25;:31;;;;;;;;:86;;;;-1:-1:-1;;;;;;13381:29:0;;;;;;:25;:29;;;;;;;;13380:30;13324:86;13298:1154;;;13497:14;;13487:6;:24;;13453:157;;;;-1:-1:-1;;;13453:157:0;;10461:2:1;13453:157:0;;;10443:21:1;10500:2;10480:18;;;10473:30;10539:34;10519:18;;;10512:62;-1:-1:-1;;;10590:18:1;;;10583:45;10645:19;;13453:157:0;10259:411:1;13453:157:0;13693:9;;-1:-1:-1;;;;;8452:18:0;;8420:7;8452:18;;;:9;:18;;;;;;13667:22;;:6;:22;:::i;:::-;:35;;13633:140;;;;-1:-1:-1;;;13633:140:0;;10877:2:1;13633:140:0;;;10859:21:1;10916:2;10896:18;;;10889:30;-1:-1:-1;;;10935:18:1;;;10928:49;10994:18;;13633:140:0;10675:343:1;13633:140:0;13298:1154;;;-1:-1:-1;;;;;13825:29:0;;;;;;:25;:29;;;;;;;;:86;;;;-1:-1:-1;;;;;;13880:31:0;;;;;;:25;:31;;;;;;;;13879:32;13825:86;13799:653;;;13998:14;;13988:6;:24;;13954:158;;;;-1:-1:-1;;;13954:158:0;;11225:2:1;13954:158:0;;;11207:21:1;11264:2;11244:18;;;11237:30;11303:34;11283:18;;;11276:62;-1:-1:-1;;;11354:18:1;;;11347:46;11410:19;;13954:158:0;11023:412:1;13799:653:0;-1:-1:-1;;;;;14165:29:0;;;;;;:25;:29;;;;;;;;14164:30;:85;;;;-1:-1:-1;;;;;;14220:29:0;;;;;;:25;:29;;;;;;;;14219:30;14164:85;14138:314;;;14352:9;;-1:-1:-1;;;;;8452:18:0;;8420:7;8452:18;;;:9;:18;;;;;;14326:22;;:6;:22;:::i;:::-;:35;;14292:140;;;;-1:-1:-1;;;14292:140:0;;10877:2:1;14292:140:0;;;10859:21:1;10916:2;10896:18;;;10889:30;-1:-1:-1;;;10935:18:1;;;10928:49;10994:18;;14292:140:0;10675:343:1;14292:140:0;14508:13;;;;;;;:39;;;;-1:-1:-1;14539:8:0;;-1:-1:-1;;;14539:8:0;;;;14538:9;14508:39;:85;;;;-1:-1:-1;;;;;;14564:29:0;;;;;;:25;:29;;;;;;;;14508:85;:128;;;;-1:-1:-1;;;;;;14611:25:0;;;;;;:19;:25;;;;;;;;14610:26;14508:128;:169;;;;-1:-1:-1;;;;;;14654:23:0;;;;;;:19;:23;;;;;;;;14653:24;14508:169;14490:297;;;14704:8;:15;;-1:-1:-1;;;;14704:15:0;-1:-1:-1;;;14704:15:0;;;14734:10;:8;:10::i;:::-;14759:8;:16;;-1:-1:-1;;;;14759:16:0;;;14490:297;14824:15;;14799:12;;-1:-1:-1;;;;;14816:23:0;;;14824:15;;14816:23;;:44;;-1:-1:-1;14851:9:0;;-1:-1:-1;;;;;14843:17:0;;;14851:9;;14843:17;14816:44;14814:47;;-1:-1:-1;14889:6:0;14906:806;;;;-1:-1:-1;;;;;14938:29:0;;;;;;:25;:29;;;;;;;;:50;;;;;14987:1;14971:13;;:17;14938:50;14934:584;;;15016:34;15046:3;15016:25;15027:13;;15016:6;:10;;:25;;;;:::i;:::-;:29;;:34::i;:::-;15009:41;;15107:13;;15093:10;;15086:4;:17;;;;:::i;:::-;15085:35;;;;:::i;:::-;15069:12;;:51;;;;;;;:::i;:::-;;;;-1:-1:-1;;15189:13:0;;15169:16;;15162:23;;:4;:23;:::i;:::-;15161:41;;;;:::i;:::-;15139:18;;:63;;;;;;;:::i;:::-;;;;-1:-1:-1;14934:584:0;;-1:-1:-1;14934:584:0;;-1:-1:-1;;;;;15228:31:0;;;;;;:25;:31;;;;;;;;:51;;;;;15278:1;15263:12;;:16;15228:51;15224:294;;;15307:33;15336:3;15307:24;15318:12;;15307:6;:10;;:24;;;;:::i;:33::-;15300:40;;15396:12;;15383:9;;15376:4;:16;;;;:::i;:::-;15375:33;;;;:::i;:::-;15359:12;;:49;;;;;;;:::i;:::-;;;;-1:-1:-1;;15476:12:0;;15457:15;;15450:22;;:4;:22;:::i;15224:294::-;-1:-1:-1;15517:1:0;15224:294;15539:8;;15535:166;;15613:4;15595:24;;;;:9;:24;;;;;;:31;;15622:4;;15595:31;:::i;:::-;15586:4;15568:24;;;;:9;:24;;;;;;;:58;;;;15650:35;;-1:-1:-1;;;;;15650:35:0;;;;;;;15680:4;1595:25:1;;1583:2;1568:18;;1449:177;15650:35:0;;;;;;;;15535:166;15787:7;:34;;15807:13;15816:4;15807:6;:13;:::i;:::-;15787:34;;;15797:6;15787:34;-1:-1:-1;;;;;15755:15:0;;;;;;:9;:15;;;;;;:67;;;;:::i;:::-;-1:-1:-1;;;;;15724:15:0;;;;;;:9;:15;;;;;:98;15866:7;:34;;15894:6;15866:34;;;15877:13;15886:4;15877:6;:13;:::i;:::-;-1:-1:-1;;;;;15849:13:0;;;;;;:9;:13;;;;;;:52;;;;:::i;:::-;-1:-1:-1;;;;;15833:13:0;;;;;;;:9;:13;;;;;;;:68;;;;15917:26;;;;;;;;;;15936:6;1595:25:1;;1583:2;1568:18;;1449:177;15917:26:0;;;;;;;;12397:3554;;12293:3658;;;:::o;1255:191::-;1329:16;1348:6;;-1:-1:-1;;;;;1365:17:0;;;-1:-1:-1;;;;;;1365:17:0;;;;;;1398:40;;1348:6;;;;;;;1398:40;;1329:16;1398:40;1318:128;1255:191;:::o;15959:263::-;-1:-1:-1;;;;;16099:15:0;;;;;;:9;:15;;;;;;:24;;16117:6;;16099:24;:::i;:::-;-1:-1:-1;;;;;16081:15:0;;;;;;;:9;:15;;;;;;:42;;;;16150:13;;;;;;;:22;;16166:6;;16150:22;:::i;:::-;-1:-1:-1;;;;;16134:13:0;;;;;;;:9;:13;;;;;;;:38;;;;16188:26;;;;;;;;;;16207:6;1595:25:1;;1583:2;1568:18;;1449:177;16856:829:0;16939:4;16895:23;8452:18;;;:9;:18;;;;;;16895:50;;16956:25;17005:12;;16984:18;;:33;;;;:::i;:::-;16956:61;;17052:18;;17073:4;17052:25;;;;:::i;:::-;17034:15;:43;17030:119;;;17112:18;;:25;;17133:4;17112:25;:::i;:::-;17094:43;;17030:119;17243:18;;17189:21;;17225:36;;17221:88;;;17276:33;17293:15;17276:16;:33::i;:::-;17322:18;17343:44;:21;17369:17;17343:25;:44::i;:::-;17322:65;-1:-1:-1;17398:17:0;17418:79;17465:21;:17;17485:1;17465:21;:::i;:::-;17433:12;;17418:28;;:10;;:14;:28::i;:79::-;17531:1;17510:18;:22;;;17543:12;:16;;;17580:9;;17572:38;;17398:99;;-1:-1:-1;;;;;;17580:9:0;;17572:38;;;;;17398:99;;17572:38;;17531:1;17572:38;17398:99;17580:9;17572:38;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17629:15:0;;17621:56;;-1:-1:-1;;;;;17629:15:0;;;;17655:21;17621:56;;;;;17629:15;17621:56;17629:15;17621:56;17655:21;17629:15;17621:56;;;;;;;;;;;;;;;;;;;;;16884:801;;;;;16856:829::o;3767:98::-;3825:7;3852:5;3856:1;3852;:5;:::i;:::-;3845:12;3767:98;-1:-1:-1;;;3767:98:0:o;3873:::-;3931:7;3958:5;3962:1;3958;:5;:::i;16345:503::-;16435:16;;;16449:1;16435:16;;;;;;;;16411:21;;16435:16;;;;;;;;;;-1:-1:-1;16435:16:0;16411:40;;16480:4;16462;16467:1;16462:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16462:23:0;;;:7;;;;;;;;;;:23;;;;16506:15;;:22;;;-1:-1:-1;;;16506:22:0;;;;:15;;;;;:20;;:22;;;;;16462:7;;16506:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16496:4;16501:1;16496:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16496:32:0;;;:7;;;;;;;;;:32;16573:15;;16541:62;;16558:4;;16573:15;16591:11;16541:8;:62::i;:::-;16616:15;;:224;;-1:-1:-1;;;16616:224:0;;-1:-1:-1;;;;;16616:15:0;;;;:66;;:224;;16697:11;;16616:15;;16767:4;;16794;;16814:15;;16616:224;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3661:98;3719:7;3746:5;3750:1;3746;:5;:::i;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;1631:456::-;1708:6;1716;1724;1777:2;1765:9;1756:7;1752:23;1748:32;1745:52;;;1793:1;1790;1783:12;1745:52;1832:9;1819:23;1851:31;1876:5;1851:31;:::i;:::-;1901:5;-1:-1:-1;1958:2:1;1943:18;;1930:32;1971:33;1930:32;1971:33;:::i;:::-;1631:456;;2023:7;;-1:-1:-1;;;2077:2:1;2062:18;;;;2049:32;;1631:456::o;2489:247::-;2548:6;2601:2;2589:9;2580:7;2576:23;2572:32;2569:52;;;2617:1;2614;2607:12;2569:52;2656:9;2643:23;2675:31;2700:5;2675:31;:::i;2741:385::-;2827:6;2835;2843;2851;2904:3;2892:9;2883:7;2879:23;2875:33;2872:53;;;2921:1;2918;2911:12;2872:53;-1:-1:-1;;2944:23:1;;;3014:2;2999:18;;2986:32;;-1:-1:-1;3065:2:1;3050:18;;3037:32;;3116:2;3101:18;3088:32;;-1:-1:-1;2741:385:1;-1:-1:-1;2741:385:1:o;3131:388::-;3199:6;3207;3260:2;3248:9;3239:7;3235:23;3231:32;3228:52;;;3276:1;3273;3266:12;3228:52;3315:9;3302:23;3334:31;3359:5;3334:31;:::i;:::-;3384:5;-1:-1:-1;3441:2:1;3426:18;;3413:32;3454:33;3413:32;3454:33;:::i;:::-;3506:7;3496:17;;;3131:388;;;;;:::o;3524:380::-;3603:1;3599:12;;;;3646;;;3667:61;;3721:4;3713:6;3709:17;3699:27;;3667:61;3774:2;3766:6;3763:14;3743:18;3740:38;3737:161;;3820:10;3815:3;3811:20;3808:1;3801:31;3855:4;3852:1;3845:15;3883:4;3880:1;3873:15;3737:161;;3524:380;;;:::o;4318:127::-;4379:10;4374:3;4370:20;4367:1;4360:31;4410:4;4407:1;4400:15;4434:4;4431:1;4424:15;4450:125;4515:9;;;4536:10;;;4533:36;;;4549:18;;:::i;4580:356::-;4782:2;4764:21;;;4801:18;;;4794:30;4860:34;4855:2;4840:18;;4833:62;4927:2;4912:18;;4580:356::o;4941:251::-;5011:6;5064:2;5052:9;5043:7;5039:23;5035:32;5032:52;;;5080:1;5077;5070:12;5032:52;5112:9;5106:16;5131:31;5156:5;5131:31;:::i;6118:306::-;6206:6;6214;6222;6275:2;6263:9;6254:7;6250:23;6246:32;6243:52;;;6291:1;6288;6281:12;6243:52;6320:9;6314:16;6304:26;;6370:2;6359:9;6355:18;6349:25;6339:35;;6414:2;6403:9;6399:18;6393:25;6383:35;;6118:306;;;;;:::o;11440:168::-;11513:9;;;11544;;11561:15;;;11555:22;;11541:37;11531:71;;11582:18;;:::i;11613:217::-;11653:1;11679;11669:132;;11723:10;11718:3;11714:20;11711:1;11704:31;11758:4;11755:1;11748:15;11786:4;11783:1;11776:15;11669:132;-1:-1:-1;11815:9:1;;11613:217::o;11835:128::-;11902:9;;;11923:11;;;11920:37;;;11937:18;;:::i;12100:127::-;12161:10;12156:3;12152:20;12149:1;12142:31;12192:4;12189:1;12182:15;12216:4;12213:1;12206:15;12232:980;12494:4;12542:3;12531:9;12527:19;12573:6;12562:9;12555:25;12599:2;12637:6;12632:2;12621:9;12617:18;12610:34;12680:3;12675:2;12664:9;12660:18;12653:31;12704:6;12739;12733:13;12770:6;12762;12755:22;12808:3;12797:9;12793:19;12786:26;;12847:2;12839:6;12835:15;12821:29;;12868:1;12878:195;12892:6;12889:1;12886:13;12878:195;;;12957:13;;-1:-1:-1;;;;;12953:39:1;12941:52;;13048:15;;;;13013:12;;;;12989:1;12907:9;12878:195;;;-1:-1:-1;;;;;;;13129:32:1;;;;13124:2;13109:18;;13102:60;-1:-1:-1;;;13193:3:1;13178:19;13171:35;13090:3;12232:980;-1:-1:-1;;;12232:980:1:o

Swarm Source

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