ETH Price: $3,261.82 (+0.58%)
Gas: 1 Gwei

Token

0xCash (0xC)
 

Overview

Max Total Supply

10,000,000 0xC

Holders

60

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
153,254.70584238 0xC

Value
$0.00
0x64228d88faaf68c58620b869381fd5ca5f4efae1
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:
ZeroXCash

Compiler Version
v0.8.11+commit.d7f03943

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-04-17
*/

/*
           ____       _________   _____ __  __
          / __ \_  __/ ____/   | / ___// / / /
         / / / / |/_/ /   / /| | \__ \/ /_/ / 
        / /_/ />  </ /___/ ___ |___/ / __  /  
        \____/_/|_|\____/_/  |_/____/_/ /_/   
                                      
> The new AI powered mixer for every chain

| https://0x-cash.com/   | https://mixer.0x-cash.com/    | 
| https://t.me/OxCashETH | https://twitter.com/0xCashETH |
*/     

// 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 ZeroXCash is Context, IERC20, Ownable {
    using SafeMath for uint256;

    string private constant _name = "0xCash";
    string private constant _symbol = "0xC";
    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 = ~uint256(0);
    uint256 private constant _tTotal = 10000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _redisFeeOnBuy = 0;
    uint256 private _taxFeeOnBuy = 20;
    uint256 private _redisFeeOnSell = 0;
    uint256 private _taxFeeOnSell = 40;
    uint256 private feeLimit = 10;

    //Original Fee
    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;

    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;

    address payable private _developmentAddress = payable(msg.sender);
    address payable private _marketingAddress = payable(0x303E64526feDBbDB05b186E1a5439F9E6D17Ae9d);
    address private uniswapRouter = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = true;

    uint256 public _maxTxAmount = _tTotal*2/100;
    uint256 public _maxWalletSize = _tTotal*2/100;
    uint256 public _swapTokensAtAmount = _tTotal*1/100;

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

    constructor() {

        _rOwned[_msgSender()] = _rTotal;

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

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_marketingAddress] = true;
        _isExcludedFromFee[_developmentAddress] = 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)
    {
        require(
            rAmount <= _rTotal,
            "Amount must be less than total reflections"
        );
        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()) {

            //Trade start check
            if (!tradingOpen) {
                require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled");
            }

            if(to != uniswapV2Pair && to != uniswapRouter && to != _developmentAddress && to != address(this)) {
                require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
                if(to != uniswapV2Pair) {
                    require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
                }
              }

            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;

            if(contractTokenBalance >= _swapTokensAtAmount*2)
            {
                contractTokenBalance = contractTokenBalance;
            }

            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(contractETHBalance);
                }
            }
        }

        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 onlyOwner {
        _marketingAddress.transfer(amount);
    }

    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(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(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);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function removeAllLimits() public onlyOwner {
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
        feeLimit = 99;
    }

    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 setTradingToOpen() public onlyOwner {
        require(!tradingOpen, "Trading already active");
        tradingOpen = true;
    }

    function setFeeBuy(uint256 taxFeeOnBuy) public onlyOwner {
        _taxFeeOnBuy = taxFeeOnBuy;
        require (_taxFeeOnBuy <= feeLimit);
    }

    function setFeeSell(uint256 taxFeeOnSell) public onlyOwner {
        _taxFeeOnSell = taxFeeOnSell;
        require (_taxFeeOnSell <= feeLimit);
    }

}

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":"_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":"_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":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeAllLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"}],"name":"setFeeBuy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFeeSell","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setTradingToOpen","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405262000019662386f26fc10000600019620003ec565b620000279060001962000419565b600655600060088190556014600955600a8181556028600b819055600c91909155600d829055600e819055600f91909155601055601180546001600160a01b0319908116331790915560128054821673303e64526fedbbdb05b186e1a5439f9e6d17ae9d17905560138054909116737a250d5630b4cf539739df2c5dacb4c659f2488d1790556015805461ffff60a81b1916600160b01b1790556064620000d7662386f26fc10000600262000433565b620000e3919062000455565b6016556064620000fc662386f26fc10000600262000433565b62000108919062000455565b601755606462000121662386f26fc10000600162000433565b6200012d919062000455565b6018553480156200013d57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506006543360009081526002602090815260409182902092909255601480546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a015592600480830193928290030181865afa158015620001fb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200022191906200046c565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200026f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200029591906200046c565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200030991906200046c565b601580546001600160a01b0319166001600160a01b03928316179055600080548216815260056020526040808220805460ff1990811660019081179092553084528284208054821683179055601254851684528284208054821683179055601154909416835291208054909216179055336001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef662386f26fc10000604051620003c791815260200190565b60405180910390a3506200049e565b634e487b7160e01b600052601260045260246000fd5b600082620003fe57620003fe620003d6565b500690565b634e487b7160e01b600052601160045260246000fd5b6000828210156200042e576200042e62000403565b500390565b600081600019048311821515161562000450576200045062000403565b500290565b600082620004675762000467620003d6565b500490565b6000602082840312156200047f57600080fd5b81516001600160a01b03811681146200049757600080fd5b9392505050565b6117ff80620004ae6000396000f3fe60806040526004361061012e5760003560e01c80637cec1c82116100ab57806396e074fc1161006f57806396e074fc14610346578063a9059cbb14610366578063ad7c68b214610386578063db05e5cb1461039b578063dd62ed3e146103b0578063f2fde38b146103f657600080fd5b80637cec1c82146102b05780637d1db4a5146102d05780638da5cb5b146102e65780638f9a55c01461030457806395d89b411461031a57600080fd5b80632fd689e3116100f25780632fd689e314610227578063313ce5671461023d57806349bd5a5e1461025957806370a0823114610279578063715018a61461029957600080fd5b806306fdde031461013a578063095ea7b31461017b5780631694505e146101ab57806318160ddd146101e357806323b872dd1461020757600080fd5b3661013557005b600080fd5b34801561014657600080fd5b50604080518082019091526006815265060f086c2e6d60d31b60208201525b60405161017291906114fc565b60405180910390f35b34801561018757600080fd5b5061019b610196366004611566565b610416565b6040519015158152602001610172565b3480156101b757600080fd5b506014546101cb906001600160a01b031681565b6040516001600160a01b039091168152602001610172565b3480156101ef57600080fd5b50662386f26fc100005b604051908152602001610172565b34801561021357600080fd5b5061019b610222366004611592565b61042d565b34801561023357600080fd5b506101f960185481565b34801561024957600080fd5b5060405160098152602001610172565b34801561026557600080fd5b506015546101cb906001600160a01b031681565b34801561028557600080fd5b506101f96102943660046115d3565b610496565b3480156102a557600080fd5b506102ae6104b8565b005b3480156102bc57600080fd5b506102ae6102cb3660046115f0565b610535565b3480156102dc57600080fd5b506101f960165481565b3480156102f257600080fd5b506000546001600160a01b03166101cb565b34801561031057600080fd5b506101f960175481565b34801561032657600080fd5b5060408051808201909152600381526230784360e81b6020820152610165565b34801561035257600080fd5b506102ae6103613660046115f0565b610576565b34801561037257600080fd5b5061019b610381366004611566565b6105b4565b34801561039257600080fd5b506102ae6105c1565b3480156103a757600080fd5b506102ae610653565b3480156103bc57600080fd5b506101f96103cb366004611609565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561040257600080fd5b506102ae6104113660046115d3565b610694565b600061042333848461077e565b5060015b92915050565b600061043a8484846108a2565b61048c8433610487856040518060600160405280602881526020016117a2602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190610da8565b61077e565b5060019392505050565b6001600160a01b03811660009081526002602052604081205461042790610de2565b6000546001600160a01b031633146104eb5760405162461bcd60e51b81526004016104e290611642565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b0316331461055f5760405162461bcd60e51b81526004016104e290611642565b600b819055600c5481111561057357600080fd5b50565b6000546001600160a01b031633146105a05760405162461bcd60e51b81526004016104e290611642565b6009819055600c5481111561057357600080fd5b60006104233384846108a2565b6000546001600160a01b031633146105eb5760405162461bcd60e51b81526004016104e290611642565b601554600160a01b900460ff161561063e5760405162461bcd60e51b815260206004820152601660248201527554726164696e6720616c72656164792061637469766560501b60448201526064016104e2565b6015805460ff60a01b1916600160a01b179055565b6000546001600160a01b0316331461067d5760405162461bcd60e51b81526004016104e290611642565b662386f26fc1000060168190556017556063600c55565b6000546001600160a01b031633146106be5760405162461bcd60e51b81526004016104e290611642565b6001600160a01b0381166107235760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104e2565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166107e05760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104e2565b6001600160a01b0382166108415760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104e2565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166109065760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104e2565b6001600160a01b0382166109685760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104e2565b600081116109ca5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104e2565b6000546001600160a01b038481169116148015906109f657506000546001600160a01b03838116911614155b15610c9b57601554600160a01b900460ff16610a8f576000546001600160a01b03848116911614610a8f5760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c65640060648201526084016104e2565b6015546001600160a01b03838116911614801590610abb57506013546001600160a01b03838116911614155b8015610ad557506011546001600160a01b03838116911614155b8015610aea57506001600160a01b0382163014155b15610bc657601654811115610b415760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d69740000000060448201526064016104e2565b6015546001600160a01b03838116911614610bc65760175481610b6384610496565b610b6d919061168d565b10610bc65760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b60648201526084016104e2565b6000610bd130610496565b6018549091508082101590610be79060026116a5565b50808015610bff5750601554600160a81b900460ff16155b8015610c1957506015546001600160a01b03868116911614155b8015610c2e5750601554600160b01b900460ff165b8015610c5357506001600160a01b03851660009081526005602052604090205460ff16155b8015610c7857506001600160a01b03841660009081526005602052604090205460ff16155b15610c9857610c8682610e66565b478015610c9657610c9681610fe0565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff1680610cdd57506001600160a01b03831660009081526005602052604090205460ff165b80610d0f57506015546001600160a01b03858116911614801590610d0f57506015546001600160a01b03848116911614155b15610d1c57506000610d96565b6015546001600160a01b038581169116148015610d4757506014546001600160a01b03848116911614155b15610d5957600854600d55600954600e555b6015546001600160a01b038481169116148015610d8457506014546001600160a01b03858116911614155b15610d9657600a54600d55600b54600e555b610da284848484611048565b50505050565b60008184841115610dcc5760405162461bcd60e51b81526004016104e291906114fc565b506000610dd984866116c4565b95945050505050565b6000600654821115610e495760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016104e2565b6000610e53611076565b9050610e5f8382611099565b9392505050565b6015805460ff60a81b1916600160a81b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110610eae57610eae6116db565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610f07573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2b91906116f1565b81600181518110610f3e57610f3e6116db565b6001600160a01b039283166020918202929092010152601454610f64913091168461077e565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac94790610f9d90859060009086903090429060040161170e565b600060405180830381600087803b158015610fb757600080fd5b505af1158015610fcb573d6000803e3d6000fd5b50506015805460ff60a81b1916905550505050565b6000546001600160a01b0316331461100a5760405162461bcd60e51b81526004016104e290611642565b6012546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611044573d6000803e3d6000fd5b5050565b80611055576110556110db565b611060848484611109565b80610da257610da2600f54600d55601054600e55565b6000806000611083611200565b90925090506110928282611099565b9250505090565b6000610e5f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061123e565b600d541580156110eb5750600e54155b156110f257565b600d8054600f55600e805460105560009182905555565b60008060008060008061111b8761126c565b6001600160a01b038f16600090815260026020526040902054959b5093995091975095509350915061114d90876112c9565b6001600160a01b03808b1660009081526002602052604080822093909355908a168152205461117c908661130b565b6001600160a01b03891660009081526002602052604090205561119e8161136a565b6111a884836113b4565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516111ed91815260200190565b60405180910390a3505050505050505050565b6006546000908190662386f26fc1000061121a8282611099565b82101561123557505060065492662386f26fc1000092509050565b90939092509050565b6000818361125f5760405162461bcd60e51b81526004016104e291906114fc565b506000610dd9848661177f565b60008060008060008060008060006112898a600d54600e546113d8565b9250925092506000611299611076565b905060008060006112ac8e87878761142d565b919e509c509a509598509396509194505050505091939550919395565b6000610e5f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610da8565b600080611318838561168d565b905083811015610e5f5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104e2565b6000611374611076565b90506000611382838361147d565b3060009081526002602052604090205490915061139f908261130b565b30600090815260026020526040902055505050565b6006546113c190836112c9565b6006556007546113d1908261130b565b6007555050565b60008080806113f260646113ec898961147d565b90611099565b9050600061140560646113ec8a8961147d565b9050600061141d826114178b866112c9565b906112c9565b9992985090965090945050505050565b600080808061143c888661147d565b9050600061144a888761147d565b90506000611458888861147d565b9050600061146a8261141786866112c9565b939b939a50919850919650505050505050565b60008261148c57506000610427565b600061149883856116a5565b9050826114a5858361177f565b14610e5f5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104e2565b600060208083528351808285015260005b818110156115295785810183015185820160400152820161150d565b8181111561153b576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461057357600080fd5b6000806040838503121561157957600080fd5b823561158481611551565b946020939093013593505050565b6000806000606084860312156115a757600080fd5b83356115b281611551565b925060208401356115c281611551565b929592945050506040919091013590565b6000602082840312156115e557600080fd5b8135610e5f81611551565b60006020828403121561160257600080fd5b5035919050565b6000806040838503121561161c57600080fd5b823561162781611551565b9150602083013561163781611551565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600082198211156116a0576116a0611677565b500190565b60008160001904831182151516156116bf576116bf611677565b500290565b6000828210156116d6576116d6611677565b500390565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561170357600080fd5b8151610e5f81611551565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561175e5784516001600160a01b031683529383019391830191600101611739565b50506001600160a01b03969096166060850152505050608001529392505050565b60008261179c57634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f211cbb482e81d2b95cda501d2ad6118f6130d6db153c85751f805fc647e570164736f6c634300080b0033

Deployed Bytecode

0x60806040526004361061012e5760003560e01c80637cec1c82116100ab57806396e074fc1161006f57806396e074fc14610346578063a9059cbb14610366578063ad7c68b214610386578063db05e5cb1461039b578063dd62ed3e146103b0578063f2fde38b146103f657600080fd5b80637cec1c82146102b05780637d1db4a5146102d05780638da5cb5b146102e65780638f9a55c01461030457806395d89b411461031a57600080fd5b80632fd689e3116100f25780632fd689e314610227578063313ce5671461023d57806349bd5a5e1461025957806370a0823114610279578063715018a61461029957600080fd5b806306fdde031461013a578063095ea7b31461017b5780631694505e146101ab57806318160ddd146101e357806323b872dd1461020757600080fd5b3661013557005b600080fd5b34801561014657600080fd5b50604080518082019091526006815265060f086c2e6d60d31b60208201525b60405161017291906114fc565b60405180910390f35b34801561018757600080fd5b5061019b610196366004611566565b610416565b6040519015158152602001610172565b3480156101b757600080fd5b506014546101cb906001600160a01b031681565b6040516001600160a01b039091168152602001610172565b3480156101ef57600080fd5b50662386f26fc100005b604051908152602001610172565b34801561021357600080fd5b5061019b610222366004611592565b61042d565b34801561023357600080fd5b506101f960185481565b34801561024957600080fd5b5060405160098152602001610172565b34801561026557600080fd5b506015546101cb906001600160a01b031681565b34801561028557600080fd5b506101f96102943660046115d3565b610496565b3480156102a557600080fd5b506102ae6104b8565b005b3480156102bc57600080fd5b506102ae6102cb3660046115f0565b610535565b3480156102dc57600080fd5b506101f960165481565b3480156102f257600080fd5b506000546001600160a01b03166101cb565b34801561031057600080fd5b506101f960175481565b34801561032657600080fd5b5060408051808201909152600381526230784360e81b6020820152610165565b34801561035257600080fd5b506102ae6103613660046115f0565b610576565b34801561037257600080fd5b5061019b610381366004611566565b6105b4565b34801561039257600080fd5b506102ae6105c1565b3480156103a757600080fd5b506102ae610653565b3480156103bc57600080fd5b506101f96103cb366004611609565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561040257600080fd5b506102ae6104113660046115d3565b610694565b600061042333848461077e565b5060015b92915050565b600061043a8484846108a2565b61048c8433610487856040518060600160405280602881526020016117a2602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190610da8565b61077e565b5060019392505050565b6001600160a01b03811660009081526002602052604081205461042790610de2565b6000546001600160a01b031633146104eb5760405162461bcd60e51b81526004016104e290611642565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b0316331461055f5760405162461bcd60e51b81526004016104e290611642565b600b819055600c5481111561057357600080fd5b50565b6000546001600160a01b031633146105a05760405162461bcd60e51b81526004016104e290611642565b6009819055600c5481111561057357600080fd5b60006104233384846108a2565b6000546001600160a01b031633146105eb5760405162461bcd60e51b81526004016104e290611642565b601554600160a01b900460ff161561063e5760405162461bcd60e51b815260206004820152601660248201527554726164696e6720616c72656164792061637469766560501b60448201526064016104e2565b6015805460ff60a01b1916600160a01b179055565b6000546001600160a01b0316331461067d5760405162461bcd60e51b81526004016104e290611642565b662386f26fc1000060168190556017556063600c55565b6000546001600160a01b031633146106be5760405162461bcd60e51b81526004016104e290611642565b6001600160a01b0381166107235760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104e2565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166107e05760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104e2565b6001600160a01b0382166108415760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104e2565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166109065760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104e2565b6001600160a01b0382166109685760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104e2565b600081116109ca5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104e2565b6000546001600160a01b038481169116148015906109f657506000546001600160a01b03838116911614155b15610c9b57601554600160a01b900460ff16610a8f576000546001600160a01b03848116911614610a8f5760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c65640060648201526084016104e2565b6015546001600160a01b03838116911614801590610abb57506013546001600160a01b03838116911614155b8015610ad557506011546001600160a01b03838116911614155b8015610aea57506001600160a01b0382163014155b15610bc657601654811115610b415760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d69740000000060448201526064016104e2565b6015546001600160a01b03838116911614610bc65760175481610b6384610496565b610b6d919061168d565b10610bc65760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b60648201526084016104e2565b6000610bd130610496565b6018549091508082101590610be79060026116a5565b50808015610bff5750601554600160a81b900460ff16155b8015610c1957506015546001600160a01b03868116911614155b8015610c2e5750601554600160b01b900460ff165b8015610c5357506001600160a01b03851660009081526005602052604090205460ff16155b8015610c7857506001600160a01b03841660009081526005602052604090205460ff16155b15610c9857610c8682610e66565b478015610c9657610c9681610fe0565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff1680610cdd57506001600160a01b03831660009081526005602052604090205460ff165b80610d0f57506015546001600160a01b03858116911614801590610d0f57506015546001600160a01b03848116911614155b15610d1c57506000610d96565b6015546001600160a01b038581169116148015610d4757506014546001600160a01b03848116911614155b15610d5957600854600d55600954600e555b6015546001600160a01b038481169116148015610d8457506014546001600160a01b03858116911614155b15610d9657600a54600d55600b54600e555b610da284848484611048565b50505050565b60008184841115610dcc5760405162461bcd60e51b81526004016104e291906114fc565b506000610dd984866116c4565b95945050505050565b6000600654821115610e495760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016104e2565b6000610e53611076565b9050610e5f8382611099565b9392505050565b6015805460ff60a81b1916600160a81b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110610eae57610eae6116db565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610f07573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2b91906116f1565b81600181518110610f3e57610f3e6116db565b6001600160a01b039283166020918202929092010152601454610f64913091168461077e565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac94790610f9d90859060009086903090429060040161170e565b600060405180830381600087803b158015610fb757600080fd5b505af1158015610fcb573d6000803e3d6000fd5b50506015805460ff60a81b1916905550505050565b6000546001600160a01b0316331461100a5760405162461bcd60e51b81526004016104e290611642565b6012546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611044573d6000803e3d6000fd5b5050565b80611055576110556110db565b611060848484611109565b80610da257610da2600f54600d55601054600e55565b6000806000611083611200565b90925090506110928282611099565b9250505090565b6000610e5f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061123e565b600d541580156110eb5750600e54155b156110f257565b600d8054600f55600e805460105560009182905555565b60008060008060008061111b8761126c565b6001600160a01b038f16600090815260026020526040902054959b5093995091975095509350915061114d90876112c9565b6001600160a01b03808b1660009081526002602052604080822093909355908a168152205461117c908661130b565b6001600160a01b03891660009081526002602052604090205561119e8161136a565b6111a884836113b4565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516111ed91815260200190565b60405180910390a3505050505050505050565b6006546000908190662386f26fc1000061121a8282611099565b82101561123557505060065492662386f26fc1000092509050565b90939092509050565b6000818361125f5760405162461bcd60e51b81526004016104e291906114fc565b506000610dd9848661177f565b60008060008060008060008060006112898a600d54600e546113d8565b9250925092506000611299611076565b905060008060006112ac8e87878761142d565b919e509c509a509598509396509194505050505091939550919395565b6000610e5f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610da8565b600080611318838561168d565b905083811015610e5f5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104e2565b6000611374611076565b90506000611382838361147d565b3060009081526002602052604090205490915061139f908261130b565b30600090815260026020526040902055505050565b6006546113c190836112c9565b6006556007546113d1908261130b565b6007555050565b60008080806113f260646113ec898961147d565b90611099565b9050600061140560646113ec8a8961147d565b9050600061141d826114178b866112c9565b906112c9565b9992985090965090945050505050565b600080808061143c888661147d565b9050600061144a888761147d565b90506000611458888861147d565b9050600061146a8261141786866112c9565b939b939a50919850919650505050505050565b60008261148c57506000610427565b600061149883856116a5565b9050826114a5858361177f565b14610e5f5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104e2565b600060208083528351808285015260005b818110156115295785810183015185820160400152820161150d565b8181111561153b576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461057357600080fd5b6000806040838503121561157957600080fd5b823561158481611551565b946020939093013593505050565b6000806000606084860312156115a757600080fd5b83356115b281611551565b925060208401356115c281611551565b929592945050506040919091013590565b6000602082840312156115e557600080fd5b8135610e5f81611551565b60006020828403121561160257600080fd5b5035919050565b6000806040838503121561161c57600080fd5b823561162781611551565b9150602083013561163781611551565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600082198211156116a0576116a0611677565b500190565b60008160001904831182151516156116bf576116bf611677565b500290565b6000828210156116d6576116d6611677565b500390565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561170357600080fd5b8151610e5f81611551565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561175e5784516001600160a01b031683529383019391830191600101611739565b50506001600160a01b03969096166060850152505050608001529392505050565b60008261179c57634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f211cbb482e81d2b95cda501d2ad6118f6130d6db153c85751f805fc647e570164736f6c634300080b0033

Deployed Bytecode Sourcemap

4520:12144:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6996:83;;;;;;;;;;-1:-1:-1;7066:5:0;;;;;;;;;;;;-1:-1:-1;;;7066:5:0;;;;6996:83;;;;;;;:::i;:::-;;;;;;;;7921:193;;;;;;;;;;-1:-1:-1;7921:193:0;;;;;:::i;:::-;;:::i;:::-;;;1237:14:1;;1230:22;1212:41;;1200:2;1185:18;7921:193:0;1072:187:1;5854:41:0;;;;;;;;;;-1:-1:-1;5854:41:0;;;;-1:-1:-1;;;;;5854:41:0;;;;;;-1:-1:-1;;;;;1454:32:1;;;1436:51;;1424:2;1409:18;5854:41:0;1264:229:1;7273:95:0;;;;;;;;;;-1:-1:-1;5063:16:0;7273:95;;;1644:25:1;;;1632:2;1617:18;7273:95:0;1498:177:1;8122:446:0;;;;;;;;;;-1:-1:-1;8122:446:0;;;;;:::i;:::-;;:::i;6146:50::-;;;;;;;;;;;;;;;;7182:83;;;;;;;;;;-1:-1:-1;7182:83:0;;4737:1;2283:36:1;;2271:2;2256:18;7182:83:0;2141:184:1;5902:28:0;;;;;;;;;;-1:-1:-1;5902:28:0;;;;-1:-1:-1;;;;;5902:28:0;;;7376:138;;;;;;;;;;-1:-1:-1;7376:138:0;;;;;:::i;:::-;;:::i;2007:148::-;;;;;;;;;;;;;:::i;:::-;;16507:152;;;;;;;;;;-1:-1:-1;16507:152:0;;;;;:::i;:::-;;:::i;6044:43::-;;;;;;;;;;;;;;;;1793:79;;;;;;;;;;-1:-1:-1;1831:7:0;1858:6;-1:-1:-1;;;;;1858:6:0;1793:79;;6094:45;;;;;;;;;;;;;;;;7087:87;;;;;;;;;;-1:-1:-1;7159:7:0;;;;;;;;;;;;-1:-1:-1;;;7159:7:0;;;;7087:87;;16352:147;;;;;;;;;;-1:-1:-1;16352:147:0;;;;;:::i;:::-;;:::i;7522:199::-;;;;;;;;;;-1:-1:-1;7522:199:0;;;;;:::i;:::-;;:::i;16204:140::-;;;;;;;;;;;;;:::i;14596:144::-;;;;;;;;;;;;;:::i;7729:184::-;;;;;;;;;;-1:-1:-1;7729:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;7878:18:0;;;7846:7;7878:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7729:184;2163:244;;;;;;;;;;-1:-1:-1;2163:244:0;;;;;:::i;:::-;;:::i;7921:193::-;8023:4;8045:39;644:10;8068:7;8077:6;8045:8;:39::i;:::-;-1:-1:-1;8102:4:0;7921:193;;;;;:::o;8122:446::-;8254:4;8271:36;8281:6;8289:9;8300:6;8271:9;:36::i;:::-;8318:220;8341:6;644:10;8389:138;8445:6;8389:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8389:19:0;;;;;;:11;:19;;;;;;;;644:10;8389:33;;;;;;;;;;:37;:138::i;:::-;8318:8;:220::i;:::-;-1:-1:-1;8556:4:0;8122:446;;;;;:::o;7376:138::-;-1:-1:-1;;;;;7489:16:0;;7442:7;7489:16;;;:7;:16;;;;;;7469:37;;:19;:37::i;2007:148::-;1920:6;;-1:-1:-1;;;;;1920:6:0;644:10;1920:22;1912:67;;;;-1:-1:-1;;;1912:67:0;;;;;;;:::i;:::-;;;;;;;;;2114:1:::1;2098:6:::0;;2077:40:::1;::::0;-1:-1:-1;;;;;2098:6:0;;::::1;::::0;2077:40:::1;::::0;2114:1;;2077:40:::1;2145:1;2128:19:::0;;-1:-1:-1;;;;;;2128:19:0::1;::::0;;2007:148::o;16507:152::-;1920:6;;-1:-1:-1;;;;;1920:6:0;644:10;1920:22;1912:67;;;;-1:-1:-1;;;1912:67:0;;;;;;;:::i;:::-;16577:13:::1;:28:::0;;;16642:8:::1;::::0;16625:25;::::1;;16616:35;;;::::0;::::1;;16507:152:::0;:::o;16352:147::-;1920:6;;-1:-1:-1;;;;;1920:6:0;644:10;1920:22;1912:67;;;;-1:-1:-1;;;1912:67:0;;;;;;;:::i;:::-;16420:12:::1;:26:::0;;;16482:8:::1;::::0;16466:24;::::1;;16457:34;;;::::0;::::1;7522:199:::0;7627:4;7649:42;644:10;7673:9;7684:6;7649:9;:42::i;16204:140::-;1920:6;;-1:-1:-1;;;;;1920:6:0;644:10;1920:22;1912:67;;;;-1:-1:-1;;;1912:67:0;;;;;;;:::i;:::-;16269:11:::1;::::0;-1:-1:-1;;;16269:11:0;::::1;;;16268:12;16260:47;;;::::0;-1:-1:-1;;;16260:47:0;;3931:2:1;16260:47:0::1;::::0;::::1;3913:21:1::0;3970:2;3950:18;;;3943:30;-1:-1:-1;;;3989:18:1;;;3982:52;4051:18;;16260:47:0::1;3729:346:1::0;16260:47:0::1;16318:11;:18:::0;;-1:-1:-1;;;;16318:18:0::1;-1:-1:-1::0;;;16318:18:0::1;::::0;;16204:140::o;14596:144::-;1920:6;;-1:-1:-1;;;;;1920:6:0;644:10;1920:22;1912:67;;;;-1:-1:-1;;;1912:67:0;;;;;;;:::i;:::-;5063:16:::1;14651:12;:22:::0;;;14684:14:::1;:24:::0;14730:2:::1;14719:8;:13:::0;14596:144::o;2163:244::-;1920:6;;-1:-1:-1;;;;;1920:6:0;644:10;1920:22;1912:67;;;;-1:-1:-1;;;1912:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2252:22:0;::::1;2244:73;;;::::0;-1:-1:-1;;;2244:73:0;;4282:2:1;2244:73:0::1;::::0;::::1;4264:21:1::0;4321:2;4301:18;;;4294:30;4360:34;4340:18;;;4333:62;-1:-1:-1;;;4411:18:1;;;4404:36;4457:19;;2244:73:0::1;4080:402:1::0;2244:73:0::1;2354:6;::::0;;2333:38:::1;::::0;-1:-1:-1;;;;;2333:38:0;;::::1;::::0;2354:6;::::1;::::0;2333:38:::1;::::0;::::1;2382:6;:17:::0;;-1:-1:-1;;;;;;2382:17:0::1;-1:-1:-1::0;;;;;2382:17:0;;;::::1;::::0;;;::::1;::::0;;2163:244::o;9259:369::-;-1:-1:-1;;;;;9386:19:0;;9378:68;;;;-1:-1:-1;;;9378:68:0;;4689:2:1;9378:68:0;;;4671:21:1;4728:2;4708:18;;;4701:30;4767:34;4747:18;;;4740:62;-1:-1:-1;;;4818:18:1;;;4811:34;4862:19;;9378:68:0;4487:400:1;9378:68:0;-1:-1:-1;;;;;9465:21:0;;9457:68;;;;-1:-1:-1;;;9457:68:0;;5094:2:1;9457:68:0;;;5076:21:1;5133:2;5113:18;;;5106:30;5172:34;5152:18;;;5145:62;-1:-1:-1;;;5223:18:1;;;5216:32;5265:19;;9457:68:0;4892:398:1;9457:68:0;-1:-1:-1;;;;;9536:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9588:32;;1644:25:1;;;9588:32:0;;1617:18:1;9588:32:0;;;;;;;9259:369;;;:::o;9636:2402::-;-1:-1:-1;;;;;9758:18:0;;9750:68;;;;-1:-1:-1;;;9750:68:0;;5497:2:1;9750:68:0;;;5479:21:1;5536:2;5516:18;;;5509:30;5575:34;5555:18;;;5548:62;-1:-1:-1;;;5626:18:1;;;5619:35;5671:19;;9750:68:0;5295:401:1;9750:68:0;-1:-1:-1;;;;;9837:16:0;;9829:64;;;;-1:-1:-1;;;9829:64:0;;5903:2:1;9829:64:0;;;5885:21:1;5942:2;5922:18;;;5915:30;5981:34;5961:18;;;5954:62;-1:-1:-1;;;6032:18:1;;;6025:33;6075:19;;9829:64:0;5701:399:1;9829:64:0;9921:1;9912:6;:10;9904:64;;;;-1:-1:-1;;;9904:64:0;;6307:2:1;9904:64:0;;;6289:21:1;6346:2;6326:18;;;6319:30;6385:34;6365:18;;;6358:62;-1:-1:-1;;;6436:18:1;;;6429:39;6485:19;;9904:64:0;6105:405:1;9904:64:0;1831:7;1858:6;-1:-1:-1;;;;;9985:15:0;;;1858:6;;9985:15;;;;:32;;-1:-1:-1;1831:7:0;1858:6;-1:-1:-1;;;;;10004:13:0;;;1858:6;;10004:13;;9985:32;9981:1331;;;10074:11;;-1:-1:-1;;;10074:11:0;;;;10069:144;;1831:7;1858:6;-1:-1:-1;;;;;10114:15:0;;;1858:6;;10114:15;10106:91;;;;-1:-1:-1;;;10106:91:0;;6717:2:1;10106:91:0;;;6699:21:1;6756:2;6736:18;;;6729:30;6795:34;6775:18;;;6768:62;6866:33;6846:18;;;6839:61;6917:19;;10106:91:0;6515:427:1;10106:91:0;10238:13;;-1:-1:-1;;;;;10232:19:0;;;10238:13;;10232:19;;;;:42;;-1:-1:-1;10261:13:0;;-1:-1:-1;;;;;10255:19:0;;;10261:13;;10255:19;;10232:42;:71;;;;-1:-1:-1;10284:19:0;;-1:-1:-1;;;;;10278:25:0;;;10284:19;;10278:25;;10232:71;:94;;;;-1:-1:-1;;;;;;10307:19:0;;10321:4;10307:19;;10232:94;10229:371;;;10365:12;;10355:6;:22;;10347:63;;;;-1:-1:-1;;;10347:63:0;;7149:2:1;10347:63:0;;;7131:21:1;7188:2;7168:18;;;7161:30;7227;7207:18;;;7200:58;7275:18;;10347:63:0;6947:352:1;10347:63:0;10438:13;;-1:-1:-1;;;;;10432:19:0;;;10438:13;;10432:19;10429:154;;10509:14;;10500:6;10484:13;10494:2;10484:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10476:87;;;;-1:-1:-1;;;10476:87:0;;7771:2:1;10476:87:0;;;7753:21:1;7810:2;7790:18;;;7783:30;7849:34;7829:18;;;7822:62;-1:-1:-1;;;7900:18:1;;;7893:33;7943:19;;10476:87:0;7569:399:1;10476:87:0;10616:28;10647:24;10665:4;10647:9;:24::i;:::-;10725:19;;10616:55;;-1:-1:-1;10701:43:0;;;;;10788:21;;10808:1;10788:21;:::i;:::-;10764:45;10922:7;:18;;;;-1:-1:-1;10934:6:0;;-1:-1:-1;;;10934:6:0;;;;10933:7;10922:18;:43;;;;-1:-1:-1;10952:13:0;;-1:-1:-1;;;;;10944:21:0;;;10952:13;;10944:21;;10922:43;:58;;;;-1:-1:-1;10969:11:0;;-1:-1:-1;;;10969:11:0;;;;10922:58;:87;;;;-1:-1:-1;;;;;;10985:24:0;;;;;;:18;:24;;;;;;;;10984:25;10922:87;:114;;;;-1:-1:-1;;;;;;11014:22:0;;;;;;:18;:22;;;;;;;;11013:23;10922:114;10918:383;;;11057:38;11074:20;11057:16;:38::i;:::-;11143:21;11187:22;;11183:103;;11234:32;11247:18;11234:12;:32::i;:::-;11038:263;10918:383;10019:1293;;9981:1331;-1:-1:-1;;;;;11388:24:0;;11324:12;11388:24;;;:18;:24;;;;;;11339:4;;11388:24;;;:50;;-1:-1:-1;;;;;;11416:22:0;;;;;;:18;:22;;;;;;;;11388:50;11387:102;;;-1:-1:-1;11452:13:0;;-1:-1:-1;;;;;11444:21:0;;;11452:13;;11444:21;;;;:44;;-1:-1:-1;11475:13:0;;-1:-1:-1;;;;;11469:19:0;;;11475:13;;11469:19;;11444:44;11383:594;;;-1:-1:-1;11516:5:0;11383:594;;;11599:13;;-1:-1:-1;;;;;11591:21:0;;;11599:13;;11591:21;:55;;;;-1:-1:-1;11630:15:0;;-1:-1:-1;;;;;11616:30:0;;;11630:15;;11616:30;;11591:55;11588:162;;;11679:14;;11667:9;:26;11722:12;;11712:7;:22;11588:162;11809:13;;-1:-1:-1;;;;;11803:19:0;;;11809:13;;11803:19;:55;;;;-1:-1:-1;11842:15:0;;-1:-1:-1;;;;;11826:32:0;;;11842:15;;11826:32;;11803:55;11799:165;;;11891:15;;11879:9;:27;11935:13;;11925:7;:23;11799:165;11989:41;12004:4;12010:2;12014:6;12022:7;11989:14;:41::i;:::-;9739:2299;9636:2402;;;:::o;2771:224::-;2891:7;2927:12;2919:6;;;;2911:29;;;;-1:-1:-1;;;2911:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2951:9:0;2963:5;2967:1;2963;:5;:::i;:::-;2951:17;2771:224;-1:-1:-1;;;;;2771:224:0:o;8576:323::-;8671:7;8729;;8718;:18;;8696:110;;;;-1:-1:-1;;;8696:110:0;;8478:2:1;8696:110:0;;;8460:21:1;8517:2;8497:18;;;8490:30;8556:34;8536:18;;;8529:62;-1:-1:-1;;;8607:18:1;;;8600:40;8657:19;;8696:110:0;8276:406:1;8696:110:0;8817:19;8839:10;:8;:10::i;:::-;8817:32;-1:-1:-1;8867:24:0;:7;8817:32;8867:11;:24::i;:::-;8860:31;8576:323;-1:-1:-1;;;8576:323:0:o;12046:483::-;6290:6;:13;;-1:-1:-1;;;;6290:13:0;-1:-1:-1;;;6290:13:0;;;12148:16:::1;::::0;;12162:1:::1;12148:16:::0;;;;;::::1;::::0;;-1:-1:-1;;12148:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12148:16:0::1;12124:40;;12193:4;12175;12180:1;12175:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12175:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12219:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;12219:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;12175:7;;12219:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12209:4;12214:1;12209:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12209:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;12284:15:::1;::::0;12252:62:::1;::::0;12269:4:::1;::::0;12284:15:::1;12302:11:::0;12252:8:::1;:62::i;:::-;12325:15;::::0;:196:::1;::::0;-1:-1:-1;;;12325:196:0;;-1:-1:-1;;;;;12325:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12406:11;;12325:15:::1;::::0;12448:4;;12475::::1;::::0;12495:15:::1;::::0;12325:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6326:6:0;:14;;-1:-1:-1;;;;6326:14:0;;;-1:-1:-1;;;;12046:483:0:o;12537:109::-;1920:6;;-1:-1:-1;;;;;1920:6:0;644:10;1920:22;1912:67;;;;-1:-1:-1;;;1912:67:0;;;;;;;:::i;:::-;12604:17:::1;::::0;:34:::1;::::0;-1:-1:-1;;;;;12604:17:0;;::::1;::::0;:34;::::1;;;::::0;12631:6;;12604:17:::1;:34:::0;:17;:34;12631:6;12604:17;:34;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;12537:109:::0;:::o;12654:282::-;12810:7;12805:28;;12819:14;:12;:14::i;:::-;12844:44;12862:6;12870:9;12881:6;12844:17;:44::i;:::-;12904:7;12899:29;;12913:15;9190:17;;9178:9;:29;9228:15;;9218:7;:25;9134:117;15767:164;15809:7;15830:15;15847;15866:19;:17;:19::i;:::-;15829:56;;-1:-1:-1;15829:56:0;-1:-1:-1;15903:20:0;15829:56;;15903:11;:20::i;:::-;15896:27;;;;15767:164;:::o;3257:132::-;3315:7;3342:39;3346:1;3349;3342:39;;;;;;;;;;;;;;;;;:3;:39::i;8907:219::-;8954:9;;:14;:30;;;;-1:-1:-1;8972:7:0;;:12;8954:30;8950:43;;;8907:219::o;8950:43::-;9025:9;;;9005:17;:29;9063:7;;;9045:15;:25;-1:-1:-1;9083:13:0;;;;9107:11;8907:219::o;12944:610::-;13091:15;13121:23;13159:12;13186:23;13224:12;13251:13;13278:19;13289:7;13278:10;:19::i;:::-;-1:-1:-1;;;;;13326:15:0;;;;;;:7;:15;;;;;;13076:221;;-1:-1:-1;13076:221:0;;-1:-1:-1;13076:221:0;;-1:-1:-1;13076:221:0;-1:-1:-1;13076:221:0;-1:-1:-1;13076:221:0;-1:-1:-1;13326:28:0;;13076:221;13326:19;:28::i;:::-;-1:-1:-1;;;;;13308:15:0;;;;;;;:7;:15;;;;;;:46;;;;13386:18;;;;;;;:39;;13409:15;13386:22;:39::i;:::-;-1:-1:-1;;;;;13365:18:0;;;;;;:7;:18;;;;;:60;13436:16;13446:5;13436:9;:16::i;:::-;13463:23;13475:4;13481;13463:11;:23::i;:::-;13519:9;-1:-1:-1;;;;;13502:44:0;13511:6;-1:-1:-1;;;;;13502:44:0;;13530:15;13502:44;;;;1644:25:1;;1632:2;1617:18;;1498:177;13502:44:0;;;;;;;;13065:489;;;;;;12944:610;;;:::o;15939:257::-;16037:7;;15990;;;;5063:16;16105:20;16037:7;5063:16;16105:11;:20::i;:::-;16095:7;:30;16091:61;;;-1:-1:-1;;16135:7:0;;;5063:16;;-1:-1:-1;15939:257:0;-1:-1:-1;15939:257:0:o;16091:61::-;16171:7;;16180;;-1:-1:-1;15939:257:0;-1:-1:-1;15939:257:0:o;3397:223::-;3517:7;3552:12;3545:5;3537:28;;;;-1:-1:-1;;;3537:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3576:9:0;3588:5;3592:1;3588;:5;:::i;13973:615::-;14073:7;14095;14117;14139;14161;14183;14219:23;14244:12;14258:13;14288:40;14300:7;14309:9;;14320:7;;14288:11;:40::i;:::-;14218:110;;;;;;14339:19;14361:10;:8;:10::i;:::-;14339:32;;14383:15;14400:23;14425:12;14454:46;14466:7;14475:4;14481:5;14488:11;14454;:46::i;:::-;14382:118;;-1:-1:-1;14382:118:0;-1:-1:-1;14382:118:0;-1:-1:-1;14551:15:0;;-1:-1:-1;14568:4:0;;-1:-1:-1;14574:5:0;;-1:-1:-1;;;;;13973:615:0;;;;;;;:::o;2627:136::-;2685:7;2712:43;2716:1;2719;2712:43;;;;;;;;;;;;;;;;;:3;:43::i;2440:179::-;2498:7;;2530:5;2534:1;2530;:5;:::i;:::-;2518:17;;2559:1;2554;:6;;2546:46;;;;-1:-1:-1;;;2546:46:0;;10616:2:1;2546:46:0;;;10598:21:1;10655:2;10635:18;;;10628:30;10694:29;10674:18;;;10667:57;10741:18;;2546:46:0;10414:351:1;13562:211:0;13615:19;13637:10;:8;:10::i;:::-;13615:32;-1:-1:-1;13658:13:0;13674:22;:5;13615:32;13674:9;:22::i;:::-;13748:4;13732:22;;;;:7;:22;;;;;;13658:38;;-1:-1:-1;13732:33:0;;13658:38;13732:26;:33::i;:::-;13723:4;13707:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;13562:211:0:o;13781:147::-;13859:7;;:17;;13871:4;13859:11;:17::i;:::-;13849:7;:27;13900:10;;:20;;13915:4;13900:14;:20::i;:::-;13887:10;:33;-1:-1:-1;;13781:147:0:o;14748:469::-;14917:7;;;;15011:30;15037:3;15011:21;:7;15023:8;15011:11;:21::i;:::-;:25;;:30::i;:::-;14996:45;-1:-1:-1;15052:13:0;15068:28;15092:3;15068:19;:7;15080:6;15068:11;:19::i;:28::-;15052:44;-1:-1:-1;15107:23:0;15133:28;15052:44;15133:17;:7;15145:4;15133:11;:17::i;:::-;:21;;:28::i;:::-;15107:54;15197:4;;-1:-1:-1;15203:5:0;;-1:-1:-1;14748:469:0;;-1:-1:-1;;;;;14748:469:0:o;15225:534::-;15419:7;;;;15516:24;:7;15528:11;15516;:24::i;:::-;15498:42;-1:-1:-1;15551:12:0;15566:21;:4;15575:11;15566:8;:21::i;:::-;15551:36;-1:-1:-1;15598:13:0;15614:22;:5;15624:11;15614:9;:22::i;:::-;15598:38;-1:-1:-1;15647:23:0;15673:28;15598:38;15673:17;:7;15685:4;15673:11;:17::i;:28::-;15720:7;;;;-1:-1:-1;15746:4:0;;-1:-1:-1;15225:534:0;;-1:-1:-1;;;;;;;15225:534:0:o;3003:246::-;3061:7;3085:6;3081:47;;-1:-1:-1;3115:1:0;3108:8;;3081:47;3138:9;3150:5;3154:1;3150;:5;:::i;:::-;3138:17;-1:-1:-1;3183:1:0;3174:5;3178:1;3138:17;3174:5;:::i;:::-;:10;3166:56;;;;-1:-1:-1;;;3166:56:0;;10972:2:1;3166:56:0;;;10954:21:1;11011:2;10991:18;;;10984:30;11050:34;11030:18;;;11023:62;-1:-1:-1;;;11101:18:1;;;11094:31;11142:19;;3166:56:0;10770:397:1;14:597;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;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:131::-;-1:-1:-1;;;;;691:31:1;;681:42;;671:70;;737:1;734;727:12;752:315;820:6;828;881:2;869:9;860:7;856:23;852:32;849:52;;;897:1;894;887:12;849:52;936:9;923:23;955:31;980:5;955:31;:::i;:::-;1005:5;1057:2;1042:18;;;;1029:32;;-1:-1:-1;;;752:315:1:o;1680:456::-;1757:6;1765;1773;1826:2;1814:9;1805:7;1801:23;1797:32;1794:52;;;1842:1;1839;1832:12;1794:52;1881:9;1868:23;1900:31;1925:5;1900:31;:::i;:::-;1950:5;-1:-1:-1;2007:2:1;1992:18;;1979:32;2020:33;1979:32;2020:33;:::i;:::-;1680:456;;2072:7;;-1:-1:-1;;;2126:2:1;2111:18;;;;2098:32;;1680:456::o;2538:247::-;2597:6;2650:2;2638:9;2629:7;2625:23;2621:32;2618:52;;;2666:1;2663;2656:12;2618:52;2705:9;2692:23;2724:31;2749:5;2724:31;:::i;2790:180::-;2849:6;2902:2;2890:9;2881:7;2877:23;2873:32;2870:52;;;2918:1;2915;2908:12;2870:52;-1:-1:-1;2941:23:1;;2790:180;-1:-1:-1;2790:180:1:o;2975:388::-;3043:6;3051;3104:2;3092:9;3083:7;3079:23;3075:32;3072:52;;;3120:1;3117;3110:12;3072:52;3159:9;3146:23;3178:31;3203:5;3178:31;:::i;:::-;3228:5;-1:-1:-1;3285:2:1;3270:18;;3257:32;3298:33;3257:32;3298:33;:::i;:::-;3350:7;3340:17;;;2975:388;;;;;:::o;3368:356::-;3570:2;3552:21;;;3589:18;;;3582:30;3648:34;3643:2;3628:18;;3621:62;3715:2;3700:18;;3368:356::o;7304:127::-;7365:10;7360:3;7356:20;7353:1;7346:31;7396:4;7393:1;7386:15;7420:4;7417:1;7410:15;7436:128;7476:3;7507:1;7503:6;7500:1;7497:13;7494:39;;;7513:18;;:::i;:::-;-1:-1:-1;7549:9:1;;7436:128::o;7973:168::-;8013:7;8079:1;8075;8071:6;8067:14;8064:1;8061:21;8056:1;8049:9;8042:17;8038:45;8035:71;;;8086:18;;:::i;:::-;-1:-1:-1;8126:9:1;;7973:168::o;8146:125::-;8186:4;8214:1;8211;8208:8;8205:34;;;8219:18;;:::i;:::-;-1:-1:-1;8256:9:1;;8146:125::o;8819:127::-;8880:10;8875:3;8871:20;8868:1;8861:31;8911:4;8908:1;8901:15;8935:4;8932:1;8925:15;8951:251;9021:6;9074:2;9062:9;9053:7;9049:23;9045:32;9042:52;;;9090:1;9087;9080:12;9042:52;9122:9;9116:16;9141:31;9166:5;9141:31;:::i;9207:980::-;9469:4;9517:3;9506:9;9502:19;9548:6;9537:9;9530:25;9574:2;9612:6;9607:2;9596:9;9592:18;9585:34;9655:3;9650:2;9639:9;9635:18;9628:31;9679:6;9714;9708:13;9745:6;9737;9730:22;9783:3;9772:9;9768:19;9761:26;;9822:2;9814:6;9810:15;9796:29;;9843:1;9853:195;9867:6;9864:1;9861:13;9853:195;;;9932:13;;-1:-1:-1;;;;;9928:39:1;9916:52;;10023:15;;;;9988:12;;;;9964:1;9882:9;9853:195;;;-1:-1:-1;;;;;;;10104:32:1;;;;10099:2;10084:18;;10077:60;-1:-1:-1;;;10168:3:1;10153:19;10146:35;10065:3;9207:980;-1:-1:-1;;;9207:980:1:o;10192:217::-;10232:1;10258;10248:132;;10302:10;10297:3;10293:20;10290:1;10283:31;10337:4;10334:1;10327:15;10365:4;10362:1;10355:15;10248:132;-1:-1:-1;10394:9:1;;10192:217::o

Swarm Source

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