ETH Price: $1,881.23 (-12.26%)
 

Overview

Max Total Supply

47,000,000,000 DONE

Holders

7

Transfers

-
0

Market

Onchain Market Cap

-

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

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:
DONELON

Compiler Version
v0.8.25+commit.b61c2a91

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2024-10-15
*/

// SPDX-License-Identifier: UNLICENSE

/**
    Webisite : https://DonElon.site
    Telegram : https://t.me/DonElonETH
           X : https://x.com/DonElonOnETH
       Email : [email protected]
*/

pragma solidity 0.8.25;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(
            newOwner != address(0),
            "Ownable: new owner is the zero address"
        );
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

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

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

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

contract DONELON is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private isExile;
    mapping(address => bool) private bots;
    mapping(address => bool) public marketPair;
    mapping(uint256 => uint256) private perBuyCount;
    address payable private _taxWallet;
    uint256 private firstBlock = 0;

    uint256 private _initialBuyTax = 25;
    uint256 private _initialSellTax = 25;
    uint256 private _finalBuyTax = 0;
    uint256 private _finalSellTax = 0;

    uint256 private _reduceBuyTaxAt = 50;

    uint256 private _reduceSellTaxAt = 50;
    uint256 private _preventSwapBefore = 50;
    uint256 private _buyCount = 0;
    uint256 private sellCount = 0;
    uint256 private lastSellBlock = 0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 47_000_000_000 * 10**_decimals;
    string private constant _name = unicode"DonElon";
    string private constant _symbol = unicode"DONE";
    uint256 public _maxTxAmount = (_tTotal * 2) / 100;
    uint256 public _maxWalletSize = (_tTotal * 2) / 100;
    uint256 public constant _maxTaxSwap = (_tTotal * 1) / 100;
    uint256 public constant _taxSwapThreshold = (_tTotal * 1) / 1000;

    IUniswapV2Router02 private uniswapV2Router;
    address public uniswapV2Pair;
    bool private tradingOpen;
    uint256 private sellsPerBlock = 2;
    uint256 private buysFirstBlock = 100;
    bool private inSwap = false;
    bool private swapEnabled = false;

    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    modifier lockTheSwap() {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor() {
        _taxWallet = payable(_msgSender());
        _balances[_taxWallet] = _tTotal;
        isExile[owner()] = true;
        isExile[address(this)] = true;
        isExile[address(uniswapV2Pair)] = true;

        emit Transfer(address(0), _taxWallet, _tTotal);

        uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(
            address(this),
            uniswapV2Router.WETH()
        );
        marketPair[address(uniswapV2Pair)] = true;
        isExile[address(uniswapV2Pair)] = true;
    }

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

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

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

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

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

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

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

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

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

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) private {
        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 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 taxAmount = 0;

        if (from != owner() && to != owner()) {
            taxAmount = amount
                .mul(
                    (_buyCount > _reduceBuyTaxAt)
                        ? _finalBuyTax
                        : _initialBuyTax
                )
                .div(100);

            require(
                !bots[from] && !bots[to],
                "Transaction blocked: Address is flagged as a bot."
            );

            if (block.number == firstBlock) {
                require(
                    perBuyCount[block.number] < buysFirstBlock,
                    "Exceeds buys on the first block."
                );
                perBuyCount[block.number]++;
            }

            if (
                marketPair[from] &&
                to != address(uniswapV2Router) &&
                !isExile[to]
            ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(
                    balanceOf(to) + amount <= _maxWalletSize,
                    "Exceeds the maxWalletSize."
                );
                _buyCount++;
            }

            if (!marketPair[to] && !isExile[to]) {
                require(
                    balanceOf(to) + amount <= _maxWalletSize,
                    "Exceeds the maxWalletSize."
                );
            }

            if (marketPair[to] && from != address(this)) {
                taxAmount = amount
                    .mul(
                        (_buyCount > _reduceSellTaxAt)
                            ? _finalSellTax
                            : _initialSellTax
                    )
                    .div(100);
            }

            if (!marketPair[from] && !marketPair[to] && from != address(this)) {
                taxAmount = 0;
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (
                !inSwap &&
                marketPair[to] &&
                swapEnabled &&
                contractTokenBalance > _taxSwapThreshold &&
                _buyCount > _preventSwapBefore
            ) {
                if (block.number > lastSellBlock) {
                    sellCount = 0;
                }
                require(sellCount < sellsPerBlock);
                swapTokensForEth(
                    min(amount, min(contractTokenBalance, _maxTaxSwap))
                );
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
                sellCount++;
                lastSellBlock = block.number;
            } else if (
                !inSwap &&
                marketPair[to] &&
                swapEnabled &&
                contractTokenBalance > _taxSwapThreshold &&
                _buyCount > _preventSwapBefore
            ) {
                swapTokensForEth(
                    min(amount, min(contractTokenBalance, _maxTaxSwap))
                );
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

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

    function addBots(address[] memory bots_) public onlyOwner {
        for (uint256 i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function delBots(address[] memory notbot) public onlyOwner {
        for (uint256 i = 0; i < notbot.length; i++) {
            bots[notbot[i]] = false;
        }
    }

    function isBot(address a) public view returns (bool) {
        return bots[a];
    }

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

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

    function sendETHToFee(uint256 amount) private {
        _taxWallet.transfer(amount);
    }

    function rescueETH() external {
        require(_msgSender() == _taxWallet);
        payable(_taxWallet).transfer(address(this).balance);
    }

    function rescueTokens(address _tokenAddr) external {
        require(_msgSender() == _taxWallet);
        IERC20(_tokenAddr).transfer(
            _taxWallet,
            IERC20(_tokenAddr).balanceOf(address(this))
        );
    }

    function removeLimits() external onlyOwner {
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function enableTrading() external onlyOwner {
        require(!tradingOpen, "trading is already open");
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(
            address(this),
            balanceOf(address(this)),
            0,
            0,
            owner(),
            block.timestamp
        );
        IERC20(uniswapV2Pair).approve(
            address(uniswapV2Router),
            type(uint256).max
        );
        swapEnabled = true;
        tradingOpen = true;
        firstBlock = block.number;
    }

    receive() external payable {}
}

Contract Security Audit

Contract ABI

API
[{"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":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","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":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"marketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddr","type":"address"}],"name":"rescueTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040525f60085560196009556019600a555f600b555f600c556032600d556032600e556032600f555f6010555f6011555f60125560646009600a610045919061063c565b61005490640af16b1600610651565b61005f906002610651565b6100699190610668565b601355606461007a6009600a61063c565b61008990640af16b1600610651565b610094906002610651565b61009e9190610668565b601455600260175560646018556019805461ffff191690553480156100c1575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600780546001600160a01b031916331790556101206009600a61063c565b61012f90640af16b1600610651565b6007546001600160a01b03165f9081526001602081905260408220929092556003906101625f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff199687161790553081526003909352818320805485166001908117909155601654821684529183208054909416909117909255600754909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6101ef6009600a61063c565b6101fe90640af16b1600610651565b60405190815260200160405180910390a3601580546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915561025e90309061024a6009600a61063c565b61025990640af16b1600610651565b61041e565b60155f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102d29190610687565b6001600160a01b031663c9c653963060155f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610331573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103559190610687565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801561039f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103c39190610687565b601680546001600160a01b0319166001600160a01b0392831690811782555f908152600560209081526040808320805460ff1990811660019081179092559454909516835260039091529020805490911690911790556106ad565b6001600160a01b0383166104855760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084015b60405180910390fd5b6001600160a01b0382166104e65760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161047c565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561059457815f190482111561057a5761057a610546565b8085161561058757918102915b93841c939080029061055f565b509250929050565b5f826105aa57506001610636565b816105b657505f610636565b81600181146105cc57600281146105d6576105f2565b6001915050610636565b60ff8411156105e7576105e7610546565b50506001821b610636565b5060208310610133831016604e8410600b8410161715610615575081810a610636565b61061f838361055a565b805f190482111561063257610632610546565b0290505b92915050565b5f61064a60ff84168361059c565b9392505050565b808202811582820484141761063657610636610546565b5f8261068257634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215610697575f80fd5b81516001600160a01b038116811461064a575f80fd5b611e52806106ba5f395ff3fe608060405260043610610163575f3560e01c8063715018a6116100cd57806395d89b4111610087578063d34628cc11610062578063d34628cc14610425578063dd62ed3e14610444578063f2fde38b14610488578063f5b3c3bf146104a7575f80fd5b806395d89b41146103c6578063a9059cbb146103f2578063bf474bed14610411575f80fd5b8063715018a614610344578063751039fc146103585780637d1db4a51461036c5780638a8c523c146103815780638da5cb5b146103955780638f9a55c0146103b1575f80fd5b806323b872dd1161011e57806323b872dd14610249578063313ce5671461026857806331c2d847146102835780633bbac579146102a257806349bd5a5e146102d957806370a0823114610310575f80fd5b8062ae3bf81461016e57806306fdde031461018f578063095ea7b3146101d05780630faee56f146101ff57806318160ddd1461022157806320800a0014610235575f80fd5b3661016a57005b5f80fd5b348015610179575f80fd5b5061018d610188366004611985565b6104d5565b005b34801561019a575f80fd5b506040805180820190915260078152662237b722b637b760c91b60208201525b6040516101c791906119a0565b60405180910390f35b3480156101db575f80fd5b506101ef6101ea3660046119d5565b6105d9565b60405190151581526020016101c7565b34801561020a575f80fd5b506102136105ef565b6040519081526020016101c7565b34801561022c575f80fd5b50610213610624565b348015610240575f80fd5b5061018d610645565b348015610254575f80fd5b506101ef6102633660046119ff565b61069d565b348015610273575f80fd5b50604051600981526020016101c7565b34801561028e575f80fd5b5061018d61029d366004611a51565b610704565b3480156102ad575f80fd5b506101ef6102bc366004611985565b6001600160a01b03165f9081526004602052604090205460ff1690565b3480156102e4575f80fd5b506016546102f8906001600160a01b031681565b6040516001600160a01b0390911681526020016101c7565b34801561031b575f80fd5b5061021361032a366004611985565b6001600160a01b03165f9081526001602052604090205490565b34801561034f575f80fd5b5061018d610790565b348015610363575f80fd5b5061018d610801565b348015610377575f80fd5b5061021360135481565b34801561038c575f80fd5b5061018d6108b5565b3480156103a0575f80fd5b505f546001600160a01b03166102f8565b3480156103bc575f80fd5b5061021360145481565b3480156103d1575f80fd5b50604080518082019091526004815263444f4e4560e01b60208201526101ba565b3480156103fd575f80fd5b506101ef61040c3660046119d5565b610aa9565b34801561041c575f80fd5b50610213610ab5565b348015610430575f80fd5b5061018d61043f366004611a51565b610ac4565b34801561044f575f80fd5b5061021361045e366004611b11565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610493575f80fd5b5061018d6104a2366004611985565b610b48565b3480156104b2575f80fd5b506101ef6104c1366004611985565b60056020525f908152604090205460ff1681565b6007546001600160a01b0316336001600160a01b0316146104f4575f80fd5b6007546040516370a0823160e01b81523060048201526001600160a01b038381169263a9059cbb9291169083906370a0823190602401602060405180830381865afa158015610545573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105699190611b48565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303815f875af11580156105b1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105d59190611b5f565b5050565b5f6105e5338484610c2f565b5060015b92915050565b60646105fd6009600a611c72565b61060c90640af16b1600611c80565b610617906001611c80565b6106219190611c97565b81565b5f6106316009600a611c72565b61064090640af16b1600611c80565b905090565b6007546001600160a01b0316336001600160a01b031614610664575f80fd5b6007546040516001600160a01b03909116904780156108fc02915f818181858888f1935050505015801561069a573d5f803e3d5ffd5b50565b5f6106a9848484610d52565b6106fa84336106f585604051806060016040528060288152602001611df5602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906115e6565b610c2f565b5060019392505050565b5f546001600160a01b031633146107365760405162461bcd60e51b815260040161072d90611cb6565b60405180910390fd5b5f5b81518110156105d5575f60045f84848151811061075757610757611ceb565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055600101610738565b5f546001600160a01b031633146107b95760405162461bcd60e51b815260040161072d90611cb6565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461082a5760405162461bcd60e51b815260040161072d90611cb6565b6108366009600a611c72565b61084590640af16b1600611c80565b6013556108546009600a611c72565b61086390640af16b1600611c80565b6014557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6108936009600a611c72565b6108a290640af16b1600611c80565b60405190815260200160405180910390a1565b5f546001600160a01b031633146108de5760405162461bcd60e51b815260040161072d90611cb6565b601654600160a01b900460ff16156109385760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161072d565b6015546001600160a01b031663f305d7194730610969816001600160a01b03165f9081526001602052604090205490565b5f8061097c5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156109e2573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610a079190611cff565b505060165460155460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610a5c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a809190611b5f565b506019805461ff0019166101001790556016805460ff60a01b1916600160a01b17905543600855565b5f6105e5338484610d52565b6103e86105fd6009600a611c72565b5f546001600160a01b03163314610aed5760405162461bcd60e51b815260040161072d90611cb6565b5f5b81518110156105d557600160045f848481518110610b0f57610b0f611ceb565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055600101610aef565b5f546001600160a01b03163314610b715760405162461bcd60e51b815260040161072d90611cb6565b6001600160a01b038116610bd65760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161072d565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610c915760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161072d565b6001600160a01b038216610cf25760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161072d565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610db65760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161072d565b6001600160a01b038216610e185760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161072d565b5f8111610e795760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161072d565b5f80546001600160a01b03858116911614801590610ea457505f546001600160a01b03848116911614155b156114a957610ed56064610ecf600d5460105411610ec457600954610ec8565b600b545b859061161e565b906116a3565b6001600160a01b0385165f9081526004602052604090205490915060ff16158015610f1857506001600160a01b0383165f9081526004602052604090205460ff16155b610f7e5760405162461bcd60e51b815260206004820152603160248201527f5472616e73616374696f6e20626c6f636b65643a204164647265737320697320604482015270333630b3b3b2b21030b99030903137ba1760791b606482015260840161072d565b600854430361100657601854435f9081526006602052604090205410610fe65760405162461bcd60e51b815260206004820181905260248201527f457863656564732062757973206f6e2074686520666972737420626c6f636b2e604482015260640161072d565b435f90815260066020526040812080549161100083611d2a565b91905055505b6001600160a01b0384165f9081526005602052604090205460ff16801561103b57506015546001600160a01b03848116911614155b801561105f57506001600160a01b0383165f9081526003602052604090205460ff16155b15611145576013548211156110b65760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161072d565b601454826110d8856001600160a01b03165f9081526001602052604090205490565b6110e29190611d42565b11156111305760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161072d565b60108054905f61113f83611d2a565b91905055505b6001600160a01b0383165f9081526005602052604090205460ff1615801561118557506001600160a01b0383165f9081526003602052604090205460ff16155b1561120457601454826111ac856001600160a01b03165f9081526001602052604090205490565b6111b69190611d42565b11156112045760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161072d565b6001600160a01b0383165f9081526005602052604090205460ff16801561123457506001600160a01b0384163014155b156112615761125e6064610ecf600e546010541161125457600a54610ec8565b600c54859061161e565b90505b6001600160a01b0384165f9081526005602052604090205460ff161580156112a157506001600160a01b0383165f9081526005602052604090205460ff16155b80156112b657506001600160a01b0384163014155b156112be57505f5b305f9081526001602052604090205460195460ff161580156112f757506001600160a01b0384165f9081526005602052604090205460ff165b801561130a5750601954610100900460ff165b801561134757506103e86113206009600a611c72565b61132f90640af16b1600611c80565b61133a906001611c80565b6113449190611c97565b81115b80156113565750600f54601054115b156113ee5760125443111561136a575f6011555b60175460115410611379575f80fd5b6113c06113bb846113b68460646113926009600a611c72565b6113a190640af16b1600611c80565b6113ac906001611c80565b6113b69190611c97565b6116e4565b6116f8565b4780156113d0576113d04761185f565b60118054905f6113df83611d2a565b909155505043601255506114a7565b60195460ff1615801561141857506001600160a01b0384165f9081526005602052604090205460ff165b801561142b5750601954610100900460ff165b801561146857506103e86114416009600a611c72565b61145090640af16b1600611c80565b61145b906001611c80565b6114659190611c97565b81115b80156114775750600f54601054115b156114a7576114956113bb846113b68460646113926009600a611c72565b4780156114a5576114a54761185f565b505b505b801561152157305f908152600160205260409020546114c89082611896565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115189085815260200190565b60405180910390a35b6001600160a01b0384165f9081526001602052604090205461154390836118f4565b6001600160a01b0385165f9081526001602052604090205561158661156883836118f4565b6001600160a01b0385165f9081526001602052604090205490611896565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6115cf85856118f4565b60405190815260200160405180910390a350505050565b5f81848411156116095760405162461bcd60e51b815260040161072d91906119a0565b505f6116158486611d55565b95945050505050565b5f825f0361162d57505f6105e9565b5f6116388385611c80565b9050826116458583611c97565b1461169c5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161072d565b9392505050565b5f61169c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611935565b5f8183116116f2578261169c565b50919050565b6019805460ff191660011790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061173857611738611ceb565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561178f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117b39190611d68565b816001815181106117c6576117c6611ceb565b6001600160a01b0392831660209182029290920101526015546117ec9130911684610c2f565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac947906118249085905f90869030904290600401611d83565b5f604051808303815f87803b15801561183b575f80fd5b505af115801561184d573d5f803e3d5ffd5b50506019805460ff1916905550505050565b6007546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156105d5573d5f803e3d5ffd5b5f806118a28385611d42565b90508381101561169c5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161072d565b5f61169c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506115e6565b5f81836119555760405162461bcd60e51b815260040161072d91906119a0565b505f6116158486611c97565b6001600160a01b038116811461069a575f80fd5b803561198081611961565b919050565b5f60208284031215611995575f80fd5b813561169c81611961565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f80604083850312156119e6575f80fd5b82356119f181611961565b946020939093013593505050565b5f805f60608486031215611a11575f80fd5b8335611a1c81611961565b92506020840135611a2c81611961565b929592945050506040919091013590565b634e487b7160e01b5f52604160045260245ffd5b5f6020808385031215611a62575f80fd5b823567ffffffffffffffff80821115611a79575f80fd5b818501915085601f830112611a8c575f80fd5b813581811115611a9e57611a9e611a3d565b8060051b604051601f19603f83011681018181108582111715611ac357611ac3611a3d565b604052918252848201925083810185019188831115611ae0575f80fd5b938501935b82851015611b0557611af685611975565b84529385019392850192611ae5565b98975050505050505050565b5f8060408385031215611b22575f80fd5b8235611b2d81611961565b91506020830135611b3d81611961565b809150509250929050565b5f60208284031215611b58575f80fd5b5051919050565b5f60208284031215611b6f575f80fd5b8151801515811461169c575f80fd5b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611bcc57815f1904821115611bb257611bb2611b7e565b80851615611bbf57918102915b93841c9390800290611b97565b509250929050565b5f82611be2575060016105e9565b81611bee57505f6105e9565b8160018114611c045760028114611c0e57611c2a565b60019150506105e9565b60ff841115611c1f57611c1f611b7e565b50506001821b6105e9565b5060208310610133831016604e8410600b8410161715611c4d575081810a6105e9565b611c578383611b92565b805f1904821115611c6a57611c6a611b7e565b029392505050565b5f61169c60ff841683611bd4565b80820281158282048414176105e9576105e9611b7e565b5f82611cb157634e487b7160e01b5f52601260045260245ffd5b500490565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b5f805f60608486031215611d11575f80fd5b8351925060208401519150604084015190509250925092565b5f60018201611d3b57611d3b611b7e565b5060010190565b808201808211156105e9576105e9611b7e565b818103818111156105e9576105e9611b7e565b5f60208284031215611d78575f80fd5b815161169c81611961565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611dd35784516001600160a01b031683529383019391830191600101611dae565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212202ac79daa9f1a02278a555d4de8ee5b3db7035d74d3f14eb6742f2bfa8d65cd7964736f6c63430008190033

Deployed Bytecode

0x608060405260043610610163575f3560e01c8063715018a6116100cd57806395d89b4111610087578063d34628cc11610062578063d34628cc14610425578063dd62ed3e14610444578063f2fde38b14610488578063f5b3c3bf146104a7575f80fd5b806395d89b41146103c6578063a9059cbb146103f2578063bf474bed14610411575f80fd5b8063715018a614610344578063751039fc146103585780637d1db4a51461036c5780638a8c523c146103815780638da5cb5b146103955780638f9a55c0146103b1575f80fd5b806323b872dd1161011e57806323b872dd14610249578063313ce5671461026857806331c2d847146102835780633bbac579146102a257806349bd5a5e146102d957806370a0823114610310575f80fd5b8062ae3bf81461016e57806306fdde031461018f578063095ea7b3146101d05780630faee56f146101ff57806318160ddd1461022157806320800a0014610235575f80fd5b3661016a57005b5f80fd5b348015610179575f80fd5b5061018d610188366004611985565b6104d5565b005b34801561019a575f80fd5b506040805180820190915260078152662237b722b637b760c91b60208201525b6040516101c791906119a0565b60405180910390f35b3480156101db575f80fd5b506101ef6101ea3660046119d5565b6105d9565b60405190151581526020016101c7565b34801561020a575f80fd5b506102136105ef565b6040519081526020016101c7565b34801561022c575f80fd5b50610213610624565b348015610240575f80fd5b5061018d610645565b348015610254575f80fd5b506101ef6102633660046119ff565b61069d565b348015610273575f80fd5b50604051600981526020016101c7565b34801561028e575f80fd5b5061018d61029d366004611a51565b610704565b3480156102ad575f80fd5b506101ef6102bc366004611985565b6001600160a01b03165f9081526004602052604090205460ff1690565b3480156102e4575f80fd5b506016546102f8906001600160a01b031681565b6040516001600160a01b0390911681526020016101c7565b34801561031b575f80fd5b5061021361032a366004611985565b6001600160a01b03165f9081526001602052604090205490565b34801561034f575f80fd5b5061018d610790565b348015610363575f80fd5b5061018d610801565b348015610377575f80fd5b5061021360135481565b34801561038c575f80fd5b5061018d6108b5565b3480156103a0575f80fd5b505f546001600160a01b03166102f8565b3480156103bc575f80fd5b5061021360145481565b3480156103d1575f80fd5b50604080518082019091526004815263444f4e4560e01b60208201526101ba565b3480156103fd575f80fd5b506101ef61040c3660046119d5565b610aa9565b34801561041c575f80fd5b50610213610ab5565b348015610430575f80fd5b5061018d61043f366004611a51565b610ac4565b34801561044f575f80fd5b5061021361045e366004611b11565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610493575f80fd5b5061018d6104a2366004611985565b610b48565b3480156104b2575f80fd5b506101ef6104c1366004611985565b60056020525f908152604090205460ff1681565b6007546001600160a01b0316336001600160a01b0316146104f4575f80fd5b6007546040516370a0823160e01b81523060048201526001600160a01b038381169263a9059cbb9291169083906370a0823190602401602060405180830381865afa158015610545573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105699190611b48565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303815f875af11580156105b1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105d59190611b5f565b5050565b5f6105e5338484610c2f565b5060015b92915050565b60646105fd6009600a611c72565b61060c90640af16b1600611c80565b610617906001611c80565b6106219190611c97565b81565b5f6106316009600a611c72565b61064090640af16b1600611c80565b905090565b6007546001600160a01b0316336001600160a01b031614610664575f80fd5b6007546040516001600160a01b03909116904780156108fc02915f818181858888f1935050505015801561069a573d5f803e3d5ffd5b50565b5f6106a9848484610d52565b6106fa84336106f585604051806060016040528060288152602001611df5602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906115e6565b610c2f565b5060019392505050565b5f546001600160a01b031633146107365760405162461bcd60e51b815260040161072d90611cb6565b60405180910390fd5b5f5b81518110156105d5575f60045f84848151811061075757610757611ceb565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055600101610738565b5f546001600160a01b031633146107b95760405162461bcd60e51b815260040161072d90611cb6565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461082a5760405162461bcd60e51b815260040161072d90611cb6565b6108366009600a611c72565b61084590640af16b1600611c80565b6013556108546009600a611c72565b61086390640af16b1600611c80565b6014557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6108936009600a611c72565b6108a290640af16b1600611c80565b60405190815260200160405180910390a1565b5f546001600160a01b031633146108de5760405162461bcd60e51b815260040161072d90611cb6565b601654600160a01b900460ff16156109385760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604482015260640161072d565b6015546001600160a01b031663f305d7194730610969816001600160a01b03165f9081526001602052604090205490565b5f8061097c5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156109e2573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610a079190611cff565b505060165460155460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610a5c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a809190611b5f565b506019805461ff0019166101001790556016805460ff60a01b1916600160a01b17905543600855565b5f6105e5338484610d52565b6103e86105fd6009600a611c72565b5f546001600160a01b03163314610aed5760405162461bcd60e51b815260040161072d90611cb6565b5f5b81518110156105d557600160045f848481518110610b0f57610b0f611ceb565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055600101610aef565b5f546001600160a01b03163314610b715760405162461bcd60e51b815260040161072d90611cb6565b6001600160a01b038116610bd65760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161072d565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610c915760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161072d565b6001600160a01b038216610cf25760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161072d565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610db65760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161072d565b6001600160a01b038216610e185760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161072d565b5f8111610e795760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161072d565b5f80546001600160a01b03858116911614801590610ea457505f546001600160a01b03848116911614155b156114a957610ed56064610ecf600d5460105411610ec457600954610ec8565b600b545b859061161e565b906116a3565b6001600160a01b0385165f9081526004602052604090205490915060ff16158015610f1857506001600160a01b0383165f9081526004602052604090205460ff16155b610f7e5760405162461bcd60e51b815260206004820152603160248201527f5472616e73616374696f6e20626c6f636b65643a204164647265737320697320604482015270333630b3b3b2b21030b99030903137ba1760791b606482015260840161072d565b600854430361100657601854435f9081526006602052604090205410610fe65760405162461bcd60e51b815260206004820181905260248201527f457863656564732062757973206f6e2074686520666972737420626c6f636b2e604482015260640161072d565b435f90815260066020526040812080549161100083611d2a565b91905055505b6001600160a01b0384165f9081526005602052604090205460ff16801561103b57506015546001600160a01b03848116911614155b801561105f57506001600160a01b0383165f9081526003602052604090205460ff16155b15611145576013548211156110b65760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604482015260640161072d565b601454826110d8856001600160a01b03165f9081526001602052604090205490565b6110e29190611d42565b11156111305760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161072d565b60108054905f61113f83611d2a565b91905055505b6001600160a01b0383165f9081526005602052604090205460ff1615801561118557506001600160a01b0383165f9081526003602052604090205460ff16155b1561120457601454826111ac856001600160a01b03165f9081526001602052604090205490565b6111b69190611d42565b11156112045760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604482015260640161072d565b6001600160a01b0383165f9081526005602052604090205460ff16801561123457506001600160a01b0384163014155b156112615761125e6064610ecf600e546010541161125457600a54610ec8565b600c54859061161e565b90505b6001600160a01b0384165f9081526005602052604090205460ff161580156112a157506001600160a01b0383165f9081526005602052604090205460ff16155b80156112b657506001600160a01b0384163014155b156112be57505f5b305f9081526001602052604090205460195460ff161580156112f757506001600160a01b0384165f9081526005602052604090205460ff165b801561130a5750601954610100900460ff165b801561134757506103e86113206009600a611c72565b61132f90640af16b1600611c80565b61133a906001611c80565b6113449190611c97565b81115b80156113565750600f54601054115b156113ee5760125443111561136a575f6011555b60175460115410611379575f80fd5b6113c06113bb846113b68460646113926009600a611c72565b6113a190640af16b1600611c80565b6113ac906001611c80565b6113b69190611c97565b6116e4565b6116f8565b4780156113d0576113d04761185f565b60118054905f6113df83611d2a565b909155505043601255506114a7565b60195460ff1615801561141857506001600160a01b0384165f9081526005602052604090205460ff165b801561142b5750601954610100900460ff165b801561146857506103e86114416009600a611c72565b61145090640af16b1600611c80565b61145b906001611c80565b6114659190611c97565b81115b80156114775750600f54601054115b156114a7576114956113bb846113b68460646113926009600a611c72565b4780156114a5576114a54761185f565b505b505b801561152157305f908152600160205260409020546114c89082611896565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115189085815260200190565b60405180910390a35b6001600160a01b0384165f9081526001602052604090205461154390836118f4565b6001600160a01b0385165f9081526001602052604090205561158661156883836118f4565b6001600160a01b0385165f9081526001602052604090205490611896565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6115cf85856118f4565b60405190815260200160405180910390a350505050565b5f81848411156116095760405162461bcd60e51b815260040161072d91906119a0565b505f6116158486611d55565b95945050505050565b5f825f0361162d57505f6105e9565b5f6116388385611c80565b9050826116458583611c97565b1461169c5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161072d565b9392505050565b5f61169c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611935565b5f8183116116f2578261169c565b50919050565b6019805460ff191660011790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061173857611738611ceb565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561178f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117b39190611d68565b816001815181106117c6576117c6611ceb565b6001600160a01b0392831660209182029290920101526015546117ec9130911684610c2f565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac947906118249085905f90869030904290600401611d83565b5f604051808303815f87803b15801561183b575f80fd5b505af115801561184d573d5f803e3d5ffd5b50506019805460ff1916905550505050565b6007546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156105d5573d5f803e3d5ffd5b5f806118a28385611d42565b90508381101561169c5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161072d565b5f61169c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506115e6565b5f81836119555760405162461bcd60e51b815260040161072d91906119a0565b505f6116158486611c97565b6001600160a01b038116811461069a575f80fd5b803561198081611961565b919050565b5f60208284031215611995575f80fd5b813561169c81611961565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f80604083850312156119e6575f80fd5b82356119f181611961565b946020939093013593505050565b5f805f60608486031215611a11575f80fd5b8335611a1c81611961565b92506020840135611a2c81611961565b929592945050506040919091013590565b634e487b7160e01b5f52604160045260245ffd5b5f6020808385031215611a62575f80fd5b823567ffffffffffffffff80821115611a79575f80fd5b818501915085601f830112611a8c575f80fd5b813581811115611a9e57611a9e611a3d565b8060051b604051601f19603f83011681018181108582111715611ac357611ac3611a3d565b604052918252848201925083810185019188831115611ae0575f80fd5b938501935b82851015611b0557611af685611975565b84529385019392850192611ae5565b98975050505050505050565b5f8060408385031215611b22575f80fd5b8235611b2d81611961565b91506020830135611b3d81611961565b809150509250929050565b5f60208284031215611b58575f80fd5b5051919050565b5f60208284031215611b6f575f80fd5b8151801515811461169c575f80fd5b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611bcc57815f1904821115611bb257611bb2611b7e565b80851615611bbf57918102915b93841c9390800290611b97565b509250929050565b5f82611be2575060016105e9565b81611bee57505f6105e9565b8160018114611c045760028114611c0e57611c2a565b60019150506105e9565b60ff841115611c1f57611c1f611b7e565b50506001821b6105e9565b5060208310610133831016604e8410600b8410161715611c4d575081810a6105e9565b611c578383611b92565b805f1904821115611c6a57611c6a611b7e565b029392505050565b5f61169c60ff841683611bd4565b80820281158282048414176105e9576105e9611b7e565b5f82611cb157634e487b7160e01b5f52601260045260245ffd5b500490565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b5f805f60608486031215611d11575f80fd5b8351925060208401519150604084015190509250925092565b5f60018201611d3b57611d3b611b7e565b5060010190565b808201808211156105e9576105e9611b7e565b818103818111156105e9576105e9611b7e565b5f60208284031215611d78575f80fd5b815161169c81611961565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611dd35784516001600160a01b031683529383019391830191600101611dae565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212202ac79daa9f1a02278a555d4de8ee5b3db7035d74d3f14eb6742f2bfa8d65cd7964736f6c63430008190033

Deployed Bytecode Sourcemap

4280:10869:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14133:237;;;;;;;;;;-1:-1:-1;14133:237:0;;;;;:::i;:::-;;:::i;:::-;;6825:83;;;;;;;;;;-1:-1:-1;6895:5:0;;;;;;;;;;;;-1:-1:-1;;;6895:5:0;;;;6825:83;;;;;;;:::i;:::-;;;;;;;;7731:193;;;;;;;;;;-1:-1:-1;7731:193:0;;;;;:::i;:::-;;:::i;:::-;;;1449:14:1;;1442:22;1424:41;;1412:2;1397:18;7731:193:0;1284:187:1;5518:57:0;;;;;;;;;;;;;:::i;:::-;;;1622:25:1;;;1610:2;1595:18;5518:57:0;1476:177:1;7102:95:0;;;;;;;;;;;;;:::i;13979:146::-;;;;;;;;;;;;;:::i;7932:446::-;;;;;;;;;;-1:-1:-1;7932:446:0;;;;;:::i;:::-;;:::i;7011:83::-;;;;;;;;;;-1:-1:-1;7011:83:0;;5215:1;2261:36:1;;2249:2;2234:18;7011:83:0;2119:184:1;13000:171:0;;;;;;;;;;-1:-1:-1;13000:171:0;;;;;:::i;:::-;;:::i;13179:86::-;;;;;;;;;;-1:-1:-1;13179:86:0;;;;;:::i;:::-;-1:-1:-1;;;;;13250:7:0;13226:4;13250:7;;;:4;:7;;;;;;;;;13179:86;5704:28;;;;;;;;;;-1:-1:-1;5704:28:0;;;;-1:-1:-1;;;;;5704:28:0;;;;;;-1:-1:-1;;;;;3730:32:1;;;3712:51;;3700:2;3685:18;5704:28:0;3566:203:1;7205:119:0;;;;;;;;;;-1:-1:-1;7205:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;7298:18:0;7271:7;7298:18;;;:9;:18;;;;;;;7205:119;2943:148;;;;;;;;;;;;;:::i;14378:162::-;;;;;;;;;;;;;:::i;5404:49::-;;;;;;;;;;;;;;;;14548:561;;;;;;;;;;;;;:::i;2729:79::-;;;;;;;;;;-1:-1:-1;2767:7:0;2794:6;-1:-1:-1;;;;;2794:6:0;2729:79;;5460:51;;;;;;;;;;;;;;;;6916:87;;;;;;;;;;-1:-1:-1;6988:7:0;;;;;;;;;;;;-1:-1:-1;;;6988:7:0;;;;6916:87;;7332:199;;;;;;;;;;-1:-1:-1;7332:199:0;;;;;:::i;:::-;;:::i;5582:64::-;;;;;;;;;;;;;:::i;12825:167::-;;;;;;;;;;-1:-1:-1;12825:167:0;;;;;:::i;:::-;;:::i;7539:184::-;;;;;;;;;;-1:-1:-1;7539:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;7688:18:0;;;7656:7;7688:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7539:184;3099:281;;;;;;;;;;-1:-1:-1;3099:281:0;;;;;:::i;:::-;;:::i;4582:42::-;;;;;;;;;;-1:-1:-1;4582:42:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;14133:237;14219:10;;-1:-1:-1;;;;;14219:10:0;349;-1:-1:-1;;;;;14203:26:0;;14195:35;;;;;;14283:10;;14308:43;;-1:-1:-1;;;14308:43:0;;14345:4;14308:43;;;3712:51:1;-1:-1:-1;;;;;14241:27:0;;;;;;14283:10;;;14241:27;;14308:28;;3685:18:1;;14308:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14241:121;;-1:-1:-1;;;;;;14241:121:0;;;;;;;-1:-1:-1;;;;;4556:32:1;;;14241:121:0;;;4538:51:1;4605:18;;;4598:34;4511:18;;14241:121:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14133:237;:::o;7731:193::-;7833:4;7855:39;349:10;7878:7;7887:6;7855:8;:39::i;:::-;-1:-1:-1;7912:4:0;7731:193;;;;;:::o;5518:57::-;5572:3;5275:13;5215:1;5275:2;:13;:::i;:::-;5258:30;;:14;:30;:::i;:::-;5557:11;;5567:1;5557:11;:::i;:::-;5556:19;;;;:::i;:::-;5518:57;:::o;7102:95::-;7155:7;5275:13;5215:1;5275:2;:13;:::i;:::-;5258:30;;:14;:30;:::i;:::-;7175:14;;7102:95;:::o;13979:146::-;14044:10;;-1:-1:-1;;;;;14044:10:0;349;-1:-1:-1;;;;;14028:26:0;;14020:35;;;;;;14074:10;;14066:51;;-1:-1:-1;;;;;14074:10:0;;;;14095:21;14066:51;;;;;14074:10;14066:51;14074:10;14066:51;14095:21;14074:10;14066:51;;;;;;;;;;;;;;;;;;;;;13979:146::o;7932:446::-;8064:4;8081:36;8091:6;8099:9;8110:6;8081:9;:36::i;:::-;8128:220;8151:6;349:10;8199:138;8255:6;8199:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8199:19:0;;;;;;:11;:19;;;;;;;;349:10;8199:33;;;;;;;;;;:37;:138::i;:::-;8128:8;:220::i;:::-;-1:-1:-1;8366:4:0;7932:446;;;;;:::o;13000:171::-;2856:6;;-1:-1:-1;;;;;2856:6:0;349:10;2856:22;2848:67;;;;-1:-1:-1;;;2848:67:0;;;;;;;:::i;:::-;;;;;;;;;13075:9:::1;13070:94;13094:6;:13;13090:1;:17;13070:94;;;13147:5;13129:4;:15;13134:6;13141:1;13134:9;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;13129:15:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;13129:15:0;:23;;-1:-1:-1;;13129:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;13109:3:0::1;13070:94;;2943:148:::0;2856:6;;-1:-1:-1;;;;;2856:6:0;349:10;2856:22;2848:67;;;;-1:-1:-1;;;2848:67:0;;;;;;;:::i;:::-;3050:1:::1;3034:6:::0;;3013:40:::1;::::0;-1:-1:-1;;;;;3034:6:0;;::::1;::::0;3013:40:::1;::::0;3050:1;;3013:40:::1;3081:1;3064:19:::0;;-1:-1:-1;;;;;;3064:19:0::1;::::0;;2943:148::o;14378:162::-;2856:6;;-1:-1:-1;;;;;2856:6:0;349:10;2856:22;2848:67;;;;-1:-1:-1;;;2848:67:0;;;;;;;:::i;:::-;5275:13:::1;5215:1;5275:2;:13;:::i;:::-;5258:30;::::0;:14:::1;:30;:::i;:::-;14432:12;:22:::0;5275:13:::1;5215:1;5275:2;:13;:::i;:::-;5258:30;::::0;:14:::1;:30;:::i;:::-;14465:14;:24:::0;14505:27:::1;5275:13;5215:1;5275:2;:13;:::i;:::-;5258:30;::::0;:14:::1;:30;:::i;:::-;14505:27;::::0;1622:25:1;;;1610:2;1595:18;14505:27:0::1;;;;;;;14378:162::o:0;14548:561::-;2856:6;;-1:-1:-1;;;;;2856:6:0;349:10;2856:22;2848:67;;;;-1:-1:-1;;;2848:67:0;;;;;;;:::i;:::-;14612:11:::1;::::0;-1:-1:-1;;;14612:11:0;::::1;;;14611:12;14603:48;;;::::0;-1:-1:-1;;;14603:48:0;;7524:2:1;14603:48:0::1;::::0;::::1;7506:21:1::0;7563:2;7543:18;;;7536:30;7602:25;7582:18;;;7575:53;7645:18;;14603:48:0::1;7322:347:1::0;14603:48:0::1;14662:15;::::0;-1:-1:-1;;;;;14662:15:0::1;:31;14701:21;14746:4;14766:24;14746:4:::0;-1:-1:-1;;;;;7298:18:0;7271:7;7298:18;;;:9;:18;;;;;;;7205:119;14766:24:::1;14805:1;14821::::0;14837:7:::1;2767::::0;2794:6;-1:-1:-1;;;;;2794:6:0;;2729:79;14837:7:::1;14662:223;::::0;::::1;::::0;;;-1:-1:-1;;;;;;14662:223:0;;;-1:-1:-1;;;;;8033:15:1;;;14662:223:0::1;::::0;::::1;8015:34:1::0;8065:18;;;8058:34;;;;8108:18;;;8101:34;;;;8151:18;;;8144:34;8215:15;;;8194:19;;;8187:44;14859:15:0::1;8247:19:1::0;;;8240:35;7949:19;;14662:223:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;14903:13:0::1;::::0;14948:15:::1;::::0;14896:111:::1;::::0;-1:-1:-1;;;14896:111:0;;-1:-1:-1;;;;;14948:15:0;;::::1;14896:111;::::0;::::1;4538:51:1::0;-1:-1:-1;;4605:18:1;;;4598:34;14903:13:0;::::1;::::0;-1:-1:-1;14896:29:0::1;::::0;4511:18:1;;14896:111:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;15018:11:0::1;:18:::0;;-1:-1:-1;;15018:18:0::1;;;::::0;;15047:11:::1;:18:::0;;-1:-1:-1;;;;15047:18:0::1;-1:-1:-1::0;;;15047:18:0::1;::::0;;15089:12:::1;15076:10;:25:::0;14548:561::o;7332:199::-;7437:4;7459:42;349:10;7483:9;7494:6;7459:9;:42::i;5582:64::-;5642:4;5275:13;5215:1;5275:2;:13;:::i;12825:167::-;2856:6;;-1:-1:-1;;;;;2856:6:0;349:10;2856:22;2848:67;;;;-1:-1:-1;;;2848:67:0;;;;;;;:::i;:::-;12899:9:::1;12894:91;12918:5;:12;12914:1;:16;12894:91;;;12969:4;12952;:14;12957:5;12963:1;12957:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;12952:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;12952:14:0;:21;;-1:-1:-1;;12952:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;12932:3:0::1;12894:91;;3099:281:::0;2856:6;;-1:-1:-1;;;;;2856:6:0;349:10;2856:22;2848:67;;;;-1:-1:-1;;;2848:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3202:22:0;::::1;3180:110;;;::::0;-1:-1:-1;;;3180:110:0;;9078:2:1;3180:110:0::1;::::0;::::1;9060:21:1::0;9117:2;9097:18;;;9090:30;9156:34;9136:18;;;9129:62;-1:-1:-1;;;9207:18:1;;;9200:36;9253:19;;3180:110:0::1;8876:402:1::0;3180:110:0::1;3327:6;::::0;;3306:38:::1;::::0;-1:-1:-1;;;;;3306:38:0;;::::1;::::0;3327:6;::::1;::::0;3306:38:::1;::::0;::::1;3355:6;:17:::0;;-1:-1:-1;;;;;;3355:17:0::1;-1:-1:-1::0;;;;;3355:17:0;;;::::1;::::0;;;::::1;::::0;;3099:281::o;8386:369::-;-1:-1:-1;;;;;8513:19:0;;8505:68;;;;-1:-1:-1;;;8505:68:0;;9485:2:1;8505:68:0;;;9467:21:1;9524:2;9504:18;;;9497:30;9563:34;9543:18;;;9536:62;-1:-1:-1;;;9614:18:1;;;9607:34;9658:19;;8505:68:0;9283:400:1;8505:68:0;-1:-1:-1;;;;;8592:21:0;;8584:68;;;;-1:-1:-1;;;8584:68:0;;9890:2:1;8584:68:0;;;9872:21:1;9929:2;9909:18;;;9902:30;9968:34;9948:18;;;9941:62;-1:-1:-1;;;10019:18:1;;;10012:32;10061:19;;8584:68:0;9688:398:1;8584:68:0;-1:-1:-1;;;;;8663:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8715:32;;1622:25:1;;;8715:32:0;;1595:18:1;8715:32:0;;;;;;;8386:369;;;:::o;8763:4054::-;-1:-1:-1;;;;;8885:18:0;;8877:68;;;;-1:-1:-1;;;8877:68:0;;10293:2:1;8877:68:0;;;10275:21:1;10332:2;10312:18;;;10305:30;10371:34;10351:18;;;10344:62;-1:-1:-1;;;10422:18:1;;;10415:35;10467:19;;8877:68:0;10091:401:1;8877:68:0;-1:-1:-1;;;;;8964:16:0;;8956:64;;;;-1:-1:-1;;;8956:64:0;;10699:2:1;8956:64:0;;;10681:21:1;10738:2;10718:18;;;10711:30;10777:34;10757:18;;;10750:62;-1:-1:-1;;;10828:18:1;;;10821:33;10871:19;;8956:64:0;10497:399:1;8956:64:0;9048:1;9039:6;:10;9031:64;;;;-1:-1:-1;;;9031:64:0;;11103:2:1;9031:64:0;;;11085:21:1;11142:2;11122:18;;;11115:30;11181:34;11161:18;;;11154:62;-1:-1:-1;;;11232:18:1;;;11225:39;11281:19;;9031:64:0;10901:405:1;9031:64:0;9106:17;2794:6;;-1:-1:-1;;;;;9144:15:0;;;2794:6;;9144:15;;;;:32;;-1:-1:-1;2767:7:0;2794:6;-1:-1:-1;;;;;9163:13:0;;;2794:6;;9163:13;;9144:32;9140:3306;;;9205:208;9409:3;9205:181;9269:15;;9257:9;;:27;9256:111;;9353:14;;9256:111;;;9313:12;;9256:111;9205:6;;:28;:181::i;:::-;:203;;:208::i;:::-;-1:-1:-1;;;;;9457:10:0;;;;;;:4;:10;;;;;;9193:220;;-1:-1:-1;9457:10:0;;9456:11;:24;;;;-1:-1:-1;;;;;;9472:8:0;;;;;;:4;:8;;;;;;;;9471:9;9456:24;9430:135;;;;-1:-1:-1;;;9430:135:0;;11513:2:1;9430:135:0;;;11495:21:1;11552:2;11532:18;;;11525:30;11591:34;11571:18;;;11564:62;-1:-1:-1;;;11642:18:1;;;11635:47;11699:19;;9430:135:0;11311:413:1;9430:135:0;9602:10;;9586:12;:26;9582:261;;9691:14;;9675:12;9663:25;;;;:11;:25;;;;;;:42;9633:148;;;;-1:-1:-1;;;9633:148:0;;11931:2:1;9633:148:0;;;11913:21:1;;;11950:18;;;11943:30;12009:34;11989:18;;;11982:62;12061:18;;9633:148:0;11729:356:1;9633:148:0;9812:12;9800:25;;;;:11;:25;;;;;:27;;;;;;:::i;:::-;;;;;;9582:261;-1:-1:-1;;;;;9881:16:0;;;;;;:10;:16;;;;;;;;:67;;;;-1:-1:-1;9932:15:0;;-1:-1:-1;;;;;9918:30:0;;;9932:15;;9918:30;;9881:67;:100;;;;-1:-1:-1;;;;;;9970:11:0;;;;;;:7;:11;;;;;;;;9969:12;9881:100;9859:422;;;10034:12;;10024:6;:22;;10016:60;;;;-1:-1:-1;;;10016:60:0;;12432:2:1;10016:60:0;;;12414:21:1;12471:2;12451:18;;;12444:30;12510:27;12490:18;;;12483:55;12555:18;;10016:60:0;12230:349:1;10016:60:0;10151:14;;10141:6;10125:13;10135:2;-1:-1:-1;;;;;7298:18:0;7271:7;7298:18;;;:9;:18;;;;;;;7205:119;10125:13;:22;;;;:::i;:::-;:40;;10095:140;;;;-1:-1:-1;;;10095:140:0;;12916:2:1;10095:140:0;;;12898:21:1;12955:2;12935:18;;;12928:30;12994:28;12974:18;;;12967:56;13040:18;;10095:140:0;12714:350:1;10095:140:0;10254:9;:11;;;:9;:11;;;:::i;:::-;;;;;;9859:422;-1:-1:-1;;;;;10302:14:0;;;;;;:10;:14;;;;;;;;10301:15;:31;;;;-1:-1:-1;;;;;;10321:11:0;;;;;;:7;:11;;;;;;;;10320:12;10301:31;10297:212;;;10409:14;;10399:6;10383:13;10393:2;-1:-1:-1;;;;;7298:18:0;7271:7;7298:18;;;:9;:18;;;;;;;7205:119;10383:13;:22;;;;:::i;:::-;:40;;10353:140;;;;-1:-1:-1;;;10353:140:0;;12916:2:1;10353:140:0;;;12898:21:1;12955:2;12935:18;;;12928:30;12994:28;12974:18;;;12967:56;13040:18;;10353:140:0;12714:350:1;10353:140:0;-1:-1:-1;;;;;10529:14:0;;;;;;:10;:14;;;;;;;;:39;;;;-1:-1:-1;;;;;;10547:21:0;;10563:4;10547:21;;10529:39;10525:327;;;10601:235;10832:3;10601:204;10673:16;;10661:9;;:28;10660:122;;10767:15;;10660:122;;;10722:13;;10601:6;;:32;:204::i;:235::-;10589:247;;10525:327;-1:-1:-1;;;;;10873:16:0;;;;;;:10;:16;;;;;;;;10872:17;:36;;;;-1:-1:-1;;;;;;10894:14:0;;;;;;:10;:14;;;;;;;;10893:15;10872:36;:61;;;;-1:-1:-1;;;;;;10912:21:0;;10928:4;10912:21;;10872:61;10868:115;;;-1:-1:-1;10966:1:0;10868:115;11048:4;10999:28;7298:18;;;:9;:18;;;;;;11092:6;;;;11091:7;:42;;;;-1:-1:-1;;;;;;11119:14:0;;;;;;:10;:14;;;;;;;;11091:42;:74;;;;-1:-1:-1;11154:11:0;;;;;;;11091:74;:135;;;;-1:-1:-1;5642:4:0;5275:13;5215:1;5275:2;:13;:::i;:::-;5258:30;;:14;:30;:::i;:::-;5627:11;;5637:1;5627:11;:::i;:::-;5626:20;;;;:::i;:::-;11186;:40;11091:135;:186;;;;;11259:18;;11247:9;;:30;11091:186;11069:1366;;;11331:13;;11316:12;:28;11312:90;;;11381:1;11369:9;:13;11312:90;11440:13;;11428:9;;:25;11420:34;;;;;;11473:109;11512:51;11516:6;11524:38;11528:20;5572:3;5275:13;5215:1;5275:2;:13;:::i;:::-;5258:30;;:14;:30;:::i;:::-;5557:11;;5567:1;5557:11;:::i;:::-;5556:19;;;;:::i;:::-;11524:3;:38::i;11512:51::-;11473:16;:109::i;:::-;11630:21;11674:22;;11670:106;;11721:35;11734:21;11721:12;:35::i;:::-;11794:9;:11;;;:9;:11;;;:::i;:::-;;;;-1:-1:-1;;11840:12:0;11824:13;:28;-1:-1:-1;11069:1366:0;;;11897:6;;;;11896:7;:42;;;;-1:-1:-1;;;;;;11924:14:0;;;;;;:10;:14;;;;;;;;11896:42;:74;;;;-1:-1:-1;11959:11:0;;;;;;;11896:74;:135;;;;-1:-1:-1;5642:4:0;5275:13;5215:1;5275:2;:13;:::i;:::-;5258:30;;:14;:30;:::i;:::-;5627:11;;5637:1;5627:11;:::i;:::-;5626:20;;;;:::i;:::-;11991;:40;11896:135;:186;;;;;12064:18;;12052:9;;:30;11896:186;11874:561;;;12117:109;12156:51;12160:6;12168:38;12172:20;5572:3;5275:13;5215:1;5275:2;:13;:::i;12117:109::-;12274:21;12318:22;;12314:106;;12365:35;12378:21;12365:12;:35::i;:::-;12098:337;11874:561;9178:3268;9140:3306;12462:13;;12458:172;;12537:4;12519:24;;;;:9;:24;;;;;;:39;;12548:9;12519:28;:39::i;:::-;12510:4;12492:24;;;;:9;:24;;;;;;;:66;;;;12578:40;;-1:-1:-1;;;;;12578:40:0;;;;;;;12608:9;1622:25:1;;1610:2;1595:18;;1476:177;12578:40:0;;;;;;;;12458:172;-1:-1:-1;;;;;12658:15:0;;;;;;:9;:15;;;;;;:27;;12678:6;12658:19;:27::i;:::-;-1:-1:-1;;;;;12640:15:0;;;;;;:9;:15;;;;;:45;12712:40;12730:21;:6;12741:9;12730:10;:21::i;:::-;-1:-1:-1;;;;;12712:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;12696:13:0;;;;;;;:9;:13;;;;;:56;;;;12768:41;;;12787:21;:6;12798:9;12787:10;:21::i;:::-;12768:41;;1622:25:1;;;1610:2;1595:18;12768:41:0;;;;;;;8866:3951;8763:4054;;;:::o;1531:224::-;1651:7;1687:12;1679:6;;;;1671:29;;;;-1:-1:-1;;;1671:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1711:9:0;1723:5;1727:1;1723;:5;:::i;:::-;1711:17;1531:224;-1:-1:-1;;;;;1531:224:0:o;1763:246::-;1821:7;1845:1;1850;1845:6;1841:47;;-1:-1:-1;1875:1:0;1868:8;;1841:47;1898:9;1910:5;1914:1;1910;:5;:::i;:::-;1898:17;-1:-1:-1;1943:1:0;1934:5;1938:1;1898:17;1934:5;:::i;:::-;:10;1926:56;;;;-1:-1:-1;;;1926:56:0;;13404:2:1;1926:56:0;;;13386:21:1;13443:2;13423:18;;;13416:30;13482:34;13462:18;;;13455:62;-1:-1:-1;;;13533:18:1;;;13526:31;13574:19;;1926:56:0;13202:397:1;1926:56:0;2000:1;1763:246;-1:-1:-1;;;1763:246:0:o;2017:132::-;2075:7;2102:39;2106:1;2109;2102:39;;;;;;;;;;;;;;;;;:3;:39::i;13273:107::-;13330:7;13362:1;13358;:5;13357:15;;13371:1;13357:15;;;-1:-1:-1;13367:1:0;13273:107;-1:-1:-1;13273:107:0:o;13388:483::-;6015:6;:13;;-1:-1:-1;;6015:13:0;6024:4;6015:13;;;13490:16:::1;::::0;;13504:1:::1;13490:16:::0;;;;;::::1;::::0;;-1:-1:-1;;13490:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;13490:16:0::1;13466:40;;13535:4;13517;13522:1;13517:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13517:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;13561:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;13561:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;13517:7;;13561:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13551:4;13556:1;13551:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13551:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;13626:15:::1;::::0;13594:62:::1;::::0;13611:4:::1;::::0;13626:15:::1;13644:11:::0;13594:8:::1;:62::i;:::-;13667:15;::::0;:196:::1;::::0;-1:-1:-1;;;13667:196:0;;-1:-1:-1;;;;;13667:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;13748:11;;13667:15:::1;::::0;13790:4;;13817::::1;::::0;13837:15:::1;::::0;13667:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6051:6:0;:14;;-1:-1:-1;;6051:14:0;;;-1:-1:-1;;;;13388:483:0:o;13879:92::-;13936:10;;:27;;-1:-1:-1;;;;;13936:10:0;;;;:27;;;;;13956:6;;13936:10;:27;:10;:27;13956:6;13936:10;:27;;;;;;;;;;;;;;;;;;;1200:179;1258:7;;1290:5;1294:1;1290;:5;:::i;:::-;1278:17;;1319:1;1314;:6;;1306:46;;;;-1:-1:-1;;;1306:46:0;;15047:2:1;1306:46:0;;;15029:21:1;15086:2;15066:18;;;15059:30;15125:29;15105:18;;;15098:57;15172:18;;1306:46:0;14845:351:1;1387:136:0;1445:7;1472:43;1476:1;1479;1472:43;;;;;;;;;;;;;;;;;:3;:43::i;2157:223::-;2277:7;2312:12;2305:5;2297:28;;;;-1:-1:-1;;;2297:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2336:9:0;2348:5;2352:1;2348;:5;:::i;14:131:1:-;-1:-1:-1;;;;;89:31:1;;79:42;;69:70;;135:1;132;125:12;150:134;218:20;;247:31;218:20;247:31;:::i;:::-;150:134;;;:::o;289:247::-;348:6;401:2;389:9;380:7;376:23;372:32;369:52;;;417:1;414;407:12;369:52;456:9;443:23;475:31;500:5;475:31;:::i;541:418::-;690:2;679:9;672:21;653:4;722:6;716:13;765:6;760:2;749:9;745:18;738:34;824:6;819:2;811:6;807:15;802:2;791:9;787:18;781:50;880:1;875:2;866:6;855:9;851:22;847:31;840:42;950:2;943;939:7;934:2;926:6;922:15;918:29;907:9;903:45;899:54;891:62;;;541:418;;;;:::o;964:315::-;1032:6;1040;1093:2;1081:9;1072:7;1068:23;1064:32;1061:52;;;1109:1;1106;1099:12;1061:52;1148:9;1135:23;1167:31;1192:5;1167:31;:::i;:::-;1217:5;1269:2;1254:18;;;;1241:32;;-1:-1:-1;;;964:315:1:o;1658:456::-;1735:6;1743;1751;1804:2;1792:9;1783:7;1779:23;1775:32;1772:52;;;1820:1;1817;1810:12;1772:52;1859:9;1846:23;1878:31;1903:5;1878:31;:::i;:::-;1928:5;-1:-1:-1;1985:2:1;1970:18;;1957:32;1998:33;1957:32;1998:33;:::i;:::-;1658:456;;2050:7;;-1:-1:-1;;;2104:2:1;2089:18;;;;2076:32;;1658:456::o;2308:127::-;2369:10;2364:3;2360:20;2357:1;2350:31;2400:4;2397:1;2390:15;2424:4;2421:1;2414:15;2440:1121;2524:6;2555:2;2598;2586:9;2577:7;2573:23;2569:32;2566:52;;;2614:1;2611;2604:12;2566:52;2654:9;2641:23;2683:18;2724:2;2716:6;2713:14;2710:34;;;2740:1;2737;2730:12;2710:34;2778:6;2767:9;2763:22;2753:32;;2823:7;2816:4;2812:2;2808:13;2804:27;2794:55;;2845:1;2842;2835:12;2794:55;2881:2;2868:16;2903:2;2899;2896:10;2893:36;;;2909:18;;:::i;:::-;2955:2;2952:1;2948:10;2987:2;2981:9;3050:2;3046:7;3041:2;3037;3033:11;3029:25;3021:6;3017:38;3105:6;3093:10;3090:22;3085:2;3073:10;3070:18;3067:46;3064:72;;;3116:18;;:::i;:::-;3152:2;3145:22;3202:18;;;3236:15;;;;-1:-1:-1;3278:11:1;;;3274:20;;;3306:19;;;3303:39;;;3338:1;3335;3328:12;3303:39;3362:11;;;;3382:148;3398:6;3393:3;3390:15;3382:148;;;3464:23;3483:3;3464:23;:::i;:::-;3452:36;;3415:12;;;;3508;;;;3382:148;;;3549:6;2440:1121;-1:-1:-1;;;;;;;;2440:1121:1:o;3774:388::-;3842:6;3850;3903:2;3891:9;3882:7;3878:23;3874:32;3871:52;;;3919:1;3916;3909:12;3871:52;3958:9;3945:23;3977:31;4002:5;3977:31;:::i;:::-;4027:5;-1:-1:-1;4084:2:1;4069:18;;4056:32;4097:33;4056:32;4097:33;:::i;:::-;4149:7;4139:17;;;3774:388;;;;;:::o;4167:184::-;4237:6;4290:2;4278:9;4269:7;4265:23;4261:32;4258:52;;;4306:1;4303;4296:12;4258:52;-1:-1:-1;4329:16:1;;4167:184;-1:-1:-1;4167:184:1:o;4643:277::-;4710:6;4763:2;4751:9;4742:7;4738:23;4734:32;4731:52;;;4779:1;4776;4769:12;4731:52;4811:9;4805:16;4864:5;4857:13;4850:21;4843:5;4840:32;4830:60;;4886:1;4883;4876:12;4925:127;4986:10;4981:3;4977:20;4974:1;4967:31;5017:4;5014:1;5007:15;5041:4;5038:1;5031:15;5057:416;5146:1;5183:5;5146:1;5197:270;5218:7;5208:8;5205:21;5197:270;;;5277:4;5273:1;5269:6;5265:17;5259:4;5256:27;5253:53;;;5286:18;;:::i;:::-;5336:7;5326:8;5322:22;5319:55;;;5356:16;;;;5319:55;5435:22;;;;5395:15;;;;5197:270;;;5201:3;5057:416;;;;;:::o;5478:806::-;5527:5;5557:8;5547:80;;-1:-1:-1;5598:1:1;5612:5;;5547:80;5646:4;5636:76;;-1:-1:-1;5683:1:1;5697:5;;5636:76;5728:4;5746:1;5741:59;;;;5814:1;5809:130;;;;5721:218;;5741:59;5771:1;5762:10;;5785:5;;;5809:130;5846:3;5836:8;5833:17;5830:43;;;5853:18;;:::i;:::-;-1:-1:-1;;5909:1:1;5895:16;;5924:5;;5721:218;;6023:2;6013:8;6010:16;6004:3;5998:4;5995:13;5991:36;5985:2;5975:8;5972:16;5967:2;5961:4;5958:12;5954:35;5951:77;5948:159;;;-1:-1:-1;6060:19:1;;;6092:5;;5948:159;6139:34;6164:8;6158:4;6139:34;:::i;:::-;6209:6;6205:1;6201:6;6197:19;6188:7;6185:32;6182:58;;;6220:18;;:::i;:::-;6258:20;;5478:806;-1:-1:-1;;;5478:806:1:o;6289:140::-;6347:5;6376:47;6417:4;6407:8;6403:19;6397:4;6376:47;:::i;6434:168::-;6507:9;;;6538;;6555:15;;;6549:22;;6535:37;6525:71;;6576:18;;:::i;6607:217::-;6647:1;6673;6663:132;;6717:10;6712:3;6708:20;6705:1;6698:31;6752:4;6749:1;6742:15;6780:4;6777:1;6770:15;6663:132;-1:-1:-1;6809:9:1;;6607:217::o;6829:356::-;7031:2;7013:21;;;7050:18;;;7043:30;7109:34;7104:2;7089:18;;7082:62;7176:2;7161:18;;6829:356::o;7190:127::-;7251:10;7246:3;7242:20;7239:1;7232:31;7282:4;7279:1;7272:15;7306:4;7303:1;7296:15;8286:306;8374:6;8382;8390;8443:2;8431:9;8422:7;8418:23;8414:32;8411:52;;;8459:1;8456;8449:12;8411:52;8488:9;8482:16;8472:26;;8538:2;8527:9;8523:18;8517:25;8507:35;;8582:2;8571:9;8567:18;8561:25;8551:35;;8286:306;;;;;:::o;12090:135::-;12129:3;12150:17;;;12147:43;;12170:18;;:::i;:::-;-1:-1:-1;12217:1:1;12206:13;;12090:135::o;12584:125::-;12649:9;;;12670:10;;;12667:36;;;12683:18;;:::i;13069:128::-;13136:9;;;13157:11;;;13154:37;;;13171:18;;:::i;13604:251::-;13674:6;13727:2;13715:9;13706:7;13702:23;13698:32;13695:52;;;13743:1;13740;13733:12;13695:52;13775:9;13769:16;13794:31;13819:5;13794:31;:::i;13860:980::-;14122:4;14170:3;14159:9;14155:19;14201:6;14190:9;14183:25;14227:2;14265:6;14260:2;14249:9;14245:18;14238:34;14308:3;14303:2;14292:9;14288:18;14281:31;14332:6;14367;14361:13;14398:6;14390;14383:22;14436:3;14425:9;14421:19;14414:26;;14475:2;14467:6;14463:15;14449:29;;14496:1;14506:195;14520:6;14517:1;14514:13;14506:195;;;14585:13;;-1:-1:-1;;;;;14581:39:1;14569:52;;14676:15;;;;14641:12;;;;14617:1;14535:9;14506:195;;;-1:-1:-1;;;;;;;14757:32:1;;;;14752:2;14737:18;;14730:60;-1:-1:-1;;;14821:3:1;14806:19;14799:35;14718:3;13860:980;-1:-1:-1;;;13860:980:1:o

Swarm Source

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