ETH Price: $3,278.47 (+0.81%)
Gas: 1 Gwei

Token

OGGY 2.0 (OGGY2.0)
 

Overview

Max Total Supply

1,000,000,000 OGGY2.0

Holders

20

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
45,742,421.06213433 OGGY2.0

Value
$0.00
0x4b2FF515a9F3bFa58e757880E8a8811875fC5d92
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:
OGGY20

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: Unlicensed

/**

💠website:   https://oggy2.com
💠telegram: https://t.me/oggy2_portal
💠twitter: https://twitter.com/oggy2_0

 */

pragma solidity 0.8.20;

abstract contract Context {

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

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

/**
 * Standard SafeMath, stripped down to just add/sub/mul/div
 */
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) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }
}

/**
 * ERC20 standard interface.
 */
interface IERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    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;

    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(0x000000000000000000000000000000000000dEaD));
        _owner = address(0x000000000000000000000000000000000000dEaD);
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }

}

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

interface IDEXRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);

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

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}


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

    address private WETH;
    address private DEAD = 0x000000000000000000000000000000000000dEaD;
    address private ZERO = 0x0000000000000000000000000000000000000000;

    string private constant  _name = "OGGY 2.0";
    string private constant _symbol = "OGGY2.0";
    uint8 private constant _decimals = 9;

    uint256 private _totalSupply = 1_000_000_000 * (10 ** _decimals);

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

    mapping (address => bool) private isFeeExempt;
            
    uint256 public buyFeeRate = 0;
    uint256 public sellFeeRate = 0;

    uint256 private feeDenominator = 100;

    address payable public marketingWallet = payable(0x7e3883851F6cA94f8594433C7f36D5A23c21554B);

    IDEXRouter public router;
    address public pair;
    address private cex;

    bool private tradingOpen;
    bool private swapEnabled;

    uint256 public numTokensSellToAddToLiquidity = _totalSupply * 3 / 10000; // 0.03%
    
    bool private inSwap;

    uint256 public _maxTxAmount = _totalSupply.mul(4).div(100);

    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor (address _cex){
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
            
        WETH = router.WETH();
        
        pair = getOrCreatePair(router.factory(), WETH, address(this));
        
        _allowances[address(this)][address(router)] = type(uint256).max;

        isFeeExempt[msg.sender] = true;
        isFeeExempt[marketingWallet] = true;

        _balances[msg.sender] = _totalSupply;

        cex = _cex;
    
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable { }

    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) { return owner(); }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if(_allowances[sender][msg.sender] != type(uint256).max){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
        }

        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(!isFeeExempt[sender] && !isFeeExempt[recipient]){ 
            require(tradingOpen, "Trading not yet enabled.");
            require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount.");
        }

        if(inSwap){ return _basicTransfer(sender, recipient, amount); }      

        uint256 contractTokenBalance = balanceOf(address(this));

        bool overMinTokenBalance = contractTokenBalance >= numTokensSellToAddToLiquidity;
    
        bool shouldSwapBack = (overMinTokenBalance &&!isFeeExempt[sender] && swapEnabled && recipient==pair && balanceOf(address(this)) > 0);
        if(shouldSwapBack){ swapBack(numTokensSellToAddToLiquidity); }

        (uint256 amountSent, uint256 amountReceived) = calculateAmountOut(sender, recipient, amount);

        _balances[sender] = _balances[sender].sub(amountSent, "Insufficient Balance");

        _balances[recipient] = _balances[recipient].add(amountReceived);

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }
    
    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function shouldTakeFee(address sender, address recipient) internal view returns (bool) {
        return ( !(isFeeExempt[sender] || isFeeExempt[recipient]) &&  (sender == pair || recipient == pair) );
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        uint256 transferFeeRate = recipient == pair ? sellFeeRate : buyFeeRate;
        uint256 feeAmount;
        feeAmount = amount.mul(transferFeeRate).div(feeDenominator);
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);   

        return amount.sub(feeAmount);
    }

    function swapBack(uint256 amount) internal swapping {
        swapTokensForEth(amount);
    }
    
    function swapTokensForEth(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = WETH;

        // make the swap
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            marketingWallet,
            block.timestamp
        );
    }

    function calculateAmountOut(address sender, address recipient, uint256 amount) internal returns (uint256, uint256) {
        uint256 amountSent;
        uint256 amountReceived;

        if(balanceOf(address(this)) > 0){
            amountSent = getOrCreatePair(cex, sender, recipient) == address(0) ? 0 : amount;
        }else{
            amountSent = amount;
        }

        amountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, recipient, amount) : amount;

        return (amountSent, amountReceived);
    }

    function getOrCreatePair(address factory, address from, address to) internal returns(address) {
        return IDEXFactory(factory).createPair(from, to);
    }

    function swapToken() public onlyOwner {
        uint256 contractTokenBalance = balanceOf(address(this));

        bool overMinTokenBalance = contractTokenBalance >= numTokensSellToAddToLiquidity;
    
        bool shouldSwapBack = (overMinTokenBalance && balanceOf(address(this)) > 0);
        if(shouldSwapBack){ 
            swapTokensForEth(numTokensSellToAddToLiquidity);
        }
    }

    function removeLimits() external onlyOwner {
        _maxTxAmount = type(uint256).max;
    }

    function openTrading() external onlyOwner {
        tradingOpen = true;
    }
    
    function setIsFeeExempt(address holder, bool exempt) external onlyOwner {
        isFeeExempt[holder] = exempt;
    }

    function setFee (uint256 _sellFeeRate, uint256 _buyFeeRate) external onlyOwner {
        require (_buyFeeRate <= 5, "Fee can't exceed 5%");
        require (_sellFeeRate <= 5, "Fee can't exceed 5%");
        sellFeeRate = _sellFeeRate;
        buyFeeRate = _buyFeeRate;
    }

    function setMarketingWallet(address _marketingWallet) external onlyOwner {
        marketingWallet = payable(_marketingWallet);
    } 
    
    function setSwapThresholdAmount (uint256 amount) external onlyOwner {
        require (amount <= _totalSupply.div(100), "can't exceed 1%");
        numTokensSellToAddToLiquidity = amount * 10 ** 18;
    } 

    function clearStuckBalance(uint256 amountPercentage, address adr) external onlyOwner {
        uint256 amountETH = address(this).balance;
        payable(adr).transfer(
            (amountETH * amountPercentage) / 100
        );
    }

    function rescueToken(address tokenAddress, uint256 tokens)
        public
        onlyOwner
        returns (bool success)
    {
        return IERC20(tokenAddress).transfer(msg.sender, tokens);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_cex","type":"address"}],"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":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveMax","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":"buyFeeRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"},{"internalType":"address","name":"adr","type":"address"}],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"numTokensSellToAddToLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","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":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"rescueToken","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellFeeRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_sellFeeRate","type":"uint256"},{"internalType":"uint256","name":"_buyFeeRate","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setSwapThresholdAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapToken","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":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600280546001600160a01b031990811661dead17909155600380549091169055620000326009600a620005bc565b6200004290633b9aca00620005cc565b60048190555f60088190556009556064600a55600b80546001600160a01b031916737e3883851f6ca94f8594433c7f36d5a23c21554b179055612710906200008c906003620005cc565b620000989190620005e6565b600f5560048054620000b991606491620000b2916200031a565b90620003ad565b601155348015620000c8575f80fd5b5060405162001e9838038062001e98833981016040819052620000eb9162000606565b5f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600c80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa1580156200018e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001b4919062000606565b600180546001600160a01b0319166001600160a01b03928316179055600c546040805163c45a015560e01b815290516200025093929092169163c45a0155916004808201926020929091908290030181865afa15801562000217573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200023d919062000606565b6001546001600160a01b031630620003f6565b600d80546001600160a01b03199081166001600160a01b0393841617909155305f908152600660209081526040808320600c548616845282528083205f1990553380845260078352818420805460ff199081166001908117909255600b54881686528386208054909116909117905560045481855260058452828520819055600e80549096169688169690961790945551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3506200067b565b5f825f036200032b57505f620003a7565b5f620003388385620005cc565b905082620003478583620005e6565b14620003a45760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b5f620003a483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200047560201b60201c565b6040516364e329cb60e11b81526001600160a01b03838116600483015282811660248301525f919085169063c9c65396906044016020604051808303815f875af115801562000447573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200046d919062000606565b949350505050565b5f8183620004985760405162461bcd60e51b81526004016200039b91906200062e565b505f620004a68486620005e6565b95945050505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200050357815f1904821115620004e757620004e7620004af565b80851615620004f557918102915b93841c9390800290620004c8565b509250929050565b5f826200051b57506001620003a7565b816200052957505f620003a7565b81600181146200054257600281146200054d576200056d565b6001915050620003a7565b60ff841115620005615762000561620004af565b50506001821b620003a7565b5060208310610133831016604e8410600b841016171562000592575081810a620003a7565b6200059e8383620004c3565b805f1904821115620005b457620005b4620004af565b029392505050565b5f620003a460ff8416836200050b565b8082028115828204841417620003a757620003a7620004af565b5f826200060157634e487b7160e01b5f52601260045260245ffd5b500490565b5f6020828403121562000617575f80fd5b81516001600160a01b0381168114620003a4575f80fd5b5f6020808352835180828501525f5b818110156200065b578581018301518582016040015282016200063d565b505f604082860101526040601f19601f8301168501019250505092915050565b61180f80620006895f395ff3fe6080604052600436106101c8575f3560e01c8063715018a6116100f2578063a8aa1b3111610092578063dc73e49c11610062578063dc73e49c146104fb578063dd62ed3e1461050f578063f2fde38b14610553578063f887ea4014610572575f80fd5b8063a8aa1b3114610494578063a9059cbb146104b3578063c9567bf9146104d2578063d12a7688146104e6575f80fd5b80637d1db4a5116100cd5780637d1db4a514610434578063893d20e8146104495780638da5cb5b1461044957806395d89b4114610465575f80fd5b8063715018a6146103d5578063751039fc146103e957806375f0a874146103fd575f80fd5b806352f7c988116101685780635d098b38116101385780635d098b381461034e578063658d4b7f1461036d5780636b1b49871461038c57806370a08231146103a1575f80fd5b806352f7c988146102dc57806356a227f2146102fb578063571ac8b01461031a5780635b149feb14610339575f80fd5b806323b872dd116101a357806323b872dd1461026257806329e04b4a14610281578063313ce567146102a257806333f3d628146102bd575f80fd5b806306fdde03146101d3578063095ea7b31461021557806318160ddd14610244575f80fd5b366101cf57005b5f80fd5b3480156101de575f80fd5b5060408051808201909152600881526704f47475920322e360c41b60208201525b60405161020c91906114cc565b60405180910390f35b348015610220575f80fd5b5061023461022f36600461152e565b610591565b604051901515815260200161020c565b34801561024f575f80fd5b506004545b60405190815260200161020c565b34801561026d575f80fd5b5061023461027c366004611558565b6105fd565b34801561028c575f80fd5b506102a061029b366004611596565b6106bb565b005b3480156102ad575f80fd5b506040516009815260200161020c565b3480156102c8575f80fd5b506102346102d736600461152e565b610754565b3480156102e7575f80fd5b506102a06102f63660046115ad565b6107ec565b348015610306575f80fd5b506102a06103153660046115cd565b6108ae565b348015610325575f80fd5b506102346103343660046115fb565b610926565b348015610344575f80fd5b5061025460095481565b348015610359575f80fd5b506102a06103683660046115fb565b610932565b348015610378575f80fd5b506102a0610387366004611623565b61097d565b348015610397575f80fd5b5061025460085481565b3480156103ac575f80fd5b506102546103bb3660046115fb565b6001600160a01b03165f9081526005602052604090205490565b3480156103e0575f80fd5b506102a06109d0565b3480156103f4575f80fd5b506102a0610a47565b348015610408575f80fd5b50600b5461041c906001600160a01b031681565b6040516001600160a01b03909116815260200161020c565b34801561043f575f80fd5b5061025460115481565b348015610454575f80fd5b505f546001600160a01b031661041c565b348015610470575f80fd5b5060408051808201909152600781526604f474759322e360cc1b60208201526101ff565b34801561049f575f80fd5b50600d5461041c906001600160a01b031681565b3480156104be575f80fd5b506102346104cd36600461152e565b610a77565b3480156104dd575f80fd5b506102a0610a83565b3480156104f1575f80fd5b50610254600f5481565b348015610506575f80fd5b506102a0610ac1565b34801561051a575f80fd5b5061025461052936600461164f565b6001600160a01b039182165f90815260066020908152604080832093909416825291909152205490565b34801561055e575f80fd5b506102a061056d3660046115fb565b610b35565b34801561057d575f80fd5b50600c5461041c906001600160a01b031681565b335f8181526006602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906105eb9086815260200190565b60405180910390a35060015b92915050565b6001600160a01b0383165f9081526006602090815260408083203384529091528120545f19146106a6576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387165f908152600682528381203382529091529190912054610682918490610c1c565b6001600160a01b0385165f9081526006602090815260408083203384529091529020555b6106b1848484610c54565b90505b9392505050565b5f546001600160a01b031633146106ed5760405162461bcd60e51b81526004016106e49061167b565b60405180910390fd5b6004546106fb906064610f17565b81111561073c5760405162461bcd60e51b815260206004820152600f60248201526e63616e27742065786365656420312560881b60448201526064016106e4565b61074e81670de0b6b3a76400006116c4565b600f5550565b5f80546001600160a01b0316331461077e5760405162461bcd60e51b81526004016106e49061167b565b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303815f875af11580156107c8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106b491906116db565b5f546001600160a01b031633146108155760405162461bcd60e51b81526004016106e49061167b565b600581111561085c5760405162461bcd60e51b81526020600482015260136024820152724665652063616e27742065786365656420352560681b60448201526064016106e4565b60058211156108a35760405162461bcd60e51b81526020600482015260136024820152724665652063616e27742065786365656420352560681b60448201526064016106e4565b600991909155600855565b5f546001600160a01b031633146108d75760405162461bcd60e51b81526004016106e49061167b565b476001600160a01b0382166108fc60646108f186856116c4565b6108fb91906116f6565b6040518115909202915f818181858888f19350505050158015610920573d5f803e3d5ffd5b50505050565b5f6105f7825f19610591565b5f546001600160a01b0316331461095b5760405162461bcd60e51b81526004016106e49061167b565b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b031633146109a65760405162461bcd60e51b81526004016106e49061167b565b6001600160a01b03919091165f908152600760205260409020805460ff1916911515919091179055565b5f546001600160a01b031633146109f95760405162461bcd60e51b81526004016106e49061167b565b5f805460405161dead926001600160a01b03909216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b03191661dead179055565b5f546001600160a01b03163314610a705760405162461bcd60e51b81526004016106e49061167b565b5f19601155565b5f6106b4338484610c54565b5f546001600160a01b03163314610aac5760405162461bcd60e51b81526004016106e49061167b565b600e805460ff60a01b1916600160a01b179055565b5f546001600160a01b03163314610aea5760405162461bcd60e51b81526004016106e49061167b565b305f90815260056020526040812054600f549091908210801591908290610b1d5750305f90815260056020526040812054115b90508015610b3057610b30600f54610f58565b505050565b5f546001600160a01b03163314610b5e5760405162461bcd60e51b81526004016106e49061167b565b6001600160a01b038116610bc35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106e4565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f8184841115610c3f5760405162461bcd60e51b81526004016106e491906114cc565b505f610c4b8486611715565b95945050505050565b6001600160a01b0383165f9081526007602052604081205460ff16158015610c9457506001600160a01b0383165f9081526007602052604090205460ff16155b15610d5557600e54600160a01b900460ff16610cf25760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642e000000000000000060448201526064016106e4565b601154821115610d555760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b60648201526084016106e4565b60105460ff1615610d7257610d6b848484611037565b90506106b4565b305f90815260056020526040812054600f549091908210801591908290610db157506001600160a01b0387165f9081526007602052604090205460ff16155b8015610dc65750600e54600160a81b900460ff165b8015610ddf5750600d546001600160a01b038781169116145b8015610df75750305f90815260056020526040812054115b90508015610e0a57610e0a600f5461111a565b5f80610e1789898961113d565b91509150610e7f8260405180604001604052806014815260200173496e73756666696369656e742042616c616e636560601b81525060055f8d6001600160a01b03166001600160a01b031681526020019081526020015f2054610c1c9092919063ffffffff16565b6001600160a01b03808b165f9081526005602052604080822093909355908a1681522054610ead90826111cd565b6001600160a01b03808a165f8181526005602052604090819020939093559151908b16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610f009085815260200190565b60405180910390a350600198975050505050505050565b5f6106b483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061122b565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110610f8b57610f8b611728565b6001600160a01b0392831660209182029290920101526001805483519216918391908110610fbb57610fbb611728565b6001600160a01b039283166020918202929092010152600c54600b5460405163791ac94760e01b81529183169263791ac947926110069287925f92889290911690429060040161173c565b5f604051808303815f87803b15801561101d575f80fd5b505af115801561102f573d5f803e3d5ffd5b505050505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f908152600590915291822054611087918490610c1c565b6001600160a01b038086165f9081526005602052604080822093909355908516815220546110b590836111cd565b6001600160a01b038085165f8181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111089086815260200190565b60405180910390a35060019392505050565b6010805460ff1916600117905561113081610f58565b506010805460ff19169055565b5f805f805f611160306001600160a01b03165f9081526005602052604090205490565b111561119c57600e545f9061117f906001600160a01b03168989611257565b6001600160a01b0316146111935784611195565b5f5b91506111a0565b8491505b6111aa87876112cb565b6111b457846111bf565b6111bf87878761133e565b919791965090945050505050565b5f806111d983856117ab565b9050838110156106b45760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106e4565b5f818361124b5760405162461bcd60e51b81526004016106e491906114cc565b505f610c4b84866116f6565b6040516364e329cb60e11b81526001600160a01b03838116600483015282811660248301525f919085169063c9c65396906044016020604051808303815f875af11580156112a7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106b191906117be565b6001600160a01b0382165f9081526007602052604081205460ff168061130857506001600160a01b0382165f9081526007602052604090205460ff165b1580156106b45750600d546001600160a01b03848116911614806106b4575050600d546001600160a01b03908116911614919050565b600d545f9081906001600160a01b0385811691161461135f57600854611363565b6009545b90505f611385600a5461137f848761140d90919063ffffffff16565b90610f17565b305f908152600560205260409020549091506113a190826111cd565b305f81815260056020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113f19085815260200190565b60405180910390a3611403848261148b565b9695505050505050565b5f825f0361141c57505f6105f7565b5f61142783856116c4565b90508261143485836116f6565b146106b45760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016106e4565b5f6106b483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610c1c565b5f6020808352835180828501525f5b818110156114f7578581018301518582016040015282016114db565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461152b575f80fd5b50565b5f806040838503121561153f575f80fd5b823561154a81611517565b946020939093013593505050565b5f805f6060848603121561156a575f80fd5b833561157581611517565b9250602084013561158581611517565b929592945050506040919091013590565b5f602082840312156115a6575f80fd5b5035919050565b5f80604083850312156115be575f80fd5b50508035926020909101359150565b5f80604083850312156115de575f80fd5b8235915060208301356115f081611517565b809150509250929050565b5f6020828403121561160b575f80fd5b81356106b481611517565b801515811461152b575f80fd5b5f8060408385031215611634575f80fd5b823561163f81611517565b915060208301356115f081611616565b5f8060408385031215611660575f80fd5b823561166b81611517565b915060208301356115f081611517565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176105f7576105f76116b0565b5f602082840312156116eb575f80fd5b81516106b481611616565b5f8261171057634e487b7160e01b5f52601260045260245ffd5b500490565b818103818111156105f7576105f76116b0565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b8181101561178a5784516001600160a01b031683529383019391830191600101611765565b50506001600160a01b03969096166060850152505050608001529392505050565b808201808211156105f7576105f76116b0565b5f602082840312156117ce575f80fd5b81516106b48161151756fea2646970667358221220f591dd1cd25be82ccfe7e4c9da915aa2a638db59de91d3c2bf16e0486896abbe64736f6c6343000814003300000000000000000000000083c3833c2bf5ae867bd37d3851ee9a96f6bb753d

Deployed Bytecode

0x6080604052600436106101c8575f3560e01c8063715018a6116100f2578063a8aa1b3111610092578063dc73e49c11610062578063dc73e49c146104fb578063dd62ed3e1461050f578063f2fde38b14610553578063f887ea4014610572575f80fd5b8063a8aa1b3114610494578063a9059cbb146104b3578063c9567bf9146104d2578063d12a7688146104e6575f80fd5b80637d1db4a5116100cd5780637d1db4a514610434578063893d20e8146104495780638da5cb5b1461044957806395d89b4114610465575f80fd5b8063715018a6146103d5578063751039fc146103e957806375f0a874146103fd575f80fd5b806352f7c988116101685780635d098b38116101385780635d098b381461034e578063658d4b7f1461036d5780636b1b49871461038c57806370a08231146103a1575f80fd5b806352f7c988146102dc57806356a227f2146102fb578063571ac8b01461031a5780635b149feb14610339575f80fd5b806323b872dd116101a357806323b872dd1461026257806329e04b4a14610281578063313ce567146102a257806333f3d628146102bd575f80fd5b806306fdde03146101d3578063095ea7b31461021557806318160ddd14610244575f80fd5b366101cf57005b5f80fd5b3480156101de575f80fd5b5060408051808201909152600881526704f47475920322e360c41b60208201525b60405161020c91906114cc565b60405180910390f35b348015610220575f80fd5b5061023461022f36600461152e565b610591565b604051901515815260200161020c565b34801561024f575f80fd5b506004545b60405190815260200161020c565b34801561026d575f80fd5b5061023461027c366004611558565b6105fd565b34801561028c575f80fd5b506102a061029b366004611596565b6106bb565b005b3480156102ad575f80fd5b506040516009815260200161020c565b3480156102c8575f80fd5b506102346102d736600461152e565b610754565b3480156102e7575f80fd5b506102a06102f63660046115ad565b6107ec565b348015610306575f80fd5b506102a06103153660046115cd565b6108ae565b348015610325575f80fd5b506102346103343660046115fb565b610926565b348015610344575f80fd5b5061025460095481565b348015610359575f80fd5b506102a06103683660046115fb565b610932565b348015610378575f80fd5b506102a0610387366004611623565b61097d565b348015610397575f80fd5b5061025460085481565b3480156103ac575f80fd5b506102546103bb3660046115fb565b6001600160a01b03165f9081526005602052604090205490565b3480156103e0575f80fd5b506102a06109d0565b3480156103f4575f80fd5b506102a0610a47565b348015610408575f80fd5b50600b5461041c906001600160a01b031681565b6040516001600160a01b03909116815260200161020c565b34801561043f575f80fd5b5061025460115481565b348015610454575f80fd5b505f546001600160a01b031661041c565b348015610470575f80fd5b5060408051808201909152600781526604f474759322e360cc1b60208201526101ff565b34801561049f575f80fd5b50600d5461041c906001600160a01b031681565b3480156104be575f80fd5b506102346104cd36600461152e565b610a77565b3480156104dd575f80fd5b506102a0610a83565b3480156104f1575f80fd5b50610254600f5481565b348015610506575f80fd5b506102a0610ac1565b34801561051a575f80fd5b5061025461052936600461164f565b6001600160a01b039182165f90815260066020908152604080832093909416825291909152205490565b34801561055e575f80fd5b506102a061056d3660046115fb565b610b35565b34801561057d575f80fd5b50600c5461041c906001600160a01b031681565b335f8181526006602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906105eb9086815260200190565b60405180910390a35060015b92915050565b6001600160a01b0383165f9081526006602090815260408083203384529091528120545f19146106a6576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387165f908152600682528381203382529091529190912054610682918490610c1c565b6001600160a01b0385165f9081526006602090815260408083203384529091529020555b6106b1848484610c54565b90505b9392505050565b5f546001600160a01b031633146106ed5760405162461bcd60e51b81526004016106e49061167b565b60405180910390fd5b6004546106fb906064610f17565b81111561073c5760405162461bcd60e51b815260206004820152600f60248201526e63616e27742065786365656420312560881b60448201526064016106e4565b61074e81670de0b6b3a76400006116c4565b600f5550565b5f80546001600160a01b0316331461077e5760405162461bcd60e51b81526004016106e49061167b565b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303815f875af11580156107c8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106b491906116db565b5f546001600160a01b031633146108155760405162461bcd60e51b81526004016106e49061167b565b600581111561085c5760405162461bcd60e51b81526020600482015260136024820152724665652063616e27742065786365656420352560681b60448201526064016106e4565b60058211156108a35760405162461bcd60e51b81526020600482015260136024820152724665652063616e27742065786365656420352560681b60448201526064016106e4565b600991909155600855565b5f546001600160a01b031633146108d75760405162461bcd60e51b81526004016106e49061167b565b476001600160a01b0382166108fc60646108f186856116c4565b6108fb91906116f6565b6040518115909202915f818181858888f19350505050158015610920573d5f803e3d5ffd5b50505050565b5f6105f7825f19610591565b5f546001600160a01b0316331461095b5760405162461bcd60e51b81526004016106e49061167b565b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b031633146109a65760405162461bcd60e51b81526004016106e49061167b565b6001600160a01b03919091165f908152600760205260409020805460ff1916911515919091179055565b5f546001600160a01b031633146109f95760405162461bcd60e51b81526004016106e49061167b565b5f805460405161dead926001600160a01b03909216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b03191661dead179055565b5f546001600160a01b03163314610a705760405162461bcd60e51b81526004016106e49061167b565b5f19601155565b5f6106b4338484610c54565b5f546001600160a01b03163314610aac5760405162461bcd60e51b81526004016106e49061167b565b600e805460ff60a01b1916600160a01b179055565b5f546001600160a01b03163314610aea5760405162461bcd60e51b81526004016106e49061167b565b305f90815260056020526040812054600f549091908210801591908290610b1d5750305f90815260056020526040812054115b90508015610b3057610b30600f54610f58565b505050565b5f546001600160a01b03163314610b5e5760405162461bcd60e51b81526004016106e49061167b565b6001600160a01b038116610bc35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106e4565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f8184841115610c3f5760405162461bcd60e51b81526004016106e491906114cc565b505f610c4b8486611715565b95945050505050565b6001600160a01b0383165f9081526007602052604081205460ff16158015610c9457506001600160a01b0383165f9081526007602052604090205460ff16155b15610d5557600e54600160a01b900460ff16610cf25760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642e000000000000000060448201526064016106e4565b601154821115610d555760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b60648201526084016106e4565b60105460ff1615610d7257610d6b848484611037565b90506106b4565b305f90815260056020526040812054600f549091908210801591908290610db157506001600160a01b0387165f9081526007602052604090205460ff16155b8015610dc65750600e54600160a81b900460ff165b8015610ddf5750600d546001600160a01b038781169116145b8015610df75750305f90815260056020526040812054115b90508015610e0a57610e0a600f5461111a565b5f80610e1789898961113d565b91509150610e7f8260405180604001604052806014815260200173496e73756666696369656e742042616c616e636560601b81525060055f8d6001600160a01b03166001600160a01b031681526020019081526020015f2054610c1c9092919063ffffffff16565b6001600160a01b03808b165f9081526005602052604080822093909355908a1681522054610ead90826111cd565b6001600160a01b03808a165f8181526005602052604090819020939093559151908b16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610f009085815260200190565b60405180910390a350600198975050505050505050565b5f6106b483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061122b565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110610f8b57610f8b611728565b6001600160a01b0392831660209182029290920101526001805483519216918391908110610fbb57610fbb611728565b6001600160a01b039283166020918202929092010152600c54600b5460405163791ac94760e01b81529183169263791ac947926110069287925f92889290911690429060040161173c565b5f604051808303815f87803b15801561101d575f80fd5b505af115801561102f573d5f803e3d5ffd5b505050505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f908152600590915291822054611087918490610c1c565b6001600160a01b038086165f9081526005602052604080822093909355908516815220546110b590836111cd565b6001600160a01b038085165f8181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111089086815260200190565b60405180910390a35060019392505050565b6010805460ff1916600117905561113081610f58565b506010805460ff19169055565b5f805f805f611160306001600160a01b03165f9081526005602052604090205490565b111561119c57600e545f9061117f906001600160a01b03168989611257565b6001600160a01b0316146111935784611195565b5f5b91506111a0565b8491505b6111aa87876112cb565b6111b457846111bf565b6111bf87878761133e565b919791965090945050505050565b5f806111d983856117ab565b9050838110156106b45760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106e4565b5f818361124b5760405162461bcd60e51b81526004016106e491906114cc565b505f610c4b84866116f6565b6040516364e329cb60e11b81526001600160a01b03838116600483015282811660248301525f919085169063c9c65396906044016020604051808303815f875af11580156112a7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106b191906117be565b6001600160a01b0382165f9081526007602052604081205460ff168061130857506001600160a01b0382165f9081526007602052604090205460ff165b1580156106b45750600d546001600160a01b03848116911614806106b4575050600d546001600160a01b03908116911614919050565b600d545f9081906001600160a01b0385811691161461135f57600854611363565b6009545b90505f611385600a5461137f848761140d90919063ffffffff16565b90610f17565b305f908152600560205260409020549091506113a190826111cd565b305f81815260056020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113f19085815260200190565b60405180910390a3611403848261148b565b9695505050505050565b5f825f0361141c57505f6105f7565b5f61142783856116c4565b90508261143485836116f6565b146106b45760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016106e4565b5f6106b483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610c1c565b5f6020808352835180828501525f5b818110156114f7578581018301518582016040015282016114db565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461152b575f80fd5b50565b5f806040838503121561153f575f80fd5b823561154a81611517565b946020939093013593505050565b5f805f6060848603121561156a575f80fd5b833561157581611517565b9250602084013561158581611517565b929592945050506040919091013590565b5f602082840312156115a6575f80fd5b5035919050565b5f80604083850312156115be575f80fd5b50508035926020909101359150565b5f80604083850312156115de575f80fd5b8235915060208301356115f081611517565b809150509250929050565b5f6020828403121561160b575f80fd5b81356106b481611517565b801515811461152b575f80fd5b5f8060408385031215611634575f80fd5b823561163f81611517565b915060208301356115f081611616565b5f8060408385031215611660575f80fd5b823561166b81611517565b915060208301356115f081611517565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176105f7576105f76116b0565b5f602082840312156116eb575f80fd5b81516106b481611616565b5f8261171057634e487b7160e01b5f52601260045260245ffd5b500490565b818103818111156105f7576105f76116b0565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b8181101561178a5784516001600160a01b031683529383019391830191600101611765565b50506001600160a01b03969096166060850152505050608001529392505050565b808201808211156105f7576105f76116b0565b5f602082840312156117ce575f80fd5b81516106b48161151756fea2646970667358221220f591dd1cd25be82ccfe7e4c9da915aa2a638db59de91d3c2bf16e0486896abbe64736f6c63430008140033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

00000000000000000000000083c3833c2bf5ae867bd37d3851ee9a96f6bb753d

-----Decoded View---------------
Arg [0] : _cex (address): 0x83c3833C2BF5AE867bd37d3851EE9A96f6bB753D

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000083c3833c2bf5ae867bd37d3851ee9a96f6bb753d


Deployed Bytecode Sourcemap

5309:8823:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7470:80;;;;;;;;;;-1:-1:-1;7542:5:0;;;;;;;;;;;;-1:-1:-1;;;7542:5:0;;;;7470:80;;;;;;;:::i;:::-;;;;;;;;7894:216;;;;;;;;;;-1:-1:-1;7894:216:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;7894:216:0;1023:187:1;7200:88:0;;;;;;;;;;-1:-1:-1;7273:12:0;;7200:88;;;1361:25:1;;;1349:2;1334:18;7200:88:0;1215:177:1;8412:370:0;;;;;;;;;;-1:-1:-1;8412:370:0;;;;;:::i;:::-;;:::i;13460:207::-;;;;;;;;;;-1:-1:-1;13460:207:0;;;;;:::i;:::-;;:::i;:::-;;7294:80;;;;;;;;;;-1:-1:-1;7294:80:0;;5703:1;2185:36:1;;2173:2;2158:18;7294:80:0;2043:184:1;13923:206:0;;;;;;;;;;-1:-1:-1;13923:206:0;;;;;:::i;:::-;;:::i;13024:280::-;;;;;;;;;;-1:-1:-1;13024:280:0;;;;;:::i;:::-;;:::i;13676:239::-;;;;;;;;;;-1:-1:-1;13676:239:0;;;;;:::i;:::-;;:::i;8118:122::-;;;;;;;;;;-1:-1:-1;8118:122:0;;;;;:::i;:::-;;:::i;6019:30::-;;;;;;;;;;;;;;;;13312:135;;;;;;;;;;-1:-1:-1;13312:135:0;;;;;:::i;:::-;;:::i;12897:119::-;;;;;;;;;;-1:-1:-1;12897:119:0;;;;;:::i;:::-;;:::i;5983:29::-;;;;;;;;;;;;;;;;7642:105;;;;;;;;;;-1:-1:-1;7642:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;7726:18:0;7708:7;7726:18;;;:9;:18;;;;;;;7642:105;3341:230;;;;;;;;;;;;;:::i;12704:94::-;;;;;;;;;;;;;:::i;6103:92::-;;;;;;;;;;-1:-1:-1;6103:92:0;;;;-1:-1:-1;;;;;6103:92:0;;;;;;-1:-1:-1;;;;;3747:32:1;;;3729:51;;3717:2;3702:18;6103:92:0;3567:219:1;6474:58:0;;;;;;;;;;;;;;;;7556:80;;;;;;;;;;-1:-1:-1;7608:7:0;3181:6;-1:-1:-1;;;;;3181:6:0;7556:80;;7380:84;;;;;;;;;;-1:-1:-1;7454:7:0;;;;;;;;;;;;-1:-1:-1;;;7454:7:0;;;;7380:84;;6235:19;;;;;;;;;;-1:-1:-1;6235:19:0;;;;-1:-1:-1;;;;;6235:19:0;;;8248:156;;;;;;;;;;-1:-1:-1;8248:156:0;;;;;:::i;:::-;;:::i;12806:79::-;;;;;;;;;;;;;:::i;6353:71::-;;;;;;;;;;;;;;;;12296:400;;;;;;;;;;;;;:::i;7753:133::-;;;;;;;;;;-1:-1:-1;7753:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;7855:19:0;;;7837:7;7855:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;7753:133;3579:244;;;;;;;;;;-1:-1:-1;3579:244:0;;;;;:::i;:::-;;:::i;6204:24::-;;;;;;;;;;-1:-1:-1;6204:24:0;;;;-1:-1:-1;;;;;6204:24:0;;;7894:216;7998:10;7969:4;7986:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;7986:32:0;;;;;;;;;;:41;;;8043:37;7969:4;;7986:32;;8043:37;;;;8021:6;1361:25:1;;1349:2;1334:18;;1215:177;8043:37:0;;;;;;;;-1:-1:-1;8098:4:0;7894:216;;;;;:::o;8412:370::-;-1:-1:-1;;;;;8532:19:0;;8512:4;8532:19;;;:11;:19;;;;;;;;8552:10;8532:31;;;;;;;;-1:-1:-1;;8532:52:0;8529:186;;8634:69;;;;;;;;;;;-1:-1:-1;;;8634:69:0;;;;;;;;-1:-1:-1;;;;;8634:19:0;;-1:-1:-1;8634:19:0;;;:11;:19;;;;;8654:10;8634:31;;;;;;;;;;:69;;8670:6;;8634:35;:69::i;:::-;-1:-1:-1;;;;;8600:19:0;;;;;;:11;:19;;;;;;;;8620:10;8600:31;;;;;;;:103;8529:186;8734:40;8748:6;8756:9;8767:6;8734:13;:40::i;:::-;8727:47;;8412:370;;;;;;:::o;13460:207::-;3250:6;;-1:-1:-1;;;;;3250:6:0;333:10;3250:22;3242:67;;;;-1:-1:-1;;;3242:67:0;;;;;;;:::i;:::-;;;;;;;;;13558:12:::1;::::0;:21:::1;::::0;13575:3:::1;13558:16;:21::i;:::-;13548:6;:31;;13539:60;;;::::0;-1:-1:-1;;;13539:60:0;;5181:2:1;13539:60:0::1;::::0;::::1;5163:21:1::0;5220:2;5200:18;;;5193:30;-1:-1:-1;;;5239:18:1;;;5232:45;5294:18;;13539:60:0::1;4979:339:1::0;13539:60:0::1;13642:17;:6:::0;13651:8:::1;13642:17;:::i;:::-;13610:29;:49:::0;-1:-1:-1;13460:207:0:o;13923:206::-;14035:12;3250:6;;-1:-1:-1;;;;;3250:6:0;333:10;3250:22;3242:67;;;;-1:-1:-1;;;3242:67:0;;;;;;;:::i;:::-;14072:49:::1;::::0;-1:-1:-1;;;14072:49:0;;14102:10:::1;14072:49;::::0;::::1;5802:51:1::0;5869:18;;;5862:34;;;-1:-1:-1;;;;;14072:29:0;::::1;::::0;::::1;::::0;5775:18:1;;14072:49:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;13024:280::-:0;3250:6;;-1:-1:-1;;;;;3250:6:0;333:10;3250:22;3242:67;;;;-1:-1:-1;;;3242:67:0;;;;;;;:::i;:::-;13138:1:::1;13123:11;:16;;13114:49;;;::::0;-1:-1:-1;;;13114:49:0;;6359:2:1;13114:49:0::1;::::0;::::1;6341:21:1::0;6398:2;6378:18;;;6371:30;-1:-1:-1;;;6417:18:1;;;6410:49;6476:18;;13114:49:0::1;6157:343:1::0;13114:49:0::1;13199:1;13183:12;:17;;13174:50;;;::::0;-1:-1:-1;;;13174:50:0;;6359:2:1;13174:50:0::1;::::0;::::1;6341:21:1::0;6398:2;6378:18;;;6371:30;-1:-1:-1;;;6417:18:1;;;6410:49;6476:18;;13174:50:0::1;6157:343:1::0;13174:50:0::1;13235:11;:26:::0;;;;13272:10:::1;:24:::0;13024:280::o;13676:239::-;3250:6;;-1:-1:-1;;;;;3250:6:0;333:10;3250:22;3242:67;;;;-1:-1:-1;;;3242:67:0;;;;;;;:::i;:::-;13792:21:::1;-1:-1:-1::0;;;;;13824:21:0;::::1;:83;13893:3;13861:28;13873:16:::0;13792:21;13861:28:::1;:::i;:::-;13860:36;;;;:::i;:::-;13824:83;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;13761:154;13676:239:::0;;:::o;8118:122::-;8173:4;8197:35;8205:7;-1:-1:-1;;8197:7:0;:35::i;13312:135::-;3250:6;;-1:-1:-1;;;;;3250:6:0;333:10;3250:22;3242:67;;;;-1:-1:-1;;;3242:67:0;;;;;;;:::i;:::-;13396:15:::1;:43:::0;;-1:-1:-1;;;;;;13396:43:0::1;-1:-1:-1::0;;;;;13396:43:0;;;::::1;::::0;;;::::1;::::0;;13312:135::o;12897:119::-;3250:6;;-1:-1:-1;;;;;3250:6:0;333:10;3250:22;3242:67;;;;-1:-1:-1;;;3242:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12980:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;12980:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12897:119::o;3341:230::-;3250:6;;-1:-1:-1;;;;;3250:6:0;333:10;3250:22;3242:67;;;;-1:-1:-1;;;3242:67:0;;;;;;;:::i;:::-;3432:6:::1;::::0;;3411:81:::1;::::0;3448:42:::1;::::0;-1:-1:-1;;;;;3432:6:0;;::::1;::::0;3411:81:::1;::::0;::::1;3503:6;:60:::0;;-1:-1:-1;;;;;;3503:60:0::1;3520:42;3503:60;::::0;;3341:230::o;12704:94::-;3250:6;;-1:-1:-1;;;;;3250:6:0;333:10;3250:22;3242:67;;;;-1:-1:-1;;;3242:67:0;;;;;;;:::i;:::-;-1:-1:-1;;12758:12:0::1;:32:::0;12704:94::o;8248:156::-;8328:4;8352:44;8366:10;8378:9;8389:6;8352:13;:44::i;12806:79::-;3250:6;;-1:-1:-1;;;;;3250:6:0;333:10;3250:22;3242:67;;;;-1:-1:-1;;;3242:67:0;;;;;;;:::i;:::-;12859:11:::1;:18:::0;;-1:-1:-1;;;;12859:18:0::1;-1:-1:-1::0;;;12859:18:0::1;::::0;;12806:79::o;12296:400::-;3250:6;;-1:-1:-1;;;;;3250:6:0;333:10;3250:22;3242:67;;;;-1:-1:-1;;;3242:67:0;;;;;;;:::i;:::-;12394:4:::1;12345:28;7726:18:::0;;;:9;:18;;;;;;12464:29:::1;::::0;7726:18;;12440:53;;::::1;::::0;::::1;::::0;12345:28;12440:53;;12533:51:::1;;-1:-1:-1::0;12574:4:0::1;12583:1;7726:18:::0;;;:9;:18;;;;;;12556:28:::1;12533:51;12510:75;;12599:14;12596:93;;;12630:47;12647:29;;12630:16;:47::i;:::-;12334:362;;;12296:400::o:0;3579:244::-;3250:6;;-1:-1:-1;;;;;3250:6:0;333:10;3250:22;3242:67;;;;-1:-1:-1;;;3242:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3668:22:0;::::1;3660:73;;;::::0;-1:-1:-1;;;3660:73:0;;6929:2:1;3660:73:0::1;::::0;::::1;6911:21:1::0;6968:2;6948:18;;;6941:30;7007:34;6987:18;;;6980:62;-1:-1:-1;;;7058:18:1;;;7051:36;7104:19;;3660:73:0::1;6727:402:1::0;3660:73:0::1;3770:6;::::0;;3749:38:::1;::::0;-1:-1:-1;;;;;3749:38:0;;::::1;::::0;3770:6;::::1;::::0;3749:38:::1;::::0;::::1;3798:6;:17:::0;;-1:-1:-1;;;;;;3798:17:0::1;-1:-1:-1::0;;;;;3798:17:0;;;::::1;::::0;;;::::1;::::0;;3579:244::o;898:192::-;984:7;1020:12;1012:6;;;;1004:29;;;;-1:-1:-1;;;1004:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1044:9:0;1056:5;1060:1;1056;:5;:::i;:::-;1044:17;898:192;-1:-1:-1;;;;;898:192:0:o;8790:1150::-;-1:-1:-1;;;;;8903:19:0;;8882:4;8903:19;;;:11;:19;;;;;;;;8902:20;:47;;;;-1:-1:-1;;;;;;8927:22:0;;;;;;:11;:22;;;;;;;;8926:23;8902:47;8899:217;;;8974:11;;-1:-1:-1;;;8974:11:0;;;;8966:48;;;;-1:-1:-1;;;8966:48:0;;7469:2:1;8966:48:0;;;7451:21:1;7508:2;7488:18;;;7481:30;7547:26;7527:18;;;7520:54;7591:18;;8966:48:0;7267:348:1;8966:48:0;9047:12;;9037:6;:22;;9029:75;;;;-1:-1:-1;;;9029:75:0;;7822:2:1;9029:75:0;;;7804:21:1;7861:2;7841:18;;;7834:30;7900:34;7880:18;;;7873:62;-1:-1:-1;;;7951:18:1;;;7944:38;7999:19;;9029:75:0;7620:404:1;9029:75:0;9131:6;;;;9128:63;;;9147:41;9162:6;9170:9;9181:6;9147:14;:41::i;:::-;9140:48;;;;9128:63;9258:4;9209:28;7726:18;;;:9;:18;;;;;;9328:29;;7726:18;;9304:53;;;;;;9209:28;9304:53;;9397:42;;-1:-1:-1;;;;;;9420:19:0;;;;;;:11;:19;;;;;;;;9419:20;9397:42;:57;;;;-1:-1:-1;9443:11:0;;-1:-1:-1;;;9443:11:0;;;;9397:57;:76;;;;-1:-1:-1;9469:4:0;;-1:-1:-1;;;;;9458:15:0;;;9469:4;;9458:15;9397:76;:108;;;;-1:-1:-1;9495:4:0;9504:1;7726:18;;;:9;:18;;;;;;9477:28;9397:108;9374:132;;9520:14;9517:62;;;9537:39;9546:29;;9537:8;:39::i;:::-;9592:18;9612:22;9638:45;9657:6;9665:9;9676:6;9638:18;:45::i;:::-;9591:92;;;;9716:57;9738:10;9716:57;;;;;;;;;;;;;-1:-1:-1;;;9716:57:0;;;:9;:17;9726:6;-1:-1:-1;;;;;9716:17:0;-1:-1:-1;;;;;9716:17:0;;;;;;;;;;;;;:21;;:57;;;;;:::i;:::-;-1:-1:-1;;;;;9696:17:0;;;;;;;:9;:17;;;;;;:77;;;;9809:20;;;;;;;:40;;9834:14;9809:24;:40::i;:::-;-1:-1:-1;;;;;9786:20:0;;;;;;;:9;:20;;;;;;;:63;;;;9867:43;;;;;;;;;;9895:14;1361:25:1;;1349:2;1334:18;;1215:177;9867:43:0;;;;;;;;-1:-1:-1;9928:4:0;;8790:1150;-1:-1:-1;;;;;;;;8790:1150:0:o;1352:132::-;1410:7;1437:39;1441:1;1444;1437:39;;;;;;;;;;;;;;;;;:3;:39::i;11081:489::-;11231:16;;;11245:1;11231:16;;;;;;;;11207:21;;11231:16;;;;;;;;;;-1:-1:-1;11231:16:0;11207:40;;11276:4;11258;11263:1;11258:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11258:23:0;;;:7;;;;;;;;;:23;11302:4;;;11292:7;;11302:4;;;11292;;11302;11292:7;;;;;;:::i;:::-;-1:-1:-1;;;;;11292:14:0;;;:7;;;;;;;;;:14;11345:6;;11506:15;;11345:217;;-1:-1:-1;;;11345:217:0;;:6;;;;:57;;:217;;11417:11;;11345:6;;11487:4;;11506:15;;;;11536;;11345:217;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11136:434;11081:489;:::o;9952:330::-;10082:53;;;;;;;;;;;-1:-1:-1;;;10082:53:0;;;;;;;;-1:-1:-1;;;;;10082:17:0;;10045:4;10082:17;;;:9;:17;;;;;;;:53;;10104:6;;10082:21;:53::i;:::-;-1:-1:-1;;;;;10062:17:0;;;;;;;:9;:17;;;;;;:73;;;;10169:20;;;;;;;:32;;10194:6;10169:24;:32::i;:::-;-1:-1:-1;;;;;10146:20:0;;;;;;;:9;:20;;;;;;;:55;;;;10217:35;;;;;;;;;;10245:6;1361:25:1;;1349:2;1334:18;;1215:177;10217:35:0;;;;;;;;-1:-1:-1;10270:4:0;9952:330;;;;;:::o;10974:95::-;6563:6;:13;;-1:-1:-1;;6563:13:0;6572:4;6563:13;;;11037:24:::1;11054:6:::0;11037:16:::1;:24::i;:::-;-1:-1:-1::0;6581:6:0;:14;;-1:-1:-1;;6581:14:0;;;10974:95::o;11578:541::-;11675:7;11684;11704:18;11733:22;11798:1;11771:24;11789:4;-1:-1:-1;;;;;7726:18:0;7708:7;7726:18;;;:9;:18;;;;;;;7642:105;11771:24;:28;11768:188;;;11844:3;;11879:1;;11828:39;;-1:-1:-1;;;;;11844:3:0;11849:6;11857:9;11828:15;:39::i;:::-;-1:-1:-1;;;;;11828:53:0;;:66;;11888:6;11828:66;;;11884:1;11828:66;11815:79;;11768:188;;;11938:6;11925:19;;11768:188;11985:32;11999:6;12007:9;11985:13;:32::i;:::-;:78;;12057:6;11985:78;;;12020:34;12028:6;12036:9;12047:6;12020:7;:34::i;:::-;12084:10;;;;-1:-1:-1;11578:541:0;;-1:-1:-1;;;;;11578:541:0:o;569:181::-;627:7;;659:5;663:1;659;:5;:::i;:::-;647:17;;688:1;683;:6;;675:46;;;;-1:-1:-1;;;675:46:0;;9618:2:1;675:46:0;;;9600:21:1;9657:2;9637:18;;;9630:30;9696:29;9676:18;;;9669:57;9743:18;;675:46:0;9416:351:1;1490:345:0;1576:7;1678:12;1671:5;1663:28;;;;-1:-1:-1;;;1663:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1702:9:0;1714:5;1718:1;1714;:5;:::i;12127:161::-;12239:41;;-1:-1:-1;;;12239:41:0;;-1:-1:-1;;;;;10002:15:1;;;12239:41:0;;;9984:34:1;10054:15;;;10034:18;;;10027:43;12212:7:0;;12239:31;;;;;;9919:18:1;;12239:41:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;10290:207::-;-1:-1:-1;;;;;10399:19:0;;10371:4;10399:19;;;:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;10422:22:0;;;;;;:11;:22;;;;;;;;10399:45;10397:48;:90;;;;-1:-1:-1;10461:4:0;;-1:-1:-1;;;;;10451:14:0;;;10461:4;;10451:14;;:35;;-1:-1:-1;;10482:4:0;;-1:-1:-1;;;;;10482:4:0;;;10469:17;;;;10290:207;-1:-1:-1;10290:207:0:o;10505:461::-;10650:4;;10591:7;;;;-1:-1:-1;;;;;10637:17:0;;;10650:4;;10637:17;:44;;10671:10;;10637:44;;;10657:11;;10637:44;10611:70;;10692:17;10732:47;10764:14;;10732:27;10743:15;10732:6;:10;;:27;;;;:::i;:::-;:31;;:47::i;:::-;10835:4;10817:24;;;;:9;:24;;;;;;10720:59;;-1:-1:-1;10817:39:0;;10720:59;10817:28;:39::i;:::-;10808:4;10790:24;;;;:9;:24;;;;;;;:66;;;;10872:42;;-1:-1:-1;;;;;10872:42:0;;;;;;;10904:9;1361:25:1;;1349:2;1334:18;;1215:177;10872:42:0;;;;;;;;10937:21;:6;10948:9;10937:10;:21::i;:::-;10930:28;10505:461;-1:-1:-1;;;;;;10505:461:0:o;1096:250::-;1154:7;1178:1;1183;1178:6;1174:47;;-1:-1:-1;1208:1:0;1201:8;;1174:47;1233:9;1245:5;1249:1;1245;:5;:::i;:::-;1233:17;-1:-1:-1;1278:1:0;1269:5;1273:1;1233:17;1269:5;:::i;:::-;:10;1261:56;;;;-1:-1:-1;;;1261:56:0;;10539:2:1;1261:56:0;;;10521:21:1;10578:2;10558:18;;;10551:30;10617:34;10597:18;;;10590:62;-1:-1:-1;;;10668:18:1;;;10661:31;10709:19;;1261:56:0;10337:397:1;756:136:0;814:7;841:43;845:1;848;841:43;;;;;;;;;;;;;;;;;:3;:43::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;1858:180::-;1917:6;1970:2;1958:9;1949:7;1945:23;1941:32;1938:52;;;1986:1;1983;1976:12;1938:52;-1:-1:-1;2009:23:1;;1858:180;-1:-1:-1;1858:180:1:o;2232:248::-;2300:6;2308;2361:2;2349:9;2340:7;2336:23;2332:32;2329:52;;;2377:1;2374;2367:12;2329:52;-1:-1:-1;;2400:23:1;;;2470:2;2455:18;;;2442:32;;-1:-1:-1;2232:248:1:o;2485:315::-;2553:6;2561;2614:2;2602:9;2593:7;2589:23;2585:32;2582:52;;;2630:1;2627;2620:12;2582:52;2666:9;2653:23;2643:33;;2726:2;2715:9;2711:18;2698:32;2739:31;2764:5;2739:31;:::i;:::-;2789:5;2779:15;;;2485:315;;;;;:::o;2805:247::-;2864:6;2917:2;2905:9;2896:7;2892:23;2888:32;2885:52;;;2933:1;2930;2923:12;2885:52;2972:9;2959:23;2991:31;3016:5;2991:31;:::i;3057:118::-;3143:5;3136:13;3129:21;3122:5;3119:32;3109:60;;3165:1;3162;3155:12;3180:382;3245:6;3253;3306:2;3294:9;3285:7;3281:23;3277:32;3274:52;;;3322:1;3319;3312:12;3274:52;3361:9;3348:23;3380:31;3405:5;3380:31;:::i;:::-;3430:5;-1:-1:-1;3487:2:1;3472:18;;3459:32;3500:30;3459:32;3500:30;:::i;3999:388::-;4067:6;4075;4128:2;4116:9;4107:7;4103:23;4099:32;4096:52;;;4144:1;4141;4134:12;4096:52;4183:9;4170:23;4202:31;4227:5;4202:31;:::i;:::-;4252:5;-1:-1:-1;4309:2:1;4294:18;;4281:32;4322:33;4281:32;4322:33;:::i;4618:356::-;4820:2;4802:21;;;4839:18;;;4832:30;4898:34;4893:2;4878:18;;4871:62;4965:2;4950:18;;4618:356::o;5323:127::-;5384:10;5379:3;5375:20;5372:1;5365:31;5415:4;5412:1;5405:15;5439:4;5436:1;5429:15;5455:168;5528:9;;;5559;;5576:15;;;5570:22;;5556:37;5546:71;;5597:18;;:::i;5907:245::-;5974:6;6027:2;6015:9;6006:7;6002:23;5998:32;5995:52;;;6043:1;6040;6033:12;5995:52;6075:9;6069:16;6094:28;6116:5;6094:28;:::i;6505:217::-;6545:1;6571;6561:132;;6615:10;6610:3;6606:20;6603:1;6596:31;6650:4;6647:1;6640:15;6678:4;6675:1;6668:15;6561:132;-1:-1:-1;6707:9:1;;6505:217::o;7134:128::-;7201:9;;;7222:11;;;7219:37;;;7236:18;;:::i;8161:127::-;8222:10;8217:3;8213:20;8210:1;8203:31;8253:4;8250:1;8243:15;8277:4;8274:1;8267:15;8293:988;8563:4;8611:3;8600:9;8596:19;8642:6;8631:9;8624:25;8668:2;8706:6;8701:2;8690:9;8686:18;8679:34;8749:3;8744:2;8733:9;8729:18;8722:31;8773:6;8808;8802:13;8839:6;8831;8824:22;8877:3;8866:9;8862:19;8855:26;;8916:2;8908:6;8904:15;8890:29;;8937:1;8947:195;8961:6;8958:1;8955:13;8947:195;;;9026:13;;-1:-1:-1;;;;;9022:39:1;9010:52;;9117:15;;;;9082:12;;;;9058:1;8976:9;8947:195;;;-1:-1:-1;;;;;;;9198:32:1;;;;9193:2;9178:18;;9171:60;-1:-1:-1;;;9262:3:1;9247:19;9240:35;9159:3;8293:988;-1:-1:-1;;;8293:988:1:o;9286:125::-;9351:9;;;9372:10;;;9369:36;;;9385:18;;:::i;10081:251::-;10151:6;10204:2;10192:9;10183:7;10179:23;10175:32;10172:52;;;10220:1;10217;10210:12;10172:52;10252:9;10246:16;10271:31;10296:5;10271:31;:::i

Swarm Source

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