ETH Price: $3,386.06 (+0.60%)

Token

WizardBOT (WizardBOT)
 

Overview

Max Total Supply

1,000,000 WizardBOT

Holders

286

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.363752557926169763 WizardBOT

Value
$0.00
0xc1042ec83a2314ae6b3978c91cd6c46586c3d45d
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:
WizardBOT

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-10-01
*/

// WiardEthBOT : @WizardEthBot
// Community : @WizardBotCommunity
// X : https://twitter.com/WizardEthBot
// Website : https://wizardbot.org/

// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.16;

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

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

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

abstract contract Ownable is Context {
    address internal _owner;
    address private _previousOwner;

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

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

    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 {
        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 IERC20Metadata is IERC20 {
    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    function decimals() external view returns (uint8);
}

contract ERC20 is Context, Ownable, IERC20, IERC20Metadata {
    using SafeMath for uint256;

    mapping(address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

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

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

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

    function totalSupply() public view virtual override 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);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()].sub(
                amount,
                "ERC20: transfer amount exceeds allowance"
            )
        );
        return true;
    }

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

    function decreaseAllowance(
        address spender,
        uint256 subtractedValue
    ) public virtual returns (bool) {
        _approve(
            _msgSender(),
            spender,
            _allowances[_msgSender()][spender].sub(
                subtractedValue,
                "ERC20: decreased allowance below zero"
            )
        );
        return true;
    }

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

        _balances[sender] = _balances[sender].sub(
            amount,
            "ERC20: transfer amount exceeds balance"
        );
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply = _totalSupply.add(amount);
        _balances[account] = _balances[account].add(amount);
        emit Transfer(address(0), account, amount);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        _balances[account] = _balances[account].sub(
            amount,
            "ERC20: burn amount exceeds balance"
        );
        _totalSupply = _totalSupply.sub(amount);
        emit Transfer(account, address(0), amount);
    }

    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 _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

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

interface IUniswapV2Pair {
    function factory() external view returns (address);
}

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

    function WETH() external pure returns (address);

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

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract WizardBOT is ERC20 {
    using SafeMath for uint256;

    mapping(address => bool) private _isExcludedFromFee;
    mapping(address => bool) private _isExcludedFromMaxWallet;
    mapping(address => bool) private _isExcludedFromMaxTnxLimit;

    address public marketingWallet;
    address constant _burnAddress = 0x000000000000000000000000000000000000dEaD;

    uint256 public buyFee = 30;
    uint256 public sellFee = 30;

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    bool inSwapAndLiquify;
    bool public swapAndSendFeesEnabled = true;
    bool public tradingEnabled = false;
    uint256 public numTokensSellToSendFees;
    uint256 public maxWalletBalance;
    uint256 public maxTnxAmount;

    event MinTokensBeforeSwapUpdated(uint256 minTokensBeforeSwap);
    event swapAndSendFeesEnabledUpdated(bool enabled);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );

    modifier lockTheSwap() {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }

    constructor() ERC20("WizardBOT", "WizardBOT") {
        numTokensSellToSendFees = 5000 * 10 ** decimals();
        marketingWallet = 0xE97d3B837B0F80fcbD3238B455bF3b6eA5faD3ee;

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        uniswapV2Router = _uniswapV2Router;

        _isExcludedFromFee[_msgSender()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[marketingWallet] = true;

        _isExcludedFromMaxWallet[owner()] = true;
        _isExcludedFromMaxWallet[address(this)] = true;
        _isExcludedFromMaxWallet[_burnAddress] = true;
        _isExcludedFromMaxWallet[marketingWallet] = true;

        _isExcludedFromMaxTnxLimit[owner()] = true;
        _isExcludedFromMaxTnxLimit[address(this)] = true;
        _isExcludedFromMaxTnxLimit[marketingWallet] = true;

        _mint(owner(), 1000000 * 10 ** decimals());
        maxWalletBalance = (totalSupply() * 2) / 100;
        maxTnxAmount = (totalSupply() * 2) / 100;
    }

    function includeAndExcludeFromFee(
        address account,
        bool value
    ) public onlyOwner {
        _isExcludedFromFee[account] = value;
    }

    function includeAndExcludedFromMaxWallet(address account, bool value) public onlyOwner {
        _isExcludedFromMaxWallet[account] = value;
    }

    function includeAndExcludedFromMaxTnxLimit(address account, bool value) public onlyOwner {
        _isExcludedFromMaxTnxLimit[account] = value;
    }


    function isExcludedFromFee(address account) public view returns (bool) {
        return _isExcludedFromFee[account];
    }
    
    function isExcludedFromMaxWallet(address account) public view returns(bool){
        return _isExcludedFromMaxWallet[account];
    }

    function isExcludedFromMaxTnxLimit(address account) public view returns(bool) {
        return _isExcludedFromMaxTnxLimit[account];
    }

    function enableTrading() external onlyOwner {
        tradingEnabled = true;
    }

    function setBuyAndSellFee(
        uint256 bFee,
        uint256 sFee
    ) external onlyOwner {
        buyFee = bFee;
        sellFee = sFee;
    }

    function setmarketingWallet(address _addr) external onlyOwner {
        marketingWallet = _addr;
    }

    function setMaxBalance(uint256 maxBalancePercent) external onlyOwner {
        maxWalletBalance = maxBalancePercent * 10 ** decimals();
    }

    function setMaxTxAmount(uint256 maxTxAmount) external onlyOwner {
        maxTnxAmount = maxTxAmount * 10 ** decimals();
    }

    function setNumTokensSellToSendFees(uint256 amount) external onlyOwner {
        numTokensSellToSendFees = amount * 10 ** decimals();
    }

    function setswapAndSendFeesEnabled(bool _enabled) external onlyOwner {
        swapAndSendFeesEnabled = _enabled;
        emit swapAndSendFeesEnabledUpdated(_enabled);
    }

    receive() external payable {}

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal override {
        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");

        if (from != owner() && !tradingEnabled) {
            require(tradingEnabled, "Trading is not enabled yet");
        }

        if (from != owner() && to != owner())
            require(
                _isExcludedFromMaxTnxLimit[from] ||
                    _isExcludedFromMaxTnxLimit[to] ||
                    amount <= maxTnxAmount,
                "ERC20: Transfer amount exceeds the MaxTnxAmount."
            );

        if (
            from != owner() &&
            to != address(this) &&
            to != _burnAddress &&
            to != uniswapV2Pair
        ) {
            uint256 currentBalance = balanceOf(to);
            require(
                _isExcludedFromMaxWallet[to] ||
                    (currentBalance + amount <= maxWalletBalance),
                "ERC20: Reached Max wallet holding"
            );
        }

        uint256 contractTokenBalance = balanceOf(address(this));
        bool overMinTokenBalance = contractTokenBalance >=
            numTokensSellToSendFees;
        if (
            overMinTokenBalance &&
            !inSwapAndLiquify &&
            from != uniswapV2Pair &&
            swapAndSendFeesEnabled
        ) {
            contractTokenBalance = numTokensSellToSendFees;
            swapBack(contractTokenBalance);
        }

        bool takeFee = true;
        if (_isExcludedFromFee[from] || _isExcludedFromFee[to]) {
            super._transfer(from, to, amount);
            takeFee = false;
        } else {
            if (from == uniswapV2Pair) {
                uint256 marketingTokens = amount.mul(buyFee).div(100);
                amount = amount.sub(marketingTokens);
                super._transfer(from, address(this), marketingTokens);
                super._transfer(from, to, amount);
            } else if (to == uniswapV2Pair) {
                uint256 marketingTokens = amount.mul(sellFee).div(
                    100
                );
                amount = amount.sub(marketingTokens);
                super._transfer(from, address(this), marketingTokens);
                super._transfer(from, to, amount);
            } else {
                super._transfer(from, to, amount);
            }
        }
    }

    function swapBack(uint256 contractBalance) private lockTheSwap {
        uint256 marketingTokens = contractBalance.mul(sellFee).div(
            100
        );
        uint256 totalTokensToSwap = marketingTokens;
        if (contractBalance == 0 || totalTokensToSwap == 0) {
            return;
        }
        bool success;
        swapTokensForEth(contractBalance);
        uint256 ethBalance = address(this).balance;
        uint256 ethForMarketing = (ethBalance * marketingTokens) /
            (totalTokensToSwap);
        (success, ) = address(marketingWallet).call{
            value: ethForMarketing
        }("");
    }

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

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":false,"internalType":"uint256","name":"minTokensBeforeSwap","type":"uint256"}],"name":"MinTokensBeforeSwapUpdated","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":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"swapAndSendFeesEnabledUpdated","type":"event"},{"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":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"includeAndExcludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"includeAndExcludedFromMaxTnxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"includeAndExcludedFromMaxWallet","outputs":[],"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":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromMaxTnxLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromMaxWallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTnxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletBalance","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":"numTokensSellToSendFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"bFee","type":"uint256"},{"internalType":"uint256","name":"sFee","type":"uint256"}],"name":"setBuyAndSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxBalancePercent","type":"uint256"}],"name":"setMaxBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setNumTokensSellToSendFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"setmarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setswapAndSendFeesEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndSendFeesEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"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"},{"stateMutability":"payable","type":"receive"}]

6080604052601e600b819055600c55600e805461ffff60a81b1916600160a81b1790553480156200002f57600080fd5b506040518060400160405280600981526020016815da5e985c991093d560ba1b8152506040518060400160405280600981526020016815da5e985c991093d560ba1b81525062000084620004c960201b60201c565b600080546001600160a01b0319166001600160a01b039290921691821781556040517f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a36005620000d983826200067d565b506006620000e882826200067d565b50620000f5915050601290565b6200010290600a6200085c565b62000110906113886200086d565b600f55600a80546001600160a01b03191673e97d3b837b0f80fcbd3238b455bf3b6ea5fad3ee1790556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d91829163c45a0155916004808201926020929091908290030181865afa1580156200018d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001b3919062000887565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000201573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000227919062000887565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000275573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200029b919062000887565b600e80546001600160a01b03199081166001600160a01b0393841617909155600d8054909116918316919091179055600160076000620002d83390565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526007909352818320805485166001908117909155600a54909116835290822080549093168117909255600890620003486000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905530815260089093528183208054851660019081179091557f046fee3d77c34a6c5e10c3be6dc4b132c30449dbf4f0bc07684896dd093342998054861682179055600a54909116835290822080549093168117909255600990620003e16000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526009909352818320805485166001908117909155600a54909116835291208054909216179055620004726200044f6000546001600160a01b031690565b6200045d6012600a6200085c565b6200046c90620f42406200086d565b620004cd565b60646200047e60045490565b6200048b9060026200086d565b620004979190620008b9565b6010556064620004a660045490565b620004b39060026200086d565b620004bf9190620008b9565b60115550620008f2565b3390565b6001600160a01b038216620005285760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b600454620005379082620005c2565b6004556001600160a01b0382166000908152600260205260409020546200055f9082620005c2565b6001600160a01b0383166000818152600260205260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90620005b19085815260200190565b60405180910390a35050565b505050565b6000620005d08284620008dc565b90505b92915050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200060457607f821691505b6020821081036200062557634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620005bd57600081815260208120601f850160051c81016020861015620006545750805b601f850160051c820191505b81811015620006755782815560010162000660565b505050505050565b81516001600160401b03811115620006995762000699620005d9565b620006b181620006aa8454620005ef565b846200062b565b602080601f831160018114620006e95760008415620006d05750858301515b600019600386901b1c1916600185901b17855562000675565b600085815260208120601f198616915b828110156200071a57888601518255948401946001909101908401620006f9565b5085821015620007395787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620007a057816000190482111562000784576200078462000749565b808516156200079257918102915b93841c939080029062000764565b509250929050565b600082620007b957506001620005d3565b81620007c857506000620005d3565b8160018114620007e15760028114620007ec576200080c565b6001915050620005d3565b60ff84111562000800576200080062000749565b50506001821b620005d3565b5060208310610133831016604e8410600b841016171562000831575081810a620005d3565b6200083d83836200075f565b806000190482111562000854576200085462000749565b029392505050565b6000620005d060ff841683620007a8565b8082028115828204841417620005d357620005d362000749565b6000602082840312156200089a57600080fd5b81516001600160a01b0381168114620008b257600080fd5b9392505050565b600082620008d757634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115620005d357620005d362000749565b611c0880620009026000396000f3fe60806040526004361061021e5760003560e01c806355874a79116101235780639904a1c3116100ab578063bbde77c11161006f578063bbde77c114610676578063da7e2c7f1461068c578063dd62ed3e146106ac578063ec28438a146106f2578063f2fde38b1461071257600080fd5b80639904a1c3146105d65780639d51d9b7146105f6578063a346304f14610616578063a457c2d714610636578063a9059cbb1461065657600080fd5b806375f0a874116100f257806375f0a8741461054e57806384e2b88d1461056e5780638a8c523c1461058e5780638da5cb5b146105a357806395d89b41146105c157600080fd5b806355874a79146104915780636dd3d39f146104ca57806370a0823114610503578063715018a61461053957600080fd5b80632b14ca56116101a657806348eb61b61161017557806348eb61b6146103e157806349bd5a5e146104015780634ada218b146104215780635342acb41461044257806353cae9cf1461047b57600080fd5b80632b14ca5614610379578063313ce5671461038f57806339509351146103ab57806347062402146103cb57600080fd5b8063148d2161116101ed578063148d2161146102cb5780631694505e146102ec57806318160ddd14610324578063224611731461033957806323b872dd1461035957600080fd5b806302a8b0411461022a57806306fdde031461024c578063095ea7b314610277578063130d6ce0146102a757600080fd5b3661022557005b600080fd5b34801561023657600080fd5b5061024a6102453660046116a8565b610732565b005b34801561025857600080fd5b506102616107bd565b60405161026e91906116c3565b60405180910390f35b34801561028357600080fd5b50610297610292366004611729565b61084f565b604051901515815260200161026e565b3480156102b357600080fd5b506102bd60115481565b60405190815260200161026e565b3480156102d757600080fd5b50600e5461029790600160a81b900460ff1681565b3480156102f857600080fd5b50600d5461030c906001600160a01b031681565b6040516001600160a01b03909116815260200161026e565b34801561033057600080fd5b506004546102bd565b34801561034557600080fd5b5061024a610354366004611755565b610866565b34801561036557600080fd5b50610297610374366004611772565b6108b2565b34801561038557600080fd5b506102bd600c5481565b34801561039b57600080fd5b506040516012815260200161026e565b3480156103b757600080fd5b506102976103c6366004611729565b61091b565b3480156103d757600080fd5b506102bd600b5481565b3480156103ed57600080fd5b5061024a6103fc3660046117b3565b610951565b34801561040d57600080fd5b50600e5461030c906001600160a01b031681565b34801561042d57600080fd5b50600e5461029790600160b01b900460ff1681565b34801561044e57600080fd5b5061029761045d366004611755565b6001600160a01b031660009081526007602052604090205460ff1690565b34801561048757600080fd5b506102bd600f5481565b34801561049d57600080fd5b506102976104ac366004611755565b6001600160a01b031660009081526009602052604090205460ff1690565b3480156104d657600080fd5b506102976104e5366004611755565b6001600160a01b031660009081526008602052604090205460ff1690565b34801561050f57600080fd5b506102bd61051e366004611755565b6001600160a01b031660009081526002602052604090205490565b34801561054557600080fd5b5061024a6109a6565b34801561055a57600080fd5b50600a5461030c906001600160a01b031681565b34801561057a57600080fd5b5061024a6105893660046117e8565b610a1a565b34801561059a57600080fd5b5061024a610a60565b3480156105af57600080fd5b506000546001600160a01b031661030c565b3480156105cd57600080fd5b50610261610a9f565b3480156105e257600080fd5b5061024a6105f13660046117b3565b610aae565b34801561060257600080fd5b5061024a6106113660046117e8565b610b03565b34801561062257600080fd5b5061024a610631366004611801565b610b49565b34801561064257600080fd5b50610297610651366004611729565b610b7e565b34801561066257600080fd5b50610297610671366004611729565b610bcd565b34801561068257600080fd5b506102bd60105481565b34801561069857600080fd5b5061024a6106a73660046117b3565b610bda565b3480156106b857600080fd5b506102bd6106c7366004611823565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b3480156106fe57600080fd5b5061024a61070d3660046117e8565b610c2f565b34801561071e57600080fd5b5061024a61072d366004611755565b610c75565b6000546001600160a01b031633146107655760405162461bcd60e51b815260040161075c9061185c565b60405180910390fd5b600e8054821515600160a81b0260ff60a81b199091161790556040517f95104a55e36dd507aac6f3a5211027febb09c940366b18700bc6e6cedf67426b906107b290831515815260200190565b60405180910390a150565b6060600580546107cc90611891565b80601f01602080910402602001604051908101604052809291908181526020018280546107f890611891565b80156108455780601f1061081a57610100808354040283529160200191610845565b820191906000526020600020905b81548152906001019060200180831161082857829003601f168201915b5050505050905090565b600061085c338484610d5f565b5060015b92915050565b6000546001600160a01b031633146108905760405162461bcd60e51b815260040161075c9061185c565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b60006108bf848484610e84565b610911843361090c85604051806060016040528060288152602001611b86602891396001600160a01b038a16600090815260036020908152604080832033845290915290205491906112fe565b610d5f565b5060019392505050565b3360008181526003602090815260408083206001600160a01b0387168452909152812054909161085c91859061090c908661132a565b6000546001600160a01b0316331461097b5760405162461bcd60e51b815260040161075c9061185c565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146109d05760405162461bcd60e51b815260040161075c9061185c565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610a445760405162461bcd60e51b815260040161075c9061185c565b610a506012600a6119c5565b610a5a90826119d4565b600f5550565b6000546001600160a01b03163314610a8a5760405162461bcd60e51b815260040161075c9061185c565b600e805460ff60b01b1916600160b01b179055565b6060600680546107cc90611891565b6000546001600160a01b03163314610ad85760405162461bcd60e51b815260040161075c9061185c565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610b2d5760405162461bcd60e51b815260040161075c9061185c565b610b396012600a6119c5565b610b4390826119d4565b60105550565b6000546001600160a01b03163314610b735760405162461bcd60e51b815260040161075c9061185c565b600b91909155600c55565b600061085c338461090c85604051806060016040528060258152602001611bae602591393360009081526003602090815260408083206001600160a01b038d16845290915290205491906112fe565b600061085c338484610e84565b6000546001600160a01b03163314610c045760405162461bcd60e51b815260040161075c9061185c565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610c595760405162461bcd60e51b815260040161075c9061185c565b610c656012600a6119c5565b610c6f90826119d4565b60115550565b6000546001600160a01b03163314610c9f5760405162461bcd60e51b815260040161075c9061185c565b6001600160a01b038116610d045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161075c565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610dc15760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161075c565b6001600160a01b038216610e225760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161075c565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610eaa5760405162461bcd60e51b815260040161075c906119eb565b6001600160a01b038216610ed05760405162461bcd60e51b815260040161075c90611a30565b60008111610f325760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161075c565b6000546001600160a01b03848116911614801590610f5a5750600e54600160b01b900460ff16155b15610fb857600e54600160b01b900460ff16610fb85760405162461bcd60e51b815260206004820152601a60248201527f54726164696e67206973206e6f7420656e61626c656420796574000000000000604482015260640161075c565b6000546001600160a01b03848116911614801590610fe457506000546001600160a01b03838116911614155b1561109a576001600160a01b03831660009081526009602052604090205460ff168061102857506001600160a01b03821660009081526009602052604090205460ff165b8061103557506011548111155b61109a5760405162461bcd60e51b815260206004820152603060248201527f45524332303a205472616e7366657220616d6f756e742065786365656473207460448201526f34329026b0bc2a373c20b6b7bab73a1760811b606482015260840161075c565b6000546001600160a01b038481169116148015906110c157506001600160a01b0382163014155b80156110d857506001600160a01b03821661dead14155b80156110f25750600e546001600160a01b03838116911614155b1561118d576001600160a01b03821660009081526002602090815260408083205460089092529091205460ff168061113557506010546111328383611a73565b11155b61118b5760405162461bcd60e51b815260206004820152602160248201527f45524332303a2052656163686564204d61782077616c6c657420686f6c64696e6044820152606760f81b606482015260840161075c565b505b30600090815260026020526040902054600f54811080159081906111bb5750600e54600160a01b900460ff16155b80156111d55750600e546001600160a01b03868116911614155b80156111ea5750600e54600160a81b900460ff165b156111fd57600f5491506111fd8261133d565b6001600160a01b03851660009081526007602052604090205460019060ff168061123f57506001600160a01b03851660009081526007602052604090205460ff165b156112575761124f868686611411565b5060006112f6565b600e546001600160a01b03908116908716036112b957600061128f6064611289600b548861151d90919063ffffffff16565b90611529565b905061129b8582611535565b94506112a8873083611411565b6112b3878787611411565b506112f6565b600e546001600160a01b03908116908616036112eb57600061128f6064611289600c548861151d90919063ffffffff16565b6112f6868686611411565b505050505050565b600081848411156113225760405162461bcd60e51b815260040161075c91906116c3565b505050900390565b60006113368284611a73565b9392505050565b600e805460ff60a01b1916600160a01b179055600c546000906113689060649061128990859061151d565b905080821580611376575080155b15611382575050611401565b600061138d84611541565b4760008361139b86846119d4565b6113a59190611a86565b600a546040519192506001600160a01b0316908290600081818185875af1925050503d80600081146113f3576040519150601f19603f3d011682016040523d82523d6000602084013e6113f8565b606091505b50505050505050505b50600e805460ff60a01b19169055565b6001600160a01b0383166114375760405162461bcd60e51b815260040161075c906119eb565b6001600160a01b03821661145d5760405162461bcd60e51b815260040161075c90611a30565b61149a81604051806060016040528060268152602001611b60602691396001600160a01b03861660009081526002602052604090205491906112fe565b6001600160a01b0380851660009081526002602052604080822093909355908416815220546114c9908261132a565b6001600160a01b0380841660008181526002602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610e779085815260200190565b600061133682846119d4565b60006113368284611a86565b60006113368284611aa8565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061157657611576611abb565b6001600160a01b03928316602091820292909201810191909152600d54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156115cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115f39190611ad1565b8160018151811061160657611606611abb565b6001600160a01b039283166020918202929092010152600d5461162c9130911684610d5f565b600d5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611665908590600090869030904290600401611aee565b600060405180830381600087803b15801561167f57600080fd5b505af11580156112f6573d6000803e3d6000fd5b803580151581146116a357600080fd5b919050565b6000602082840312156116ba57600080fd5b61133682611693565b600060208083528351808285015260005b818110156116f0578581018301518582016040015282016116d4565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461172657600080fd5b50565b6000806040838503121561173c57600080fd5b823561174781611711565b946020939093013593505050565b60006020828403121561176757600080fd5b813561133681611711565b60008060006060848603121561178757600080fd5b833561179281611711565b925060208401356117a281611711565b929592945050506040919091013590565b600080604083850312156117c657600080fd5b82356117d181611711565b91506117df60208401611693565b90509250929050565b6000602082840312156117fa57600080fd5b5035919050565b6000806040838503121561181457600080fd5b50508035926020909101359150565b6000806040838503121561183657600080fd5b823561184181611711565b9150602083013561185181611711565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c908216806118a557607f821691505b6020821081036118c557634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561191c578160001904821115611902576119026118cb565b8085161561190f57918102915b93841c93908002906118e6565b509250929050565b60008261193357506001610860565b8161194057506000610860565b816001811461195657600281146119605761197c565b6001915050610860565b60ff841115611971576119716118cb565b50506001821b610860565b5060208310610133831016604e8410600b841016171561199f575081810a610860565b6119a983836118e1565b80600019048211156119bd576119bd6118cb565b029392505050565b600061133660ff841683611924565b8082028115828204841417610860576108606118cb565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b80820180821115610860576108606118cb565b600082611aa357634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115610860576108606118cb565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611ae357600080fd5b815161133681611711565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611b3e5784516001600160a01b031683529383019391830191600101611b19565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220dd5065469ed361eeed5e51964c04cdf204b252b5ea0bcbad1c9d55235a5e5fb064736f6c63430008130033

Deployed Bytecode

0x60806040526004361061021e5760003560e01c806355874a79116101235780639904a1c3116100ab578063bbde77c11161006f578063bbde77c114610676578063da7e2c7f1461068c578063dd62ed3e146106ac578063ec28438a146106f2578063f2fde38b1461071257600080fd5b80639904a1c3146105d65780639d51d9b7146105f6578063a346304f14610616578063a457c2d714610636578063a9059cbb1461065657600080fd5b806375f0a874116100f257806375f0a8741461054e57806384e2b88d1461056e5780638a8c523c1461058e5780638da5cb5b146105a357806395d89b41146105c157600080fd5b806355874a79146104915780636dd3d39f146104ca57806370a0823114610503578063715018a61461053957600080fd5b80632b14ca56116101a657806348eb61b61161017557806348eb61b6146103e157806349bd5a5e146104015780634ada218b146104215780635342acb41461044257806353cae9cf1461047b57600080fd5b80632b14ca5614610379578063313ce5671461038f57806339509351146103ab57806347062402146103cb57600080fd5b8063148d2161116101ed578063148d2161146102cb5780631694505e146102ec57806318160ddd14610324578063224611731461033957806323b872dd1461035957600080fd5b806302a8b0411461022a57806306fdde031461024c578063095ea7b314610277578063130d6ce0146102a757600080fd5b3661022557005b600080fd5b34801561023657600080fd5b5061024a6102453660046116a8565b610732565b005b34801561025857600080fd5b506102616107bd565b60405161026e91906116c3565b60405180910390f35b34801561028357600080fd5b50610297610292366004611729565b61084f565b604051901515815260200161026e565b3480156102b357600080fd5b506102bd60115481565b60405190815260200161026e565b3480156102d757600080fd5b50600e5461029790600160a81b900460ff1681565b3480156102f857600080fd5b50600d5461030c906001600160a01b031681565b6040516001600160a01b03909116815260200161026e565b34801561033057600080fd5b506004546102bd565b34801561034557600080fd5b5061024a610354366004611755565b610866565b34801561036557600080fd5b50610297610374366004611772565b6108b2565b34801561038557600080fd5b506102bd600c5481565b34801561039b57600080fd5b506040516012815260200161026e565b3480156103b757600080fd5b506102976103c6366004611729565b61091b565b3480156103d757600080fd5b506102bd600b5481565b3480156103ed57600080fd5b5061024a6103fc3660046117b3565b610951565b34801561040d57600080fd5b50600e5461030c906001600160a01b031681565b34801561042d57600080fd5b50600e5461029790600160b01b900460ff1681565b34801561044e57600080fd5b5061029761045d366004611755565b6001600160a01b031660009081526007602052604090205460ff1690565b34801561048757600080fd5b506102bd600f5481565b34801561049d57600080fd5b506102976104ac366004611755565b6001600160a01b031660009081526009602052604090205460ff1690565b3480156104d657600080fd5b506102976104e5366004611755565b6001600160a01b031660009081526008602052604090205460ff1690565b34801561050f57600080fd5b506102bd61051e366004611755565b6001600160a01b031660009081526002602052604090205490565b34801561054557600080fd5b5061024a6109a6565b34801561055a57600080fd5b50600a5461030c906001600160a01b031681565b34801561057a57600080fd5b5061024a6105893660046117e8565b610a1a565b34801561059a57600080fd5b5061024a610a60565b3480156105af57600080fd5b506000546001600160a01b031661030c565b3480156105cd57600080fd5b50610261610a9f565b3480156105e257600080fd5b5061024a6105f13660046117b3565b610aae565b34801561060257600080fd5b5061024a6106113660046117e8565b610b03565b34801561062257600080fd5b5061024a610631366004611801565b610b49565b34801561064257600080fd5b50610297610651366004611729565b610b7e565b34801561066257600080fd5b50610297610671366004611729565b610bcd565b34801561068257600080fd5b506102bd60105481565b34801561069857600080fd5b5061024a6106a73660046117b3565b610bda565b3480156106b857600080fd5b506102bd6106c7366004611823565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b3480156106fe57600080fd5b5061024a61070d3660046117e8565b610c2f565b34801561071e57600080fd5b5061024a61072d366004611755565b610c75565b6000546001600160a01b031633146107655760405162461bcd60e51b815260040161075c9061185c565b60405180910390fd5b600e8054821515600160a81b0260ff60a81b199091161790556040517f95104a55e36dd507aac6f3a5211027febb09c940366b18700bc6e6cedf67426b906107b290831515815260200190565b60405180910390a150565b6060600580546107cc90611891565b80601f01602080910402602001604051908101604052809291908181526020018280546107f890611891565b80156108455780601f1061081a57610100808354040283529160200191610845565b820191906000526020600020905b81548152906001019060200180831161082857829003601f168201915b5050505050905090565b600061085c338484610d5f565b5060015b92915050565b6000546001600160a01b031633146108905760405162461bcd60e51b815260040161075c9061185c565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b60006108bf848484610e84565b610911843361090c85604051806060016040528060288152602001611b86602891396001600160a01b038a16600090815260036020908152604080832033845290915290205491906112fe565b610d5f565b5060019392505050565b3360008181526003602090815260408083206001600160a01b0387168452909152812054909161085c91859061090c908661132a565b6000546001600160a01b0316331461097b5760405162461bcd60e51b815260040161075c9061185c565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146109d05760405162461bcd60e51b815260040161075c9061185c565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610a445760405162461bcd60e51b815260040161075c9061185c565b610a506012600a6119c5565b610a5a90826119d4565b600f5550565b6000546001600160a01b03163314610a8a5760405162461bcd60e51b815260040161075c9061185c565b600e805460ff60b01b1916600160b01b179055565b6060600680546107cc90611891565b6000546001600160a01b03163314610ad85760405162461bcd60e51b815260040161075c9061185c565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610b2d5760405162461bcd60e51b815260040161075c9061185c565b610b396012600a6119c5565b610b4390826119d4565b60105550565b6000546001600160a01b03163314610b735760405162461bcd60e51b815260040161075c9061185c565b600b91909155600c55565b600061085c338461090c85604051806060016040528060258152602001611bae602591393360009081526003602090815260408083206001600160a01b038d16845290915290205491906112fe565b600061085c338484610e84565b6000546001600160a01b03163314610c045760405162461bcd60e51b815260040161075c9061185c565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610c595760405162461bcd60e51b815260040161075c9061185c565b610c656012600a6119c5565b610c6f90826119d4565b60115550565b6000546001600160a01b03163314610c9f5760405162461bcd60e51b815260040161075c9061185c565b6001600160a01b038116610d045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161075c565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610dc15760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161075c565b6001600160a01b038216610e225760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161075c565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610eaa5760405162461bcd60e51b815260040161075c906119eb565b6001600160a01b038216610ed05760405162461bcd60e51b815260040161075c90611a30565b60008111610f325760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161075c565b6000546001600160a01b03848116911614801590610f5a5750600e54600160b01b900460ff16155b15610fb857600e54600160b01b900460ff16610fb85760405162461bcd60e51b815260206004820152601a60248201527f54726164696e67206973206e6f7420656e61626c656420796574000000000000604482015260640161075c565b6000546001600160a01b03848116911614801590610fe457506000546001600160a01b03838116911614155b1561109a576001600160a01b03831660009081526009602052604090205460ff168061102857506001600160a01b03821660009081526009602052604090205460ff165b8061103557506011548111155b61109a5760405162461bcd60e51b815260206004820152603060248201527f45524332303a205472616e7366657220616d6f756e742065786365656473207460448201526f34329026b0bc2a373c20b6b7bab73a1760811b606482015260840161075c565b6000546001600160a01b038481169116148015906110c157506001600160a01b0382163014155b80156110d857506001600160a01b03821661dead14155b80156110f25750600e546001600160a01b03838116911614155b1561118d576001600160a01b03821660009081526002602090815260408083205460089092529091205460ff168061113557506010546111328383611a73565b11155b61118b5760405162461bcd60e51b815260206004820152602160248201527f45524332303a2052656163686564204d61782077616c6c657420686f6c64696e6044820152606760f81b606482015260840161075c565b505b30600090815260026020526040902054600f54811080159081906111bb5750600e54600160a01b900460ff16155b80156111d55750600e546001600160a01b03868116911614155b80156111ea5750600e54600160a81b900460ff165b156111fd57600f5491506111fd8261133d565b6001600160a01b03851660009081526007602052604090205460019060ff168061123f57506001600160a01b03851660009081526007602052604090205460ff165b156112575761124f868686611411565b5060006112f6565b600e546001600160a01b03908116908716036112b957600061128f6064611289600b548861151d90919063ffffffff16565b90611529565b905061129b8582611535565b94506112a8873083611411565b6112b3878787611411565b506112f6565b600e546001600160a01b03908116908616036112eb57600061128f6064611289600c548861151d90919063ffffffff16565b6112f6868686611411565b505050505050565b600081848411156113225760405162461bcd60e51b815260040161075c91906116c3565b505050900390565b60006113368284611a73565b9392505050565b600e805460ff60a01b1916600160a01b179055600c546000906113689060649061128990859061151d565b905080821580611376575080155b15611382575050611401565b600061138d84611541565b4760008361139b86846119d4565b6113a59190611a86565b600a546040519192506001600160a01b0316908290600081818185875af1925050503d80600081146113f3576040519150601f19603f3d011682016040523d82523d6000602084013e6113f8565b606091505b50505050505050505b50600e805460ff60a01b19169055565b6001600160a01b0383166114375760405162461bcd60e51b815260040161075c906119eb565b6001600160a01b03821661145d5760405162461bcd60e51b815260040161075c90611a30565b61149a81604051806060016040528060268152602001611b60602691396001600160a01b03861660009081526002602052604090205491906112fe565b6001600160a01b0380851660009081526002602052604080822093909355908416815220546114c9908261132a565b6001600160a01b0380841660008181526002602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610e779085815260200190565b600061133682846119d4565b60006113368284611a86565b60006113368284611aa8565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061157657611576611abb565b6001600160a01b03928316602091820292909201810191909152600d54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156115cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115f39190611ad1565b8160018151811061160657611606611abb565b6001600160a01b039283166020918202929092010152600d5461162c9130911684610d5f565b600d5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611665908590600090869030904290600401611aee565b600060405180830381600087803b15801561167f57600080fd5b505af11580156112f6573d6000803e3d6000fd5b803580151581146116a357600080fd5b919050565b6000602082840312156116ba57600080fd5b61133682611693565b600060208083528351808285015260005b818110156116f0578581018301518582016040015282016116d4565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461172657600080fd5b50565b6000806040838503121561173c57600080fd5b823561174781611711565b946020939093013593505050565b60006020828403121561176757600080fd5b813561133681611711565b60008060006060848603121561178757600080fd5b833561179281611711565b925060208401356117a281611711565b929592945050506040919091013590565b600080604083850312156117c657600080fd5b82356117d181611711565b91506117df60208401611693565b90509250929050565b6000602082840312156117fa57600080fd5b5035919050565b6000806040838503121561181457600080fd5b50508035926020909101359150565b6000806040838503121561183657600080fd5b823561184181611711565b9150602083013561185181611711565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c908216806118a557607f821691505b6020821081036118c557634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561191c578160001904821115611902576119026118cb565b8085161561190f57918102915b93841c93908002906118e6565b509250929050565b60008261193357506001610860565b8161194057506000610860565b816001811461195657600281146119605761197c565b6001915050610860565b60ff841115611971576119716118cb565b50506001821b610860565b5060208310610133831016604e8410600b841016171561199f575081810a610860565b6119a983836118e1565b80600019048211156119bd576119bd6118cb565b029392505050565b600061133660ff841683611924565b8082028115828204841417610860576108606118cb565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b80820180821115610860576108606118cb565b600082611aa357634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115610860576108606118cb565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611ae357600080fd5b815161133681611711565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611b3e5784516001600160a01b031683529383019391830191600101611b19565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220dd5065469ed361eeed5e51964c04cdf204b252b5ea0bcbad1c9d55235a5e5fb064736f6c63430008130033

Deployed Bytecode Sourcemap

9219:8082:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13308:176;;;;;;;;;;-1:-1:-1;13308:176:0;;;;;:::i;:::-;;:::i;:::-;;3919:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4899:194;;;;;;;;;;-1:-1:-1;4899:194:0;;;;;:::i;:::-;;:::i;:::-;;;1538:14:1;;1531:22;1513:41;;1501:2;1486:18;4899:194:0;1373:187:1;9951:27:0;;;;;;;;;;;;;;;;;;;1711:25:1;;;1699:2;1684:18;9951:27:0;1565:177:1;9779:41:0;;;;;;;;;;-1:-1:-1;9779:41:0;;;;-1:-1:-1;;;9779:41:0;;;;;;9668;;;;;;;;;;-1:-1:-1;9668:41:0;;;;-1:-1:-1;;;;;9668:41:0;;;;;;-1:-1:-1;;;;;1937:32:1;;;1919:51;;1907:2;1892:18;9668:41:0;1747:229:1;4240:108:0;;;;;;;;;;-1:-1:-1;4328:12:0;;4240:108;;12760:104;;;;;;;;;;-1:-1:-1;12760:104:0;;;;;:::i;:::-;;:::i;5101:454::-;;;;;;;;;;-1:-1:-1;5101:454:0;;;;;:::i;:::-;;:::i;9632:27::-;;;;;;;;;;;;;;;;4139:93;;;;;;;;;;-1:-1:-1;4139:93:0;;4222:2;2836:36:1;;2824:2;2809:18;4139:93:0;2694:184:1;5563:293:0;;;;;;;;;;-1:-1:-1;5563:293:0;;;;;:::i;:::-;;:::i;9599:26::-;;;;;;;;;;;;;;;;11764:147;;;;;;;;;;-1:-1:-1;11764:147:0;;;;;:::i;:::-;;:::i;9716:28::-;;;;;;;;;;-1:-1:-1;9716:28:0;;;;-1:-1:-1;;;;;9716:28:0;;;9827:34;;;;;;;;;;-1:-1:-1;9827:34:0;;;;-1:-1:-1;;;9827:34:0;;;;;;12080:124;;;;;;;;;;-1:-1:-1;12080:124:0;;;;;:::i;:::-;-1:-1:-1;;;;;12169:27:0;12145:4;12169:27;;;:18;:27;;;;;;;;;12080:124;9868:38;;;;;;;;;;;;;;;;12358:139;;;;;;;;;;-1:-1:-1;12358:139:0;;;;;:::i;:::-;-1:-1:-1;;;;;12454:35:0;12430:4;12454:35;;;:26;:35;;;;;;;;;12358:139;12216:134;;;;;;;;;;-1:-1:-1;12216:134:0;;;;;:::i;:::-;-1:-1:-1;;;;;12309:33:0;12286:4;12309:33;;;:24;:33;;;;;;;;;12216:134;4356:143;;;;;;;;;;-1:-1:-1;4356:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;4473:18:0;4446:7;4473:18;;;:9;:18;;;;;;;4356:143;2800:148;;;;;;;;;;;;;:::i;9479:30::-;;;;;;;;;;-1:-1:-1;9479:30:0;;;;-1:-1:-1;;;;;9479:30:0;;;13159:141;;;;;;;;;;-1:-1:-1;13159:141:0;;;;;:::i;:::-;;:::i;12505:84::-;;;;;;;;;;;;;:::i;2577:87::-;;;;;;;;;;-1:-1:-1;2623:7:0;2650:6;-1:-1:-1;;;;;2650:6:0;2577:87;;4027:104;;;;;;;;;;;;;:::i;11919:151::-;;;;;;;;;;-1:-1:-1;11919:151:0;;;;;:::i;:::-;;:::i;12872:143::-;;;;;;;;;;-1:-1:-1;12872:143:0;;;;;:::i;:::-;;:::i;12597:155::-;;;;;;;;;;-1:-1:-1;12597:155:0;;;;;:::i;:::-;;:::i;5864:393::-;;;;;;;;;;-1:-1:-1;5864:393:0;;;;;:::i;:::-;;:::i;4507:200::-;;;;;;;;;;-1:-1:-1;4507:200:0;;;;;:::i;:::-;;:::i;9913:31::-;;;;;;;;;;;;;;;;11597:159;;;;;;;;;;-1:-1:-1;11597:159:0;;;;;:::i;:::-;;:::i;4715:176::-;;;;;;;;;;-1:-1:-1;4715:176:0;;;;;:::i;:::-;-1:-1:-1;;;;;4856:18:0;;;4829:7;4856:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;4715:176;13023:128;;;;;;;;;;-1:-1:-1;13023:128:0;;;;;:::i;:::-;;:::i;2956:281::-;;;;;;;;;;-1:-1:-1;2956:281:0;;;;;:::i;:::-;;:::i;13308:176::-;2623:7;2650:6;-1:-1:-1;;;;;2650:6:0;2080:10;2712:23;2704:68;;;;-1:-1:-1;;;2704:68:0;;;;;;;:::i;:::-;;;;;;;;;13388:22:::1;:33:::0;;;::::1;;-1:-1:-1::0;;;13388:33:0::1;-1:-1:-1::0;;;;13388:33:0;;::::1;;::::0;;13437:39:::1;::::0;::::1;::::0;::::1;::::0;13413:8;1538:14:1;1531:22;1513:41;;1501:2;1486:18;;1373:187;13437:39:0::1;;;;;;;;13308:176:::0;:::o;3919:100::-;3973:13;4006:5;3999:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3919:100;:::o;4899:194::-;5007:4;5024:39;2080:10;5047:7;5056:6;5024:8;:39::i;:::-;-1:-1:-1;5081:4:0;4899:194;;;;;:::o;12760:104::-;2623:7;2650:6;-1:-1:-1;;;;;2650:6:0;2080:10;2712:23;2704:68;;;;-1:-1:-1;;;2704:68:0;;;;;;;:::i;:::-;12833:15:::1;:23:::0;;-1:-1:-1;;;;;;12833:23:0::1;-1:-1:-1::0;;;;;12833:23:0;;;::::1;::::0;;;::::1;::::0;;12760:104::o;5101:454::-;5241:4;5258:36;5268:6;5276:9;5287:6;5258:9;:36::i;:::-;5305:220;5328:6;2080:10;5376:138;5432:6;5376:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5376:19:0;;;;;;:11;:19;;;;;;;;2080:10;5376:33;;;;;;;;;;:37;:138::i;:::-;5305:8;:220::i;:::-;-1:-1:-1;5543:4:0;5101:454;;;;;:::o;5563:293::-;2080:10;5676:4;5765:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;5765:34:0;;;;;;;;;;5676:4;;5693:133;;5743:7;;5765:50;;5804:10;5765:38;:50::i;11764:147::-;2623:7;2650:6;-1:-1:-1;;;;;2650:6:0;2080:10;2712:23;2704:68;;;;-1:-1:-1;;;2704:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11862:33:0;;;::::1;;::::0;;;:24:::1;:33;::::0;;;;:41;;-1:-1:-1;;11862:41:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11764:147::o;2800:148::-;2623:7;2650:6;-1:-1:-1;;;;;2650:6:0;2080:10;2712:23;2704:68;;;;-1:-1:-1;;;2704:68:0;;;;;;;:::i;:::-;2907:1:::1;2891:6:::0;;2870:40:::1;::::0;-1:-1:-1;;;;;2891:6:0;;::::1;::::0;2870:40:::1;::::0;2907:1;;2870:40:::1;2938:1;2921:19:::0;;-1:-1:-1;;;;;;2921:19:0::1;::::0;;2800:148::o;13159:141::-;2623:7;2650:6;-1:-1:-1;;;;;2650:6:0;2080:10;2712:23;2704:68;;;;-1:-1:-1;;;2704:68:0;;;;;;;:::i;:::-;13276:16:::1;4222:2:::0;13276::::1;:16;:::i;:::-;13267:25;::::0;:6;:25:::1;:::i;:::-;13241:23;:51:::0;-1:-1:-1;13159:141:0:o;12505:84::-;2623:7;2650:6;-1:-1:-1;;;;;2650:6:0;2080:10;2712:23;2704:68;;;;-1:-1:-1;;;2704:68:0;;;;;;;:::i;:::-;12560:14:::1;:21:::0;;-1:-1:-1;;;;12560:21:0::1;-1:-1:-1::0;;;12560:21:0::1;::::0;;12505:84::o;4027:104::-;4083:13;4116:7;4109:14;;;;;:::i;11919:151::-;2623:7;2650:6;-1:-1:-1;;;;;2650:6:0;2080:10;2712:23;2704:68;;;;-1:-1:-1;;;2704:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12019:35:0;;;::::1;;::::0;;;:26:::1;:35;::::0;;;;:43;;-1:-1:-1;;12019:43:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11919:151::o;12872:143::-;2623:7;2650:6;-1:-1:-1;;;;;2650:6:0;2080:10;2712:23;2704:68;;;;-1:-1:-1;;;2704:68:0;;;;;;;:::i;:::-;12991:16:::1;4222:2:::0;12991::::1;:16;:::i;:::-;12971:36;::::0;:17;:36:::1;:::i;:::-;12952:16;:55:::0;-1:-1:-1;12872:143:0:o;12597:155::-;2623:7;2650:6;-1:-1:-1;;;;;2650:6:0;2080:10;2712:23;2704:68;;;;-1:-1:-1;;;2704:68:0;;;;;;;:::i;:::-;12706:6:::1;:13:::0;;;;12730:7:::1;:14:::0;12597:155::o;5864:393::-;5982:4;5999:228;2080:10;6049:7;6071:145;6128:15;6071:145;;;;;;;;;;;;;;;;;2080:10;6071:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;6071:34:0;;;;;;;;;;;;:38;:145::i;4507:200::-;4618:4;4635:42;2080:10;4659:9;4670:6;4635:9;:42::i;11597:159::-;2623:7;2650:6;-1:-1:-1;;;;;2650:6:0;2080:10;2712:23;2704:68;;;;-1:-1:-1;;;2704:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11713:27:0;;;::::1;;::::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;11713:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11597:159::o;13023:128::-;2623:7;2650:6;-1:-1:-1;;;;;2650:6:0;2080:10;2712:23;2704:68;;;;-1:-1:-1;;;2704:68:0;;;;;;;:::i;:::-;13127:16:::1;4222:2:::0;13127::::1;:16;:::i;:::-;13113:30;::::0;:11;:30:::1;:::i;:::-;13098:12;:45:::0;-1:-1:-1;13023:128:0:o;2956:281::-;2623:7;2650:6;-1:-1:-1;;;;;2650:6:0;2080:10;2712:23;2704:68;;;;-1:-1:-1;;;2704:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3059:22:0;::::1;3037:110;;;::::0;-1:-1:-1;;;3037:110:0;;6878:2:1;3037:110:0::1;::::0;::::1;6860:21:1::0;6917:2;6897:18;;;6890:30;6956:34;6936:18;;;6929:62;-1:-1:-1;;;7007:18:1;;;7000:36;7053:19;;3037:110:0::1;6676:402:1::0;3037:110:0::1;3184:6;::::0;;3163:38:::1;::::0;-1:-1:-1;;;;;3163:38:0;;::::1;::::0;3184:6;::::1;::::0;3163:38:::1;::::0;::::1;3212:6;:17:::0;;-1:-1:-1;;;;;;3212:17:0::1;-1:-1:-1::0;;;;;3212:17:0;;;::::1;::::0;;;::::1;::::0;;2956:281::o;7732:380::-;-1:-1:-1;;;;;7868:19:0;;7860:68;;;;-1:-1:-1;;;7860:68:0;;7285:2:1;7860:68:0;;;7267:21:1;7324:2;7304:18;;;7297:30;7363:34;7343:18;;;7336:62;-1:-1:-1;;;7414:18:1;;;7407:34;7458:19;;7860:68:0;7083:400:1;7860:68:0;-1:-1:-1;;;;;7947:21:0;;7939:68;;;;-1:-1:-1;;;7939:68:0;;7690:2:1;7939:68:0;;;7672:21:1;7729:2;7709:18;;;7702:30;7768:34;7748:18;;;7741:62;-1:-1:-1;;;7819:18:1;;;7812:32;7861:19;;7939:68:0;7488:398:1;7939:68:0;-1:-1:-1;;;;;8020:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8072:32;;1711:25:1;;;8072:32:0;;1684:18:1;8072:32:0;;;;;;;;7732:380;;;:::o;13529:2608::-;-1:-1:-1;;;;;13661:18:0;;13653:68;;;;-1:-1:-1;;;13653:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13740:16:0;;13732:64;;;;-1:-1:-1;;;13732:64:0;;;;;;;:::i;:::-;13824:1;13815:6;:10;13807:64;;;;-1:-1:-1;;;13807:64:0;;8903:2:1;13807:64:0;;;8885:21:1;8942:2;8922:18;;;8915:30;8981:34;8961:18;;;8954:62;-1:-1:-1;;;9032:18:1;;;9025:39;9081:19;;13807:64:0;8701:405:1;13807:64:0;2623:7;2650:6;-1:-1:-1;;;;;13888:15:0;;;2650:6;;13888:15;;;;:34;;-1:-1:-1;13908:14:0;;-1:-1:-1;;;13908:14:0;;;;13907:15;13888:34;13884:120;;;13947:14;;-1:-1:-1;;;13947:14:0;;;;13939:53;;;;-1:-1:-1;;;13939:53:0;;9313:2:1;13939:53:0;;;9295:21:1;9352:2;9332:18;;;9325:30;9391:28;9371:18;;;9364:56;9437:18;;13939:53:0;9111:350:1;13939:53:0;2623:7;2650:6;-1:-1:-1;;;;;14020:15:0;;;2650:6;;14020:15;;;;:32;;-1:-1:-1;2623:7:0;2650:6;-1:-1:-1;;;;;14039:13:0;;;2650:6;;14039:13;;14020:32;14016:295;;;-1:-1:-1;;;;;14093:32:0;;;;;;:26;:32;;;;;;;;;:87;;-1:-1:-1;;;;;;14150:30:0;;;;;;:26;:30;;;;;;;;14093:87;:134;;;;14215:12;;14205:6;:22;;14093:134;14067:244;;;;-1:-1:-1;;;14067:244:0;;9668:2:1;14067:244:0;;;9650:21:1;9707:2;9687:18;;;9680:30;9746:34;9726:18;;;9719:62;-1:-1:-1;;;9797:18:1;;;9790:46;9853:19;;14067:244:0;9466:412:1;14067:244:0;2623:7;2650:6;-1:-1:-1;;;;;14342:15:0;;;2650:6;;14342:15;;;;:51;;-1:-1:-1;;;;;;14374:19:0;;14388:4;14374:19;;14342:51;:86;;;;-1:-1:-1;;;;;;14410:18:0;;9548:42;14410:18;;14342:86;:122;;;;-1:-1:-1;14451:13:0;;-1:-1:-1;;;;;14445:19:0;;;14451:13;;14445:19;;14342:122;14324:425;;;-1:-1:-1;;;;;4473:18:0;;14491:22;4473:18;;;:9;:18;;;;;;;;;14570:24;:28;;;;;;;;;;:98;;-1:-1:-1;14651:16:0;;14624:23;14641:6;14624:14;:23;:::i;:::-;:43;;14570:98;14544:193;;;;-1:-1:-1;;;14544:193:0;;10215:2:1;14544:193:0;;;10197:21:1;10254:2;10234:18;;;10227:30;10293:34;10273:18;;;10266:62;-1:-1:-1;;;10344:18:1;;;10337:31;10385:19;;14544:193:0;10013:397:1;14544:193:0;14476:273;14324:425;14810:4;14761:28;4473:18;;;:9;:18;;;;;;14891:23;;14854:60;;;;;;;14943:53;;-1:-1:-1;14980:16:0;;-1:-1:-1;;;14980:16:0;;;;14979:17;14943:53;:91;;;;-1:-1:-1;15021:13:0;;-1:-1:-1;;;;;15013:21:0;;;15021:13;;15013:21;;14943:91;:130;;;;-1:-1:-1;15051:22:0;;-1:-1:-1;;;15051:22:0;;;;14943:130;14925:278;;;15123:23;;15100:46;;15161:30;15170:20;15161:8;:30::i;:::-;-1:-1:-1;;;;;15249:24:0;;15215:12;15249:24;;;:18;:24;;;;;;15230:4;;15249:24;;;:50;;-1:-1:-1;;;;;;15277:22:0;;;;;;:18;:22;;;;;;;;15249:50;15245:885;;;15316:33;15332:4;15338:2;15342:6;15316:15;:33::i;:::-;-1:-1:-1;15374:5:0;15245:885;;;15424:13;;-1:-1:-1;;;;;15424:13:0;;;15416:21;;;;15412:707;;15458:23;15484:27;15507:3;15484:18;15495:6;;15484;:10;;:18;;;;:::i;:::-;:22;;:27::i;:::-;15458:53;-1:-1:-1;15539:27:0;:6;15458:53;15539:10;:27::i;:::-;15530:36;;15585:53;15601:4;15615;15622:15;15585;:53::i;:::-;15657:33;15673:4;15679:2;15683:6;15657:15;:33::i;:::-;15439:267;15412:707;;;15722:13;;-1:-1:-1;;;;;15722:13:0;;;15716:19;;;;15712:407;;15756:23;15782:68;15828:3;15782:19;15793:7;;15782:6;:10;;:19;;;;:::i;15712:407::-;16070:33;16086:4;16092:2;16096:6;16070:15;:33::i;:::-;13642:2495;;;13529:2608;;;:::o;1473:240::-;1593:7;1654:12;1646:6;;;;1638:29;;;;-1:-1:-1;;;1638:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;1689:5:0;;;1473:240::o;1049:98::-;1107:7;1134:5;1138:1;1134;:5;:::i;:::-;1127:12;1049:98;-1:-1:-1;;;1049:98:0:o;16145:646::-;10280:16;:23;;-1:-1:-1;;;;10280:23:0;-1:-1:-1;;;10280:23:0;;;16265:7:::1;::::0;10280:23;;16245:61:::1;::::0;16292:3:::1;::::0;16245:28:::1;::::0;:15;;:19:::1;:28::i;:61::-;16219:87:::0;-1:-1:-1;16219:87:0;16375:20;;;:46:::1;;-1:-1:-1::0;16399:22:0;;16375:46:::1;16371:85;;;16438:7;;;;16371:85;16466:12;16489:33;16506:15;16489:16;:33::i;:::-;16554:21;16533:18;16659:17:::0;16613:28:::1;16626:15:::0;16554:21;16613:28:::1;:::i;:::-;16612:65;;;;:::i;:::-;16710:15;::::0;16702:81:::1;::::0;16586:91;;-1:-1:-1;;;;;;16710:15:0::1;::::0;16586:91;;16702:81:::1;::::0;;;16586:91;16710:15;16702:81:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;;;;10314:1:0::1;-1:-1:-1::0;10326:16:0;:24;;-1:-1:-1;;;;10326:24:0;;;16145:646::o;6265:610::-;-1:-1:-1;;;;;6405:20:0;;6397:70;;;;-1:-1:-1;;;6397:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6486:23:0;;6478:71;;;;-1:-1:-1;;;6478:71:0;;;;;;;:::i;:::-;6642:108;6678:6;6642:108;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6642:17:0;;;;;;:9;:17;;;;;;;:108;:21;:108::i;:::-;-1:-1:-1;;;;;6622:17:0;;;;;;;:9;:17;;;;;;:128;;;;6784:20;;;;;;;:32;;6809:6;6784:24;:32::i;:::-;-1:-1:-1;;;;;6761:20:0;;;;;;;:9;:20;;;;;;;:55;;;;6832:35;;;;;;;;;;6860:6;1711:25:1;;1699:2;1684:18;;1565:177;1261:98:0;1319:7;1346:5;1350:1;1346;:5;:::i;1367:98::-;1425:7;1452:5;1456:1;1452;:5;:::i;1155:98::-;1213:7;1240:5;1244:1;1240;:5;:::i;16799:499::-;16889:16;;;16903:1;16889:16;;;;;;;;16865:21;;16889:16;;;;;;;;;;-1:-1:-1;16889:16:0;16865:40;;16934:4;16916;16921:1;16916:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16916:23:0;;;:7;;;;;;;;;;:23;;;;16960:15;;:22;;;-1:-1:-1;;;16960:22:0;;;;:15;;;;;:20;;:22;;;;;16916:7;;16960:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16950:4;16955:1;16950:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16950:32:0;;;:7;;;;;;;;;:32;17025:15;;16993:62;;17010:4;;17025:15;17043:11;16993:8;:62::i;:::-;17066:15;;:224;;-1:-1:-1;;;17066:224:0;;-1:-1:-1;;;;;17066:15:0;;;;:66;;:224;;17147:11;;17066:15;;17217:4;;17244;;17264:15;;17066:224;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:160:1;79:20;;135:13;;128:21;118:32;;108:60;;164:1;161;154:12;108:60;14:160;;;:::o;179:180::-;235:6;288:2;276:9;267:7;263:23;259:32;256:52;;;304:1;301;294:12;256:52;327:26;343:9;327:26;:::i;364:548::-;476:4;505:2;534;523:9;516:21;566:6;560:13;609:6;604:2;593:9;589:18;582:34;634:1;644:140;658:6;655:1;652:13;644:140;;;753:14;;;749:23;;743:30;719:17;;;738:2;715:26;708:66;673:10;;644:140;;;648:3;833:1;828:2;819:6;808:9;804:22;800:31;793:42;903:2;896;892:7;887:2;879:6;875:15;871:29;860:9;856:45;852:54;844:62;;;;364:548;;;;:::o;917:131::-;-1:-1:-1;;;;;992:31:1;;982:42;;972:70;;1038:1;1035;1028:12;972:70;917:131;:::o;1053:315::-;1121:6;1129;1182:2;1170:9;1161:7;1157:23;1153:32;1150:52;;;1198:1;1195;1188:12;1150:52;1237:9;1224:23;1256:31;1281:5;1256:31;:::i;:::-;1306:5;1358:2;1343:18;;;;1330:32;;-1:-1:-1;;;1053:315:1:o;1981:247::-;2040:6;2093:2;2081:9;2072:7;2068:23;2064:32;2061:52;;;2109:1;2106;2099:12;2061:52;2148:9;2135:23;2167:31;2192:5;2167:31;:::i;2233:456::-;2310:6;2318;2326;2379:2;2367:9;2358:7;2354:23;2350:32;2347:52;;;2395:1;2392;2385:12;2347:52;2434:9;2421:23;2453:31;2478:5;2453:31;:::i;:::-;2503:5;-1:-1:-1;2560:2:1;2545:18;;2532:32;2573:33;2532:32;2573:33;:::i;:::-;2233:456;;2625:7;;-1:-1:-1;;;2679:2:1;2664:18;;;;2651:32;;2233:456::o;2883:315::-;2948:6;2956;3009:2;2997:9;2988:7;2984:23;2980:32;2977:52;;;3025:1;3022;3015:12;2977:52;3064:9;3051:23;3083:31;3108:5;3083:31;:::i;:::-;3133:5;-1:-1:-1;3157:35:1;3188:2;3173:18;;3157:35;:::i;:::-;3147:45;;2883:315;;;;;:::o;3411:180::-;3470:6;3523:2;3511:9;3502:7;3498:23;3494:32;3491:52;;;3539:1;3536;3529:12;3491:52;-1:-1:-1;3562:23:1;;3411:180;-1:-1:-1;3411:180:1:o;3596:248::-;3664:6;3672;3725:2;3713:9;3704:7;3700:23;3696:32;3693:52;;;3741:1;3738;3731:12;3693:52;-1:-1:-1;;3764:23:1;;;3834:2;3819:18;;;3806:32;;-1:-1:-1;3596:248:1:o;3849:388::-;3917:6;3925;3978:2;3966:9;3957:7;3953:23;3949:32;3946:52;;;3994:1;3991;3984:12;3946:52;4033:9;4020:23;4052:31;4077:5;4052:31;:::i;:::-;4102:5;-1:-1:-1;4159:2:1;4144:18;;4131:32;4172:33;4131:32;4172:33;:::i;:::-;4224:7;4214:17;;;3849:388;;;;;:::o;4242:356::-;4444:2;4426:21;;;4463:18;;;4456:30;4522:34;4517:2;4502:18;;4495:62;4589:2;4574:18;;4242:356::o;4603:380::-;4682:1;4678:12;;;;4725;;;4746:61;;4800:4;4792:6;4788:17;4778:27;;4746:61;4853:2;4845:6;4842:14;4822:18;4819:38;4816:161;;4899:10;4894:3;4890:20;4887:1;4880:31;4934:4;4931:1;4924:15;4962:4;4959:1;4952:15;4816:161;;4603:380;;;:::o;4988:127::-;5049:10;5044:3;5040:20;5037:1;5030:31;5080:4;5077:1;5070:15;5104:4;5101:1;5094:15;5120:422;5209:1;5252:5;5209:1;5266:270;5287:7;5277:8;5274:21;5266:270;;;5346:4;5342:1;5338:6;5334:17;5328:4;5325:27;5322:53;;;5355:18;;:::i;:::-;5405:7;5395:8;5391:22;5388:55;;;5425:16;;;;5388:55;5504:22;;;;5464:15;;;;5266:270;;;5270:3;5120:422;;;;;:::o;5547:806::-;5596:5;5626:8;5616:80;;-1:-1:-1;5667:1:1;5681:5;;5616:80;5715:4;5705:76;;-1:-1:-1;5752:1:1;5766:5;;5705:76;5797:4;5815:1;5810:59;;;;5883:1;5878:130;;;;5790:218;;5810:59;5840:1;5831:10;;5854:5;;;5878:130;5915:3;5905:8;5902:17;5899:43;;;5922:18;;:::i;:::-;-1:-1:-1;;5978:1:1;5964:16;;5993:5;;5790:218;;6092:2;6082:8;6079:16;6073:3;6067:4;6064:13;6060:36;6054:2;6044:8;6041:16;6036:2;6030:4;6027:12;6023:35;6020:77;6017:159;;;-1:-1:-1;6129:19:1;;;6161:5;;6017:159;6208:34;6233:8;6227:4;6208:34;:::i;:::-;6278:6;6274:1;6270:6;6266:19;6257:7;6254:32;6251:58;;;6289:18;;:::i;:::-;6327:20;;5547:806;-1:-1:-1;;;5547:806:1:o;6358:140::-;6416:5;6445:47;6486:4;6476:8;6472:19;6466:4;6445:47;:::i;6503:168::-;6576:9;;;6607;;6624:15;;;6618:22;;6604:37;6594:71;;6645:18;;:::i;7891:401::-;8093:2;8075:21;;;8132:2;8112:18;;;8105:30;8171:34;8166:2;8151:18;;8144:62;-1:-1:-1;;;8237:2:1;8222:18;;8215:35;8282:3;8267:19;;7891:401::o;8297:399::-;8499:2;8481:21;;;8538:2;8518:18;;;8511:30;8577:34;8572:2;8557:18;;8550:62;-1:-1:-1;;;8643:2:1;8628:18;;8621:33;8686:3;8671:19;;8297:399::o;9883:125::-;9948:9;;;9969:10;;;9966:36;;;9982:18;;:::i;10415:217::-;10455:1;10481;10471:132;;10525:10;10520:3;10516:20;10513:1;10506:31;10560:4;10557:1;10550:15;10588:4;10585:1;10578:15;10471:132;-1:-1:-1;10617:9:1;;10415:217::o;10847:128::-;10914:9;;;10935:11;;;10932:37;;;10949:18;;:::i;11112:127::-;11173:10;11168:3;11164:20;11161:1;11154:31;11204:4;11201:1;11194:15;11228:4;11225:1;11218:15;11244:251;11314:6;11367:2;11355:9;11346:7;11342:23;11338:32;11335:52;;;11383:1;11380;11373:12;11335:52;11415:9;11409:16;11434:31;11459:5;11434:31;:::i;11500:980::-;11762:4;11810:3;11799:9;11795:19;11841:6;11830:9;11823:25;11867:2;11905:6;11900:2;11889:9;11885:18;11878:34;11948:3;11943:2;11932:9;11928:18;11921:31;11972:6;12007;12001:13;12038:6;12030;12023:22;12076:3;12065:9;12061:19;12054:26;;12115:2;12107:6;12103:15;12089:29;;12136:1;12146:195;12160:6;12157:1;12154:13;12146:195;;;12225:13;;-1:-1:-1;;;;;12221:39:1;12209:52;;12316:15;;;;12281:12;;;;12257:1;12175:9;12146:195;;;-1:-1:-1;;;;;;;12397:32:1;;;;12392:2;12377:18;;12370:60;-1:-1:-1;;;12461:3:1;12446:19;12439:35;12358:3;11500:980;-1:-1:-1;;;11500:980:1:o

Swarm Source

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