ETH Price: $2,267.98 (+1.95%)

Token

Keke Jing (KEKE)
 

Overview

Max Total Supply

1,000,000,000 KEKE

Holders

69

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
11,424,744.734089348 KEKE

Value
$0.00
0x1544c9a369499deefd43c8da963e69f7dfc11735
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:
KEKE

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-05-31
*/

/*
Website: https://www.kekejing.vip
Telegram: https://t.me/kekejingcoin
Twitter: https://x.com/kekejingcoin
*/

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

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    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);
}

contract KEKE is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    mapping(address => bool) private bots;
    address payable private _taxWallet;
    uint256 firstBlock;

    uint256 private _initialBuyTax = 25;
    uint256 private _initialSellTax = 25;
    uint256 private _finalBuyTax = 0;
    uint256 private _finalSellTax = 0;
    uint256 private _reduceBuyTaxAt = 10;
    uint256 private _reduceSellTaxAt = 10;
    uint256 private _preventSwapBefore = 10;
    uint256 private _buyCount = 0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000 * 10 ** _decimals;
    string private constant _name = unicode"Keke Jing";
    string private constant _symbol = unicode"KEKE";
    uint256 public _rTotal = 800000000 * 10 ** _decimals;
    uint256 public _maxTxAmount = 20000000 * 10 ** _decimals;
    uint256 public _maxWalletSize = 20000000 * 10 ** _decimals;
    uint256 public _taxSwapThreshold = 100 * 10 ** _decimals;
    uint256 public _maxTaxSwap = 10000000 * 10 ** _decimals;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;

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

    constructor() {
        _taxWallet = payable(0x4c9E05744770F4601E06e2C28E05454738b06169);
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;
        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;
    }

    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 _basicTransfer(address from, address to, uint256 amount) internal {
        unchecked {
            _balances[from] = _balances[from] - amount;
            _balances[to] = _balances[to] + amount;
        }
        emit Transfer(from, to, amount);
    }

    function _taxTransfer(address from, address to, uint256 amount) internal {
        uint256 taxAmount = 0;
        taxAmount = amount
            .mul((_buyCount > _reduceBuyTaxAt) ? _finalBuyTax : _initialBuyTax)
            .div(100);
        if (to == uniswapV2Pair && from != address(this)) {
            taxAmount = amount
                .mul(
                    (_buyCount > _reduceSellTaxAt)
                        ? _finalSellTax
                        : _initialSellTax
                )
                .div(100);
        }
        if (taxAmount > 0) {
            _balances[address(this)] = _balances[address(this)].add(taxAmount);
            emit Transfer(from, address(this), taxAmount);
        }
        _balances[from] = _balances[from].sub(amount);
        _balances[to] = _balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        if (!swapEnabled || inSwap) {
            _balances[from] = _balances[from].sub(amount);
            _balances[to] = _balances[to].add(amount);
            emit Transfer(from, to, amount);
            return;
        }

        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);

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

                if (firstBlock + 3 > block.number) {
                    require(!isContract(to));
                }
                _buyCount++;
            }

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

            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance > _taxSwapThreshold;
            if (
                !inSwap &&
                to == uniswapV2Pair &&
                swapEnabled &&
                _buyCount > _preventSwapBefore &&
                !_isExcludedFromFee[from] &&
                !_isExcludedFromFee[to]
            ) {
                if(canSwap){
                    swapTokensForEth(
                        min(amount, min(contractTokenBalance, _maxTaxSwap))
                    );
                }
                
                uint256 contractETHBalance = address(this).balance;
                _taxWallet.transfer(contractETHBalance);
            }
        }

        if (_isExcludedFromFee[from]) {
            _basicTransfer(from, to, amount);
        } else {
            _taxTransfer(from, to, amount);
        }
    }

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

    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 removeLimits() external onlyOwner {
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }

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

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

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

    function initPair() external onlyOwner {
        require(!tradingOpen, "trading is already open");

        uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );

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

        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(
            address(this),
            uniswapV2Router.WETH()
        );
    }

    function openTrading() external onlyOwner {
        require(!tradingOpen, "trading is already open");

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

        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);

        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":[],"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":"_rTotal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"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"},{"stateMutability":"payable","type":"receive"}]

60806040526019600755601960085560006009556000600a55600a600b55600a600c55600a600d556000600e556009600a6200003c919062000370565b6200004c90632faf080062000388565b600f556200005d6009600a62000370565b6200006d906301312d0062000388565b6010556200007e6009600a62000370565b6200008e906301312d0062000388565b6011556200009f6009600a62000370565b620000ac90606462000388565b601255620000bd6009600a62000370565b620000cc906298968062000388565b6013556015805461ffff60a81b19169055348015620000ea57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600580546001600160a01b031916734c9e05744770f4601e06e2c28e05454738b06169179055620001606009600a62000370565b6200017090633b9aca0062000388565b3360009081526001602081905260408220929092556003906200019b6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526003909352818320805485166001908117909155600554909116835291208054909216179055620001fa3390565b6001600160a01b031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002346009600a62000370565b6200024490633b9aca0062000388565b60405190815260200160405180910390a3620003a2565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620002b25781600019048211156200029657620002966200025b565b80851615620002a457918102915b93841c939080029062000276565b509250929050565b600082620002cb575060016200036a565b81620002da575060006200036a565b8160018114620002f35760028114620002fe576200031e565b60019150506200036a565b60ff8411156200031257620003126200025b565b50506001821b6200036a565b5060208310610133831016604e8410600b841016171562000343575081810a6200036a565b6200034f838362000271565b80600019048211156200036657620003666200025b565b0290505b92915050565b60006200038160ff841683620002ba565b9392505050565b80820281158282048414176200036a576200036a6200025b565b611ceb80620003b26000396000f3fe6080604052600436106101395760003560e01c8063751039fc116100ab578063a9059cbb1161006f578063a9059cbb14610380578063bf474bed146103a0578063c9567bf9146103b6578063d34628cc146103cb578063dd62ed3e146103eb578063feb1dfcc1461043157600080fd5b8063751039fc146102ea5780637d1db4a5146102ff5780638da5cb5b146103155780638f9a55c01461033d57806395d89b411461035357600080fd5b8063313ce567116100fd578063313ce5671461021257806331c2d8471461022e5780633bbac5791461025057806345e0b9d41461028957806370a082311461029f578063715018a6146102d557600080fd5b806306fdde0314610145578063095ea7b3146101895780630faee56f146101b957806318160ddd146101dd57806323b872dd146101f257600080fd5b3661014057005b600080fd5b34801561015157600080fd5b506040805180820190915260098152684b656b65204a696e6760b81b60208201525b60405161018091906117af565b60405180910390f35b34801561019557600080fd5b506101a96101a4366004611825565b610446565b6040519015158152602001610180565b3480156101c557600080fd5b506101cf60135481565b604051908152602001610180565b3480156101e957600080fd5b506101cf61045d565b3480156101fe57600080fd5b506101a961020d366004611851565b61047e565b34801561021e57600080fd5b5060405160098152602001610180565b34801561023a57600080fd5b5061024e6102493660046118a8565b6104e7565b005b34801561025c57600080fd5b506101a961026b36600461196d565b6001600160a01b031660009081526004602052604090205460ff1690565b34801561029557600080fd5b506101cf600f5481565b3480156102ab57600080fd5b506101cf6102ba36600461196d565b6001600160a01b031660009081526001602052604090205490565b3480156102e157600080fd5b5061024e610586565b3480156102f657600080fd5b5061024e6105fa565b34801561030b57600080fd5b506101cf60105481565b34801561032157600080fd5b506000546040516001600160a01b039091168152602001610180565b34801561034957600080fd5b506101cf60115481565b34801561035f57600080fd5b506040805180820190915260048152634b454b4560e01b6020820152610173565b34801561038c57600080fd5b506101a961039b366004611825565b6106ac565b3480156103ac57600080fd5b506101cf60125481565b3480156103c257600080fd5b5061024e6106b9565b3480156103d757600080fd5b5061024e6103e63660046118a8565b610890565b3480156103f757600080fd5b506101cf61040636600461198a565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561043d57600080fd5b5061024e610922565b6000610453338484610b79565b5060015b92915050565b600061046b6009600a611abd565b61047990633b9aca00611acc565b905090565b600061048b848484610c9e565b6104dd84336104d885604051806060016040528060288152602001611c6e602891396001600160a01b038a166000908152600260209081526040808320338452909152902054919061125e565b610b79565b5060019392505050565b6000546001600160a01b0316331461051a5760405162461bcd60e51b815260040161051190611ae3565b60405180910390fd5b60005b81518110156105825760006004600084848151811061053e5761053e611b18565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061057a81611b2e565b91505061051d565b5050565b6000546001600160a01b031633146105b05760405162461bcd60e51b815260040161051190611ae3565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146106245760405162461bcd60e51b815260040161051190611ae3565b6106306009600a611abd565b61063e90633b9aca00611acc565b60105561064d6009600a611abd565b61065b90633b9aca00611acc565b6011557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf61068b6009600a611abd565b61069990633b9aca00611acc565b60405190815260200160405180910390a1565b6000610453338484610c9e565b6000546001600160a01b031633146106e35760405162461bcd60e51b815260040161051190611ae3565b601554600160a01b900460ff16156107375760405162461bcd60e51b81526020600482015260176024820152763a3930b234b7339034b99030b63932b0b23c9037b832b760491b6044820152606401610511565b601454600f546001600160a01b039091169063f305d71990479030906000806107686000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156107d0573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906107f59190611b47565b505060155460145460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af115801561084e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108729190611b75565b506015805462ff00ff60a01b19166201000160a01b17905543600655565b6000546001600160a01b031633146108ba5760405162461bcd60e51b815260040161051190611ae3565b60005b8151811015610582576001600460008484815181106108de576108de611b18565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061091a81611b2e565b9150506108bd565b6000546001600160a01b0316331461094c5760405162461bcd60e51b815260040161051190611ae3565b601554600160a01b900460ff16156109a05760405162461bcd60e51b81526020600482015260176024820152763a3930b234b7339034b99030b63932b0b23c9037b832b760491b6044820152606401610511565b601480546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556109e99030906109db6009600a611abd565b6104d890633b9aca00611acc565b601460009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a609190611b97565b6001600160a01b031663c9c6539630601460009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ac2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ae69190611b97565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610b33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b579190611b97565b601580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610bdb5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610511565b6001600160a01b038216610c3c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610511565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610d025760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610511565b6001600160a01b038216610d645760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610511565b60008111610dc65760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610511565b601554600160b01b900460ff161580610de85750601554600160a81b900460ff165b15610e81576001600160a01b038316600090815260016020526040902054610e109082611298565b6001600160a01b038085166000908152600160205260408082209390935590841681522054610e3f90826112e1565b6001600160a01b038084166000818152600160205260409081902093909355915190851690600080516020611c9683398151915290610c919085815260200190565b6000546001600160a01b03848116911614801590610ead57506000546001600160a01b03838116911614155b15611222576001600160a01b03831660009081526004602052604090205460ff16158015610ef457506001600160a01b03821660009081526004602052604090205460ff16155b610efd57600080fd5b6015546001600160a01b038481169116148015610f2857506014546001600160a01b03838116911614155b8015610f4d57506001600160a01b03821660009081526003602052604090205460ff16155b1561105757601054811115610fa45760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610511565b60115481610fc7846001600160a01b031660009081526001602052604090205490565b610fd19190611bb4565b111561101f5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610511565b43600654600361102f9190611bb4565b111561104157813b1561104157600080fd5b600e805490600061105183611b2e565b91905055505b6015546001600160a01b0383811691161480159061108e57506001600160a01b03821660009081526003602052604090205460ff16155b1561110e57601154816110b6846001600160a01b031660009081526001602052604090205490565b6110c09190611bb4565b111561110e5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610511565b3060009081526001602052604090205460125460155490821190600160a81b900460ff1615801561114c57506015546001600160a01b038581169116145b80156111615750601554600160b01b900460ff165b80156111705750600d54600e54115b801561119557506001600160a01b03851660009081526003602052604090205460ff16155b80156111ba57506001600160a01b03841660009081526003602052604090205460ff16155b1561121f5780156111e2576111e26111dd846111d885601354611340565b611340565b611355565b60055460405147916001600160a01b03169082156108fc029083906000818181858888f1935050505015801561121c573d6000803e3d6000fd5b50505b50505b6001600160a01b03831660009081526003602052604090205460ff16156112535761124e8383836114cf565b505050565b61124e83838361151f565b600081848411156112825760405162461bcd60e51b815260040161051191906117af565b50600061128f8486611bc7565b95945050505050565b60006112da83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061125e565b9392505050565b6000806112ee8385611bb4565b9050838110156112da5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610511565b600081831161134f57826112da565b50919050565b6015805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061139d5761139d611b18565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156113f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061141a9190611b97565b8160018151811061142d5761142d611b18565b6001600160a01b0392831660209182029290920101526014546114539130911684610b79565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac9479061148c908590600090869030904290600401611bda565b600060405180830381600087803b1580156114a657600080fd5b505af11580156114ba573d6000803e3d6000fd5b50506015805460ff60a81b1916905550505050565b6001600160a01b0380841660008181526001602052604080822080548690039055928516808252908390208054850190559151600080516020611c9683398151915290610c919085815260200190565b600061154d6064611547600b54600e541161153c57600754611540565b6009545b85906116c2565b90611744565b6015549091506001600160a01b03848116911614801561157657506001600160a01b0384163014155b156115a3576115a06064611547600c54600e541161159657600854611540565b600a5485906116c2565b90505b801561160b57306000908152600160205260409020546115c390826112e1565b30600081815260016020526040908190209290925590516001600160a01b03861690600080516020611c96833981519152906116029085815260200190565b60405180910390a35b6001600160a01b03841660009081526001602052604090205461162e9083611298565b6001600160a01b0385166000908152600160205260409020556116736116548383611298565b6001600160a01b038516600090815260016020526040902054906112e1565b6001600160a01b038085166000818152600160205260409020929092558516600080516020611c968339815191526116ab8585611298565b60405190815260200160405180910390a350505050565b6000826000036116d457506000610457565b60006116e08385611acc565b9050826116ed8583611c4b565b146112da5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610511565b60006112da83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250600081836117a25760405162461bcd60e51b815260040161051191906117af565b50600061128f8486611c4b565b600060208083528351808285015260005b818110156117dc578581018301518582016040015282016117c0565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461181257600080fd5b50565b8035611820816117fd565b919050565b6000806040838503121561183857600080fd5b8235611843816117fd565b946020939093013593505050565b60008060006060848603121561186657600080fd5b8335611871816117fd565b92506020840135611881816117fd565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b600060208083850312156118bb57600080fd5b823567ffffffffffffffff808211156118d357600080fd5b818501915085601f8301126118e757600080fd5b8135818111156118f9576118f9611892565b8060051b604051601f19603f8301168101818110858211171561191e5761191e611892565b60405291825284820192508381018501918883111561193c57600080fd5b938501935b828510156119615761195285611815565b84529385019392850192611941565b98975050505050505050565b60006020828403121561197f57600080fd5b81356112da816117fd565b6000806040838503121561199d57600080fd5b82356119a8816117fd565b915060208301356119b8816117fd565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611a145781600019048211156119fa576119fa6119c3565b80851615611a0757918102915b93841c93908002906119de565b509250929050565b600082611a2b57506001610457565b81611a3857506000610457565b8160018114611a4e5760028114611a5857611a74565b6001915050610457565b60ff841115611a6957611a696119c3565b50506001821b610457565b5060208310610133831016604e8410600b8410161715611a97575081810a610457565b611aa183836119d9565b8060001904821115611ab557611ab56119c3565b029392505050565b60006112da60ff841683611a1c565b8082028115828204841417610457576104576119c3565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b600060018201611b4057611b406119c3565b5060010190565b600080600060608486031215611b5c57600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215611b8757600080fd5b815180151581146112da57600080fd5b600060208284031215611ba957600080fd5b81516112da816117fd565b80820180821115610457576104576119c3565b81810381811115610457576104576119c3565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611c2a5784516001600160a01b031683529383019391830191600101611c05565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611c6857634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220a929d458bc835a9f327d68433fe2425ebbc2a3eb12e3b16e0d5c8700805c459e64736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101395760003560e01c8063751039fc116100ab578063a9059cbb1161006f578063a9059cbb14610380578063bf474bed146103a0578063c9567bf9146103b6578063d34628cc146103cb578063dd62ed3e146103eb578063feb1dfcc1461043157600080fd5b8063751039fc146102ea5780637d1db4a5146102ff5780638da5cb5b146103155780638f9a55c01461033d57806395d89b411461035357600080fd5b8063313ce567116100fd578063313ce5671461021257806331c2d8471461022e5780633bbac5791461025057806345e0b9d41461028957806370a082311461029f578063715018a6146102d557600080fd5b806306fdde0314610145578063095ea7b3146101895780630faee56f146101b957806318160ddd146101dd57806323b872dd146101f257600080fd5b3661014057005b600080fd5b34801561015157600080fd5b506040805180820190915260098152684b656b65204a696e6760b81b60208201525b60405161018091906117af565b60405180910390f35b34801561019557600080fd5b506101a96101a4366004611825565b610446565b6040519015158152602001610180565b3480156101c557600080fd5b506101cf60135481565b604051908152602001610180565b3480156101e957600080fd5b506101cf61045d565b3480156101fe57600080fd5b506101a961020d366004611851565b61047e565b34801561021e57600080fd5b5060405160098152602001610180565b34801561023a57600080fd5b5061024e6102493660046118a8565b6104e7565b005b34801561025c57600080fd5b506101a961026b36600461196d565b6001600160a01b031660009081526004602052604090205460ff1690565b34801561029557600080fd5b506101cf600f5481565b3480156102ab57600080fd5b506101cf6102ba36600461196d565b6001600160a01b031660009081526001602052604090205490565b3480156102e157600080fd5b5061024e610586565b3480156102f657600080fd5b5061024e6105fa565b34801561030b57600080fd5b506101cf60105481565b34801561032157600080fd5b506000546040516001600160a01b039091168152602001610180565b34801561034957600080fd5b506101cf60115481565b34801561035f57600080fd5b506040805180820190915260048152634b454b4560e01b6020820152610173565b34801561038c57600080fd5b506101a961039b366004611825565b6106ac565b3480156103ac57600080fd5b506101cf60125481565b3480156103c257600080fd5b5061024e6106b9565b3480156103d757600080fd5b5061024e6103e63660046118a8565b610890565b3480156103f757600080fd5b506101cf61040636600461198a565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561043d57600080fd5b5061024e610922565b6000610453338484610b79565b5060015b92915050565b600061046b6009600a611abd565b61047990633b9aca00611acc565b905090565b600061048b848484610c9e565b6104dd84336104d885604051806060016040528060288152602001611c6e602891396001600160a01b038a166000908152600260209081526040808320338452909152902054919061125e565b610b79565b5060019392505050565b6000546001600160a01b0316331461051a5760405162461bcd60e51b815260040161051190611ae3565b60405180910390fd5b60005b81518110156105825760006004600084848151811061053e5761053e611b18565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061057a81611b2e565b91505061051d565b5050565b6000546001600160a01b031633146105b05760405162461bcd60e51b815260040161051190611ae3565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146106245760405162461bcd60e51b815260040161051190611ae3565b6106306009600a611abd565b61063e90633b9aca00611acc565b60105561064d6009600a611abd565b61065b90633b9aca00611acc565b6011557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf61068b6009600a611abd565b61069990633b9aca00611acc565b60405190815260200160405180910390a1565b6000610453338484610c9e565b6000546001600160a01b031633146106e35760405162461bcd60e51b815260040161051190611ae3565b601554600160a01b900460ff16156107375760405162461bcd60e51b81526020600482015260176024820152763a3930b234b7339034b99030b63932b0b23c9037b832b760491b6044820152606401610511565b601454600f546001600160a01b039091169063f305d71990479030906000806107686000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156107d0573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906107f59190611b47565b505060155460145460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af115801561084e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108729190611b75565b506015805462ff00ff60a01b19166201000160a01b17905543600655565b6000546001600160a01b031633146108ba5760405162461bcd60e51b815260040161051190611ae3565b60005b8151811015610582576001600460008484815181106108de576108de611b18565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061091a81611b2e565b9150506108bd565b6000546001600160a01b0316331461094c5760405162461bcd60e51b815260040161051190611ae3565b601554600160a01b900460ff16156109a05760405162461bcd60e51b81526020600482015260176024820152763a3930b234b7339034b99030b63932b0b23c9037b832b760491b6044820152606401610511565b601480546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556109e99030906109db6009600a611abd565b6104d890633b9aca00611acc565b601460009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a609190611b97565b6001600160a01b031663c9c6539630601460009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ac2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ae69190611b97565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610b33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b579190611b97565b601580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610bdb5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610511565b6001600160a01b038216610c3c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610511565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610d025760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610511565b6001600160a01b038216610d645760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610511565b60008111610dc65760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610511565b601554600160b01b900460ff161580610de85750601554600160a81b900460ff165b15610e81576001600160a01b038316600090815260016020526040902054610e109082611298565b6001600160a01b038085166000908152600160205260408082209390935590841681522054610e3f90826112e1565b6001600160a01b038084166000818152600160205260409081902093909355915190851690600080516020611c9683398151915290610c919085815260200190565b6000546001600160a01b03848116911614801590610ead57506000546001600160a01b03838116911614155b15611222576001600160a01b03831660009081526004602052604090205460ff16158015610ef457506001600160a01b03821660009081526004602052604090205460ff16155b610efd57600080fd5b6015546001600160a01b038481169116148015610f2857506014546001600160a01b03838116911614155b8015610f4d57506001600160a01b03821660009081526003602052604090205460ff16155b1561105757601054811115610fa45760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610511565b60115481610fc7846001600160a01b031660009081526001602052604090205490565b610fd19190611bb4565b111561101f5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610511565b43600654600361102f9190611bb4565b111561104157813b1561104157600080fd5b600e805490600061105183611b2e565b91905055505b6015546001600160a01b0383811691161480159061108e57506001600160a01b03821660009081526003602052604090205460ff16155b1561110e57601154816110b6846001600160a01b031660009081526001602052604090205490565b6110c09190611bb4565b111561110e5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610511565b3060009081526001602052604090205460125460155490821190600160a81b900460ff1615801561114c57506015546001600160a01b038581169116145b80156111615750601554600160b01b900460ff165b80156111705750600d54600e54115b801561119557506001600160a01b03851660009081526003602052604090205460ff16155b80156111ba57506001600160a01b03841660009081526003602052604090205460ff16155b1561121f5780156111e2576111e26111dd846111d885601354611340565b611340565b611355565b60055460405147916001600160a01b03169082156108fc029083906000818181858888f1935050505015801561121c573d6000803e3d6000fd5b50505b50505b6001600160a01b03831660009081526003602052604090205460ff16156112535761124e8383836114cf565b505050565b61124e83838361151f565b600081848411156112825760405162461bcd60e51b815260040161051191906117af565b50600061128f8486611bc7565b95945050505050565b60006112da83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061125e565b9392505050565b6000806112ee8385611bb4565b9050838110156112da5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610511565b600081831161134f57826112da565b50919050565b6015805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061139d5761139d611b18565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156113f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061141a9190611b97565b8160018151811061142d5761142d611b18565b6001600160a01b0392831660209182029290920101526014546114539130911684610b79565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac9479061148c908590600090869030904290600401611bda565b600060405180830381600087803b1580156114a657600080fd5b505af11580156114ba573d6000803e3d6000fd5b50506015805460ff60a81b1916905550505050565b6001600160a01b0380841660008181526001602052604080822080548690039055928516808252908390208054850190559151600080516020611c9683398151915290610c919085815260200190565b600061154d6064611547600b54600e541161153c57600754611540565b6009545b85906116c2565b90611744565b6015549091506001600160a01b03848116911614801561157657506001600160a01b0384163014155b156115a3576115a06064611547600c54600e541161159657600854611540565b600a5485906116c2565b90505b801561160b57306000908152600160205260409020546115c390826112e1565b30600081815260016020526040908190209290925590516001600160a01b03861690600080516020611c96833981519152906116029085815260200190565b60405180910390a35b6001600160a01b03841660009081526001602052604090205461162e9083611298565b6001600160a01b0385166000908152600160205260409020556116736116548383611298565b6001600160a01b038516600090815260016020526040902054906112e1565b6001600160a01b038085166000818152600160205260409020929092558516600080516020611c968339815191526116ab8585611298565b60405190815260200160405180910390a350505050565b6000826000036116d457506000610457565b60006116e08385611acc565b9050826116ed8583611c4b565b146112da5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610511565b60006112da83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250600081836117a25760405162461bcd60e51b815260040161051191906117af565b50600061128f8486611c4b565b600060208083528351808285015260005b818110156117dc578581018301518582016040015282016117c0565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461181257600080fd5b50565b8035611820816117fd565b919050565b6000806040838503121561183857600080fd5b8235611843816117fd565b946020939093013593505050565b60008060006060848603121561186657600080fd5b8335611871816117fd565b92506020840135611881816117fd565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b600060208083850312156118bb57600080fd5b823567ffffffffffffffff808211156118d357600080fd5b818501915085601f8301126118e757600080fd5b8135818111156118f9576118f9611892565b8060051b604051601f19603f8301168101818110858211171561191e5761191e611892565b60405291825284820192508381018501918883111561193c57600080fd5b938501935b828510156119615761195285611815565b84529385019392850192611941565b98975050505050505050565b60006020828403121561197f57600080fd5b81356112da816117fd565b6000806040838503121561199d57600080fd5b82356119a8816117fd565b915060208301356119b8816117fd565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611a145781600019048211156119fa576119fa6119c3565b80851615611a0757918102915b93841c93908002906119de565b509250929050565b600082611a2b57506001610457565b81611a3857506000610457565b8160018114611a4e5760028114611a5857611a74565b6001915050610457565b60ff841115611a6957611a696119c3565b50506001821b610457565b5060208310610133831016604e8410600b8410161715611a97575081810a610457565b611aa183836119d9565b8060001904821115611ab557611ab56119c3565b029392505050565b60006112da60ff841683611a1c565b8082028115828204841417610457576104576119c3565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b600060018201611b4057611b406119c3565b5060010190565b600080600060608486031215611b5c57600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215611b8757600080fd5b815180151581146112da57600080fd5b600060208284031215611ba957600080fd5b81516112da816117fd565b80820180821115610457576104576119c3565b81810381811115610457576104576119c3565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611c2a5784516001600160a01b031683529383019391830191600101611c05565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611c6857634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220a929d458bc835a9f327d68433fe2425ebbc2a3eb12e3b16e0d5c8700805c459e64736f6c63430008130033

Deployed Bytecode Sourcemap

3850:9858:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5794:83;;;;;;;;;;-1:-1:-1;5864:5:0;;;;;;;;;;;;-1:-1:-1;;;5864:5:0;;;;5794:83;;;;;;;:::i;:::-;;;;;;;;6677:186;;;;;;;;;;-1:-1:-1;6677:186:0;;;;;:::i;:::-;;:::i;:::-;;;1327:14:1;;1320:22;1302:41;;1290:2;1275:18;6677:186:0;1162:187:1;5037:55:0;;;;;;;;;;;;;;;;;;;1500:25:1;;;1488:2;1473:18;5037:55:0;1354:177:1;6071:95:0;;;;;;;;;;;;;:::i;6871:446::-;;;;;;;;;;-1:-1:-1;6871:446:0;;;;;:::i;:::-;;:::i;5980:83::-;;;;;;;;;;-1:-1:-1;5980:83:0;;4598:1;2139:36:1;;2127:2;2112:18;5980:83:0;1997:184:1;12426:168:0;;;;;;;;;;-1:-1:-1;12426:168:0;;;;;:::i;:::-;;:::i;:::-;;12602:86;;;;;;;;;;-1:-1:-1;12602:86:0;;;;;:::i;:::-;-1:-1:-1;;;;;12673:7:0;12649:4;12673:7;;;:4;:7;;;;;;;;;12602:86;4787:52;;;;;;;;;;;;;;;;6174:119;;;;;;;;;;-1:-1:-1;6174:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6267:18:0;6240:7;6267:18;;;:9;:18;;;;;;;6174:119;2881:148;;;;;;;;;;;;;:::i;12084:162::-;;;;;;;;;;;;;:::i;4846:56::-;;;;;;;;;;;;;;;;2667:79;;;;;;;;;;-1:-1:-1;2705:7:0;2732:6;2667:79;;-1:-1:-1;;;;;2732:6:0;;;3842:51:1;;3830:2;3815:18;2667:79:0;3696:203:1;4909:58:0;;;;;;;;;;;;;;;;5885:87;;;;;;;;;;-1:-1:-1;5957:7:0;;;;;;;;;;;;-1:-1:-1;;;5957:7:0;;;;5885:87;;6301:192;;;;;;;;;;-1:-1:-1;6301:192:0;;;;;:::i;:::-;;:::i;4974:56::-;;;;;;;;;;;;;;;;13158:510;;;;;;;;;;;;;:::i;12254:164::-;;;;;;;;;;-1:-1:-1;12254:164:0;;;;;:::i;:::-;;:::i;6501:168::-;;;;;;;;;;-1:-1:-1;6501:168:0;;;;;:::i;:::-;-1:-1:-1;;;;;6634:18:0;;;6607:7;6634:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6501:168;12696:454;;;;;;;;;;;;;:::i;6677:186::-;6777:4;6794:39;294:10;6817:7;6826:6;6794:8;:39::i;:::-;-1:-1:-1;6851:4:0;6677:186;;;;;:::o;6071:95::-;6124:7;4654:15;4598:1;4654:2;:15;:::i;:::-;4641:28;;:10;:28;:::i;:::-;6144:14;;6071:95;:::o;6871:446::-;7003:4;7020:36;7030:6;7038:9;7049:6;7020:9;:36::i;:::-;7067:220;7090:6;294:10;7138:138;7194:6;7138:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7138:19:0;;;;;;:11;:19;;;;;;;;294:10;7138:33;;;;;;;;;;:37;:138::i;:::-;7067:8;:220::i;:::-;-1:-1:-1;7305:4:0;6871:446;;;;;:::o;12426:168::-;2794:6;;-1:-1:-1;;;;;2794:6:0;294:10;2794:22;2786:67;;;;-1:-1:-1;;;2786:67:0;;;;;;;:::i;:::-;;;;;;;;;12501:6:::1;12496:91;12517:6;:13;12513:1;:17;12496:91;;;12570:5;12552:4;:15;12557:6;12564:1;12557:9;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;12552:15:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;12552:15:0;:23;;-1:-1:-1;;12552:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12532:3;::::1;::::0;::::1;:::i;:::-;;;;12496:91;;;;12426:168:::0;:::o;2881:148::-;2794:6;;-1:-1:-1;;;;;2794:6:0;294:10;2794:22;2786:67;;;;-1:-1:-1;;;2786:67:0;;;;;;;:::i;:::-;2988:1:::1;2972:6:::0;;2951:40:::1;::::0;-1:-1:-1;;;;;2972:6:0;;::::1;::::0;2951:40:::1;::::0;2988:1;;2951:40:::1;3019:1;3002:19:::0;;-1:-1:-1;;;;;;3002:19:0::1;::::0;;2881:148::o;12084:162::-;2794:6;;-1:-1:-1;;;;;2794:6:0;294:10;2794:22;2786:67;;;;-1:-1:-1;;;2786:67:0;;;;;;;:::i;:::-;4654:15:::1;4598:1;4654:2;:15;:::i;:::-;4641:28;::::0;:10:::1;:28;:::i;:::-;12138:12;:22:::0;4654:15:::1;4598:1;4654:2;:15;:::i;:::-;4641:28;::::0;:10:::1;:28;:::i;:::-;12171:14;:24:::0;12211:27:::1;4654:15;4598:1;4654:2;:15;:::i;:::-;4641:28;::::0;:10:::1;:28;:::i;:::-;12211:27;::::0;1500:25:1;;;1488:2;1473:18;12211:27:0::1;;;;;;;12084:162::o:0;6301:192::-;6404:4;6421:42;294:10;6445:9;6456:6;6421:9;:42::i;13158:510::-;2794:6;;-1:-1:-1;;;;;2794:6:0;294:10;2794:22;2786:67;;;;-1:-1:-1;;;2786:67:0;;;;;;;:::i;:::-;13220:11:::1;::::0;-1:-1:-1;;;13220:11:0;::::1;;;13219:12;13211:48;;;::::0;-1:-1:-1;;;13211:48:0;;6820:2:1;13211:48:0::1;::::0;::::1;6802:21:1::0;6859:2;6839:18;;;6832:30;-1:-1:-1;;;6878:18:1;;;6871:53;6941:18;;13211:48:0::1;6618:347:1::0;13211:48:0::1;13272:15;::::0;13376:7:::1;::::0;-1:-1:-1;;;;;13272:15:0;;::::1;::::0;:31:::1;::::0;13311:21:::1;::::0;13356:4:::1;::::0;13272:15:::1;::::0;13430:7:::1;2705::::0;2732:6;-1:-1:-1;;;;;2732:6:0;;2667:79;13430:7:::1;13272:206;::::0;::::1;::::0;;;-1:-1:-1;;;;;;13272:206:0;;;-1:-1:-1;;;;;7329:15:1;;;13272:206:0::1;::::0;::::1;7311:34:1::0;7361:18;;;7354:34;;;;7404:18;;;7397:34;;;;7447:18;;;7440:34;7511:15;;;7490:19;;;7483:44;13452:15:0::1;7543:19:1::0;;;7536:35;7245:19;;13272:206:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;13498:13:0::1;::::0;13529:15:::1;::::0;13491:71:::1;::::0;-1:-1:-1;;;13491:71:0;;-1:-1:-1;;;;;13529:15:0;;::::1;13491:71;::::0;::::1;8067:51:1::0;-1:-1:-1;;8134:18:1;;;8127:34;13498:13:0;::::1;::::0;-1:-1:-1;13491:29:0::1;::::0;8040:18:1;;13491:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;13575:11:0::1;:18:::0;;-1:-1:-1;;;;13604:18:0;-1:-1:-1;;;13604:18:0;;;13648:12:::1;13635:10;:25:::0;13158:510::o;12254:164::-;2794:6;;-1:-1:-1;;;;;2794:6:0;294:10;2794:22;2786:67;;;;-1:-1:-1;;;2786:67:0;;;;;;;:::i;:::-;12328:6:::1;12323:88;12344:5;:12;12340:1;:16;12323:88;;;12395:4;12378;:14;12383:5;12389:1;12383:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;12378:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;12378:14:0;:21;;-1:-1:-1;;12378:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12358:3;::::1;::::0;::::1;:::i;:::-;;;;12323:88;;12696:454:::0;2794:6;;-1:-1:-1;;;;;2794:6:0;294:10;2794:22;2786:67;;;;-1:-1:-1;;;2786:67:0;;;;;;;:::i;:::-;12755:11:::1;::::0;-1:-1:-1;;;12755:11:0;::::1;;;12754:12;12746:48;;;::::0;-1:-1:-1;;;12746:48:0;;6820:2:1;12746:48:0::1;::::0;::::1;6802:21:1::0;6859:2;6839:18;;;6832:30;-1:-1:-1;;;6878:18:1;;;6871:53;6941:18;;12746:48:0::1;6618:347:1::0;12746:48:0::1;12807:15;:104:::0;;-1:-1:-1;;;;;;12807:104:0::1;12858:42;12807:104:::0;;::::1;::::0;;;12924:58:::1;::::0;12941:4:::1;::::0;4654:15:::1;4598:1;4654:2;:15;:::i;:::-;4641:28;::::0;:10:::1;:28;:::i;12924:58::-;13029:15;;;;;;;;;-1:-1:-1::0;;;;;13029:15:0::1;-1:-1:-1::0;;;;;13029:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13011:55:0::1;;13089:4;13109:15;;;;;;;;;-1:-1:-1::0;;;;;13109:15:0::1;-1:-1:-1::0;;;;;13109:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13011:131;::::0;-1:-1:-1;;;;;;13011:131:0::1;::::0;;;;;;-1:-1:-1;;;;;8940:15:1;;;13011:131:0::1;::::0;::::1;8922:34:1::0;8992:15;;8972:18;;;8965:43;8857:18;;13011:131:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12995:13;:147:::0;;-1:-1:-1;;;;;;12995:147:0::1;-1:-1:-1::0;;;;;12995:147:0;;;::::1;::::0;;;::::1;::::0;;12696:454::o;7325:335::-;-1:-1:-1;;;;;7418:19:0;;7410:68;;;;-1:-1:-1;;;7410:68:0;;9221:2:1;7410:68:0;;;9203:21:1;9260:2;9240:18;;;9233:30;9299:34;9279:18;;;9272:62;-1:-1:-1;;;9350:18:1;;;9343:34;9394:19;;7410:68:0;9019:400:1;7410:68:0;-1:-1:-1;;;;;7497:21:0;;7489:68;;;;-1:-1:-1;;;7489:68:0;;9626:2:1;7489:68:0;;;9608:21:1;9665:2;9645:18;;;9638:30;9704:34;9684:18;;;9677:62;-1:-1:-1;;;9755:18:1;;;9748:32;9797:19;;7489:68:0;9424:398:1;7489:68:0;-1:-1:-1;;;;;7568:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7620:32;;1500:25:1;;;7620:32:0;;1473:18:1;7620:32:0;;;;;;;;7325:335;;;:::o;8869:2398::-;-1:-1:-1;;;;;8957:18:0;;8949:68;;;;-1:-1:-1;;;8949:68:0;;10029:2:1;8949:68:0;;;10011:21:1;10068:2;10048:18;;;10041:30;10107:34;10087:18;;;10080:62;-1:-1:-1;;;10158:18:1;;;10151:35;10203:19;;8949:68:0;9827:401:1;8949:68:0;-1:-1:-1;;;;;9036:16:0;;9028:64;;;;-1:-1:-1;;;9028:64:0;;10435:2:1;9028:64:0;;;10417:21:1;10474:2;10454:18;;;10447:30;10513:34;10493:18;;;10486:62;-1:-1:-1;;;10564:18:1;;;10557:33;10607:19;;9028:64:0;10233:399:1;9028:64:0;9120:1;9111:6;:10;9103:64;;;;-1:-1:-1;;;9103:64:0;;10839:2:1;9103:64:0;;;10821:21:1;10878:2;10858:18;;;10851:30;10917:34;10897:18;;;10890:62;-1:-1:-1;;;10968:18:1;;;10961:39;11017:19;;9103:64:0;10637:405:1;9103:64:0;9185:11;;-1:-1:-1;;;9185:11:0;;;;9184:12;;:22;;-1:-1:-1;9200:6:0;;-1:-1:-1;;;9200:6:0;;;;9184:22;9180:223;;;-1:-1:-1;;;;;9241:15:0;;;;;;:9;:15;;;;;;:27;;9261:6;9241:19;:27::i;:::-;-1:-1:-1;;;;;9223:15:0;;;;;;;:9;:15;;;;;;:45;;;;9299:13;;;;;;;:25;;9317:6;9299:17;:25::i;:::-;-1:-1:-1;;;;;9283:13:0;;;;;;;:9;:13;;;;;;;:41;;;;9344:26;;;;;;-1:-1:-1;;;;;;;;;;;9344:26:0;;;9363:6;1500:25:1;;1488:2;1473:18;;1354:177;9180:223:0;2705:7;2732:6;-1:-1:-1;;;;;9419:15:0;;;2732:6;;9419:15;;;;:32;;-1:-1:-1;2705:7:0;2732:6;-1:-1:-1;;;;;9438:13:0;;;2732:6;;9438:13;;9419:32;9415:1681;;;-1:-1:-1;;;;;9477:10:0;;;;;;:4;:10;;;;;;;;9476:11;:24;;;;-1:-1:-1;;;;;;9492:8:0;;;;;;:4;:8;;;;;;;;9491:9;9476:24;9468:33;;;;;;9548:13;;-1:-1:-1;;;;;9540:21:0;;;9548:13;;9540:21;:72;;;;-1:-1:-1;9596:15:0;;-1:-1:-1;;;;;9582:30:0;;;9596:15;;9582:30;;9540:72;:116;;;;-1:-1:-1;;;;;;9634:22:0;;;;;;:18;:22;;;;;;;;9633:23;9540:116;9518:560;;;9709:12;;9699:6;:22;;9691:60;;;;-1:-1:-1;;;9691:60:0;;11249:2:1;9691:60:0;;;11231:21:1;11288:2;11268:18;;;11261:30;11327:27;11307:18;;;11300:55;11372:18;;9691:60:0;11047:349:1;9691:60:0;9826:14;;9816:6;9800:13;9810:2;-1:-1:-1;;;;;6267:18:0;6240:7;6267:18;;;:9;:18;;;;;;;6174:119;9800:13;:22;;;;:::i;:::-;:40;;9770:140;;;;-1:-1:-1;;;9770:140:0;;11733:2:1;9770:140:0;;;11715:21:1;11772:2;11752:18;;;11745:30;11811:28;11791:18;;;11784:56;11857:18;;9770:140:0;11531:350:1;9770:140:0;9952:12;9935:10;;9948:1;9935:14;;;;:::i;:::-;:29;9931:102;;;11521:20;;11569:8;9989:24;;;;;;10051:9;:11;;;:9;:11;;;:::i;:::-;;;;;;9518:560;10104:13;;-1:-1:-1;;;;;10098:19:0;;;10104:13;;10098:19;;;;:46;;-1:-1:-1;;;;;;10122:22:0;;;;;;:18;:22;;;;;;;;10121:23;10098:46;10094:227;;;10221:14;;10211:6;10195:13;10205:2;-1:-1:-1;;;;;6267:18:0;6240:7;6267:18;;;:9;:18;;;;;;;6174:119;10195:13;:22;;;;:::i;:::-;:40;;10165:140;;;;-1:-1:-1;;;10165:140:0;;11733:2:1;10165:140:0;;;11715:21:1;11772:2;11752:18;;;11745:30;11811:28;11791:18;;;11784:56;11857:18;;10165:140:0;11531:350:1;10165:140:0;10386:4;10337:28;6267:18;;;:9;:18;;;;;;10445:17;;10500:6;;10422:40;;;;-1:-1:-1;;;10500:6:0;;;;10499:7;:47;;;;-1:-1:-1;10533:13:0;;-1:-1:-1;;;;;10527:19:0;;;10533:13;;10527:19;10499:47;:79;;;;-1:-1:-1;10567:11:0;;-1:-1:-1;;;10567:11:0;;;;10499:79;:130;;;;;10611:18;;10599:9;;:30;10499:130;:176;;;;-1:-1:-1;;;;;;10651:24:0;;;;;;:18;:24;;;;;;;;10650:25;10499:176;:220;;;;-1:-1:-1;;;;;;10697:22:0;;;;;;:18;:22;;;;;;;;10696:23;10499:220;10477:608;;;10757:7;10754:171;;;10788:117;10831:51;10835:6;10843:38;10847:20;10869:11;;10843:3;:38::i;:::-;10831:3;:51::i;:::-;10788:16;:117::i;:::-;11030:10;;:39;;10990:21;;-1:-1:-1;;;;;11030:10:0;;:39;;;;;10990:21;;10961:26;11030:39;10961:26;11030:39;10990:21;11030:10;:39;;;;;;;;;;;;;;;;;;;;;10735:350;10477:608;9453:1643;;9415:1681;-1:-1:-1;;;;;11112:24:0;;;;;;:18;:24;;;;;;;;11108:152;;;11153:32;11168:4;11174:2;11178:6;11153:14;:32::i;:::-;8869:2398;;;:::o;11108:152::-;11218:30;11231:4;11237:2;11241:6;11218:12;:30::i;1469:224::-;1589:7;1625:12;1617:6;;;;1609:29;;;;-1:-1:-1;;;1609:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1649:9:0;1661:5;1665:1;1661;:5;:::i;:::-;1649:17;1469:224;-1:-1:-1;;;;;1469:224:0:o;1325:136::-;1383:7;1410:43;1414:1;1417;1410:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1403:50;1325:136;-1:-1:-1;;;1325:136:0:o;1138:179::-;1196:7;;1228:5;1232:1;1228;:5;:::i;:::-;1216:17;;1257:1;1252;:6;;1244:46;;;;-1:-1:-1;;;1244:46:0;;12221:2:1;1244:46:0;;;12203:21:1;12260:2;12240:18;;;12233:30;12299:29;12279:18;;;12272:57;12346:18;;1244:46:0;12019:351:1;11275:107:0;11332:7;11364:1;11360;:5;11359:15;;11373:1;11359:15;;;-1:-1:-1;11369:1:0;11275:107;-1:-1:-1;11275:107:0:o;11593:483::-;5376:6;:13;;-1:-1:-1;;;;5376:13:0;-1:-1:-1;;;5376:13:0;;;11695:16:::1;::::0;;11709:1:::1;11695:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11695:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11695:16:0::1;11671:40;;11740:4;11722;11727:1;11722:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11722:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11766:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;11766:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11722:7;;11766:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11756:4;11761:1;11756:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11756:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11831:15:::1;::::0;11799:62:::1;::::0;11816:4:::1;::::0;11831:15:::1;11849:11:::0;11799:8:::1;:62::i;:::-;11872:15;::::0;:196:::1;::::0;-1:-1:-1;;;11872:196:0;;-1:-1:-1;;;;;11872:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;11953:11;;11872:15:::1;::::0;11995:4;;12022::::1;::::0;12042:15:::1;::::0;11872:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5412:6:0;:14;;-1:-1:-1;;;;5412:14:0;;;-1:-1:-1;;;;11593:483:0:o;7668:267::-;-1:-1:-1;;;;;7797:15:0;;;;;;;:9;:15;;;;;;;;:24;;;7779:42;;7852:13;;;;;;;;;;;;:22;;7836:38;;7901:26;;-1:-1:-1;;;;;;;;;;;7901:26:0;;;7815:6;1500:25:1;;1488:2;1473:18;;1354:177;7943:918:0;8027:17;8071:110;8177:3;8071:87;8109:15;;8097:9;;:27;8096:61;;8143:14;;8096:61;;;8128:12;;8096:61;8071:6;;:24;:87::i;:::-;:105;;:110::i;:::-;8202:13;;8059:122;;-1:-1:-1;;;;;;8196:19:0;;;8202:13;;8196:19;:44;;;;-1:-1:-1;;;;;;8219:21:0;;8235:4;8219:21;;8196:44;8192:300;;;8269:211;8476:3;8269:184;8333:16;;8321:9;;:28;8320:114;;8419:15;;8320:114;;;8378:13;;8269:6;;:28;:184::i;:211::-;8257:223;;8192:300;8506:13;;8502:172;;8581:4;8563:24;;;;:9;:24;;;;;;:39;;8592:9;8563:28;:39::i;:::-;8554:4;8536:24;;;;:9;:24;;;;;;;:66;;;;8622:40;;-1:-1:-1;;;;;8622:40:0;;;-1:-1:-1;;;;;;;;;;;8622:40:0;;;8652:9;1500:25:1;;1488:2;1473:18;;1354:177;8622:40:0;;;;;;;;8502:172;-1:-1:-1;;;;;8702:15:0;;;;;;:9;:15;;;;;;:27;;8722:6;8702:19;:27::i;:::-;-1:-1:-1;;;;;8684:15:0;;;;;;:9;:15;;;;;:45;8756:40;8774:21;:6;8785:9;8774:10;:21::i;:::-;-1:-1:-1;;;;;8756:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;8740:13:0;;;;;;;:9;:13;;;;;:56;;;;8812:41;;-1:-1:-1;;;;;;;;;;;8831:21:0;:6;8842:9;8831:10;:21::i;:::-;8812:41;;1500:25:1;;;1488:2;1473:18;8812:41:0;;;;;;;8016:845;7943:918;;;:::o;1701:246::-;1759:7;1783:1;1788;1783:6;1779:47;;-1:-1:-1;1813:1:0;1806:8;;1779:47;1836:9;1848:5;1852:1;1848;:5;:::i;:::-;1836:17;-1:-1:-1;1881:1:0;1872:5;1876:1;1836:17;1872:5;:::i;:::-;:10;1864:56;;;;-1:-1:-1;;;1864:56:0;;13784:2:1;1864:56:0;;;13766:21:1;13823:2;13803:18;;;13796:30;13862:34;13842:18;;;13835:62;-1:-1:-1;;;13913:18:1;;;13906:31;13954:19;;1864:56:0;13582:397:1;1955:132:0;2013:7;2040:39;2044:1;2047;2040:39;;;;;;;;;;;;;;;;;2215:7;2250:12;2243:5;2235:28;;;;-1:-1:-1;;;2235:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2274:9:0;2286:5;2290:1;2286;: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;622:70;567:131;:::o;703:134::-;771:20;;800:31;771:20;800:31;:::i;:::-;703:134;;;:::o;842:315::-;910:6;918;971:2;959:9;950:7;946:23;942:32;939:52;;;987:1;984;977:12;939:52;1026:9;1013:23;1045:31;1070:5;1045:31;:::i;:::-;1095:5;1147:2;1132:18;;;;1119:32;;-1:-1:-1;;;842:315:1:o;1536:456::-;1613:6;1621;1629;1682:2;1670:9;1661:7;1657:23;1653:32;1650:52;;;1698:1;1695;1688:12;1650:52;1737:9;1724:23;1756:31;1781:5;1756:31;:::i;:::-;1806:5;-1:-1:-1;1863:2:1;1848:18;;1835:32;1876:33;1835:32;1876:33;:::i;:::-;1536:456;;1928:7;;-1:-1:-1;;;1982:2:1;1967:18;;;;1954:32;;1536:456::o;2186:127::-;2247:10;2242:3;2238:20;2235:1;2228:31;2278:4;2275:1;2268:15;2302:4;2299:1;2292:15;2318:1121;2402:6;2433:2;2476;2464:9;2455:7;2451:23;2447:32;2444:52;;;2492:1;2489;2482:12;2444:52;2532:9;2519:23;2561:18;2602:2;2594:6;2591:14;2588:34;;;2618:1;2615;2608:12;2588:34;2656:6;2645:9;2641:22;2631:32;;2701:7;2694:4;2690:2;2686:13;2682:27;2672:55;;2723:1;2720;2713:12;2672:55;2759:2;2746:16;2781:2;2777;2774:10;2771:36;;;2787:18;;:::i;:::-;2833:2;2830:1;2826:10;2865:2;2859:9;2928:2;2924:7;2919:2;2915;2911:11;2907:25;2899:6;2895:38;2983:6;2971:10;2968:22;2963:2;2951:10;2948:18;2945:46;2942:72;;;2994:18;;:::i;:::-;3030:2;3023:22;3080:18;;;3114:15;;;;-1:-1:-1;3156:11:1;;;3152:20;;;3184:19;;;3181:39;;;3216:1;3213;3206:12;3181:39;3240:11;;;;3260:148;3276:6;3271:3;3268:15;3260:148;;;3342:23;3361:3;3342:23;:::i;:::-;3330:36;;3293:12;;;;3386;;;;3260:148;;;3427:6;2318:1121;-1:-1:-1;;;;;;;;2318:1121:1:o;3444:247::-;3503:6;3556:2;3544:9;3535:7;3531:23;3527:32;3524:52;;;3572:1;3569;3562:12;3524:52;3611:9;3598:23;3630:31;3655:5;3630:31;:::i;3904:388::-;3972:6;3980;4033:2;4021:9;4012:7;4008:23;4004:32;4001:52;;;4049:1;4046;4039:12;4001:52;4088:9;4075:23;4107:31;4132:5;4107:31;:::i;:::-;4157:5;-1:-1:-1;4214:2:1;4199:18;;4186:32;4227:33;4186:32;4227:33;:::i;:::-;4279:7;4269:17;;;3904:388;;;;;:::o;4297:127::-;4358:10;4353:3;4349:20;4346:1;4339:31;4389:4;4386:1;4379:15;4413:4;4410:1;4403:15;4429:422;4518:1;4561:5;4518:1;4575:270;4596:7;4586:8;4583:21;4575:270;;;4655:4;4651:1;4647:6;4643:17;4637:4;4634:27;4631:53;;;4664:18;;:::i;:::-;4714:7;4704:8;4700:22;4697:55;;;4734:16;;;;4697:55;4813:22;;;;4773:15;;;;4575:270;;;4579:3;4429:422;;;;;:::o;4856:806::-;4905:5;4935:8;4925:80;;-1:-1:-1;4976:1:1;4990:5;;4925:80;5024:4;5014:76;;-1:-1:-1;5061:1:1;5075:5;;5014:76;5106:4;5124:1;5119:59;;;;5192:1;5187:130;;;;5099:218;;5119:59;5149:1;5140:10;;5163:5;;;5187:130;5224:3;5214:8;5211:17;5208:43;;;5231:18;;:::i;:::-;-1:-1:-1;;5287:1:1;5273:16;;5302:5;;5099:218;;5401:2;5391:8;5388:16;5382:3;5376:4;5373:13;5369:36;5363:2;5353:8;5350:16;5345:2;5339:4;5336:12;5332:35;5329:77;5326:159;;;-1:-1:-1;5438:19:1;;;5470:5;;5326:159;5517:34;5542:8;5536:4;5517:34;:::i;:::-;5587:6;5583:1;5579:6;5575:19;5566:7;5563:32;5560:58;;;5598:18;;:::i;:::-;5636:20;;4856:806;-1:-1:-1;;;4856:806:1:o;5667:140::-;5725:5;5754:47;5795:4;5785:8;5781:19;5775:4;5754:47;:::i;5812:168::-;5885:9;;;5916;;5933:15;;;5927:22;;5913:37;5903:71;;5954:18;;:::i;5985:356::-;6187:2;6169:21;;;6206:18;;;6199:30;6265:34;6260:2;6245:18;;6238:62;6332:2;6317:18;;5985:356::o;6346:127::-;6407:10;6402:3;6398:20;6395:1;6388:31;6438:4;6435:1;6428:15;6462:4;6459:1;6452:15;6478:135;6517:3;6538:17;;;6535:43;;6558:18;;:::i;:::-;-1:-1:-1;6605:1:1;6594:13;;6478:135::o;7582:306::-;7670:6;7678;7686;7739:2;7727:9;7718:7;7714:23;7710:32;7707:52;;;7755:1;7752;7745:12;7707:52;7784:9;7778:16;7768:26;;7834:2;7823:9;7819:18;7813:25;7803:35;;7878:2;7867:9;7863:18;7857:25;7847:35;;7582:306;;;;;:::o;8172:277::-;8239:6;8292:2;8280:9;8271:7;8267:23;8263:32;8260:52;;;8308:1;8305;8298:12;8260:52;8340:9;8334:16;8393:5;8386:13;8379:21;8372:5;8369:32;8359:60;;8415:1;8412;8405:12;8454:251;8524:6;8577:2;8565:9;8556:7;8552:23;8548:32;8545:52;;;8593:1;8590;8583:12;8545:52;8625:9;8619:16;8644:31;8669:5;8644:31;:::i;11401:125::-;11466:9;;;11487:10;;;11484:36;;;11500:18;;:::i;11886:128::-;11953:9;;;11974:11;;;11971:37;;;11988:18;;:::i;12375:980::-;12637:4;12685:3;12674:9;12670:19;12716:6;12705:9;12698:25;12742:2;12780:6;12775:2;12764:9;12760:18;12753:34;12823:3;12818:2;12807:9;12803:18;12796:31;12847:6;12882;12876:13;12913:6;12905;12898:22;12951:3;12940:9;12936:19;12929:26;;12990:2;12982:6;12978:15;12964:29;;13011:1;13021:195;13035:6;13032:1;13029:13;13021:195;;;13100:13;;-1:-1:-1;;;;;13096:39:1;13084:52;;13191:15;;;;13156:12;;;;13132:1;13050:9;13021:195;;;-1:-1:-1;;;;;;;13272:32:1;;;;13267:2;13252:18;;13245:60;-1:-1:-1;;;13336:3:1;13321:19;13314:35;13233:3;12375:980;-1:-1:-1;;;12375:980:1:o;13360:217::-;13400:1;13426;13416:132;;13470:10;13465:3;13461:20;13458:1;13451:31;13505:4;13502:1;13495:15;13533:4;13530:1;13523:15;13416:132;-1:-1:-1;13562:9:1;;13360:217::o

Swarm Source

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