ETH Price: $3,218.04 (+2.62%)

Token

Chroma Infrastructure (CMX)
 

Overview

Max Total Supply

200,000,000 CMX

Holders

115

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
390,000 CMX

Value
$0.00
0xa2254Ad801A1436Fb47e256a91c22EAD087CE577
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:
CMX

Compiler Version
v0.8.25+commit.b61c2a91

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT

/**
** Chroma is not just a Layer-1 blockchain solution for product certification. ** 
** It's an innovative and diverse ecosystem that ensures a safe and reliable environment for brands and consumers. ** 
** Dive into a platform where every product tells an authentic, verifiable story, safeguarded by Chroma's unwavering blockchain technology. ** 
** With Chroma, explore a range of interconnected projects. ** 
** Website: https://chroma-infra.com ** 
** Documentation: https://docs.chroma-infra.com ** 
** Twitter: https://twitter.com/ChromaInfra ** 
** Testnet Explorer: https://testnet.chroma-infra.com ** 
** Telegram Portal: https://t.me/ChromaInfra ** 
** Linktree: https://linktr.ee/chromaofficial ** 
** Medium: https://medium.com/@ChromaInfra ** 
**/

pragma solidity 0.8.25;

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

interface CMXStaking {
  function postProcessLLMReward(uint256 _amount) external;
}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }

}

contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

}

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract CMX is Context, IERC20, Ownable {
    using SafeMath for uint256;
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    CMXStaking public stakingContract;

    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => uint256) private _balances;
    mapping (address => bool) private isExcludedFromFee;
    
    string private constant _name = "Chroma Infrastructure";
    string private constant _symbol = "CMX";
    uint8 private constant _decimals = 18;
    uint256 private constant _tTotal = 200_000_000  * 10**_decimals;
    uint256 public _maxWalletAmount = 500_000  * 10**_decimals;
    uint256 public _maxTxAmount = 500_000  * 10**_decimals;
    uint256 public _maxSwapAmount = 500_000  * 10**_decimals;
    address private _feeWallet;
    uint256 private _initialBuyTax=22;
    uint256 private _initialSellTax=22;

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

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    event MaxTxAmountUpdated(uint256 _maxTxAmount);

    constructor (address feeWalletAddress) {
        uint256 tokenAmount = _tTotal.mul(12).div(100);
        _feeWallet = feeWalletAddress;

        isExcludedFromFee[feeWalletAddress] = true;

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

        _balances[_msgSender()] = _tTotal.sub(tokenAmount);
        _balances[address(this)] = tokenAmount;
        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 approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function decimals() public pure returns (uint8) {
        return _decimals;
    }

    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 totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return _balances[account];
    }

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }

    function _approve(address 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: Transfer amount must be greater than zero.");
        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {
            require(tradingOpen,"_transfer: Trade is not yet open.");
            require(amount <= _maxTxAmount, "_transfer: Amount of transfer exceeds max transaction size.");
            if (from == uniswapV2Pair && to != address(uniswapV2Router)) {
                require(balanceOf(to) + amount <= _maxWalletAmount, "_transfer: Amount of transfer exceeds max wallet size.");
                taxAmount = amount.mul(_initialBuyTax).div(100);
            } else if (to == uniswapV2Pair){
                taxAmount = amount.mul(_initialSellTax).div(100);
                uint256 contractTokenBalance = balanceOf(address(this));
                if (!inSwap && to == uniswapV2Pair) {
                    if (swapLimitOn) {
                        uint256 getMinValue = (contractTokenBalance > _maxSwapAmount)?_maxSwapAmount:contractTokenBalance;
                        swapTokensForEth((amount > getMinValue)?getMinValue:amount);
                    } else {
                        swapTokensForEth(contractTokenBalance);
                    }
                }
            } else {
                taxAmount = 0;
            }
        }
        if(taxAmount>0){
          _balances[address(this)]=_balances[address(this)].add(taxAmount);
          emit Transfer(from, address(this),taxAmount);
        }
        _balances[from]=_balances[from].sub(amount);
        _balances[to]=_balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }
    
    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        if(tokenAmount==0){return;}
        if(tokenAmount>_maxTxAmount) {
            tokenAmount = _maxTxAmount;
        }
        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,
            _feeWallet,
            block.timestamp
        );
    }

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

    function withdrawStuckToken(address tokenContractAddress, address toRescueAddress, uint256 amount) external {
        require(_msgSender()==_feeWallet);
        require(tokenContractAddress != address(this), "withdrawStuckToken: Not allowed to withdraw this token.");
        uint256 initial = IERC20(tokenContractAddress).balanceOf(address(this));
        require(initial >= amount, "withdrawStuckToken: Not enough token available.");
        IERC20(tokenContractAddress).transfer(toRescueAddress, amount);
    }

    function withdrawStuckETH() external {
        require(_msgSender() == _feeWallet);
        uint256 ethBalance = address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }

    function setBuyFee(uint256 buyFeePercentage) external onlyOwner {
        require(buyFeePercentage <= 35, "setBuyFee: buyFeePercentage shouldn't exceed 35%.");
        _initialBuyTax = buyFeePercentage;
    }

    function setSellFee(uint256 sellFeePercentage) external onlyOwner {
        require(sellFeePercentage <= 35, "setSellFee: sellFeePercentage shouldn't exceed 35%.");
        _initialSellTax = sellFeePercentage;
    }

    function cmxTrading() external onlyOwner {
        require(!tradingOpen,"openTrading: Trading is already open.");
        tradingOpen = true;
    }

    function forceSwap() external {
        require(_msgSender()==_feeWallet);
        uint256 tokenAmount=balanceOf(address(this));
        if(tokenAmount>0){
          swapTokensForEth(tokenAmount);
        }
    }

    receive() external payable {}

    function removeLimits() external onlyOwner {
        _maxTxAmount = _tTotal;
        _maxWalletAmount=_tTotal;
        swapLimitOn = false;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function setMaxWalletSize(uint256 amount) external onlyOwner {
        require(amount >= _tTotal.mul(1).div(1000), "setMaxWalletSize: amount must be more than or equal to 0.1% of total supply.");
        _maxWalletAmount = amount * 10**_decimals;
    }

    function setMaxTransactionSize(uint256 amount) external onlyOwner {
        require(amount >= _tTotal.mul(1).div(1000), "setMaxTransactionSize: amount must be more than or equal to 0.1% of total supply.");
        _maxTxAmount = amount * 10**_decimals;
    }

    function setMaxSwapAmountSize(uint256 amount) external onlyOwner {
        require(amount >= _tTotal.mul(1).div(1000), "setMaxSwapAmountSize: amount must be more than or equal to 0.1% of total supply.");
        _maxSwapAmount = amount * 10**_decimals;
    }

    function setStakingContract(CMXStaking stakingContract_) public onlyOwner {
      require(address(stakingContract_)!=address(0));
      stakingContract = stakingContract_;
    }


}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"feeWalletAddress","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":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":"_maxSwapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletAmount","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":"cmxTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"forceSwap","outputs":[],"stateMutability":"nonpayable","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":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyFeePercentage","type":"uint256"}],"name":"setBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMaxSwapAmountSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMaxTransactionSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"sellFeePercentage","type":"uint256"}],"name":"setSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract CMXStaking","name":"stakingContract_","type":"address"}],"name":"setStakingContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stakingContract","outputs":[{"internalType":"contract CMXStaking","name":"","type":"address"}],"stateMutability":"view","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":[],"name":"withdrawStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenContractAddress","type":"address"},{"internalType":"address","name":"toRescueAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawStuckToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526100106012600a61073c565b61001d906207a12061074a565b60075561002c6012600a61073c565b610039906207a12061074a565b6008556100486012600a61073c565b610055906207a12061074a565b6009556016600b819055600c55600d805462ff00ff1916600117905534801561007c575f80fd5b506040516123da3803806123da83398101604081905261009b91610761565b5f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3505f61010c6064610106600c6100f26012600a61073c565b61010090630bebc20061074a565b906103a4565b90610430565b600a80546001600160a01b03199081166001600160a01b03861690811783555f908152600660205260409020805460ff191660019081179091558054737a250d5630b4cf539739df2c5dacb4c659f2488d92168217905591925061018b9130916101789060129061073c565b61018690630bebc20061074a565b610477565b60015f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101db573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101ff9190610761565b6001600160a01b031663c9c653963060015f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561025e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102829190610761565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156102cc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102f09190610761565b600280546001600160a01b0319166001600160a01b0392909216919091179055610334816103206012600a61073c565b61032e90630bebc20061074a565b9061059d565b335f8181526005602052604080822093909355308152918220839055907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61037e6012600a61073c565b61038c90630bebc20061074a565b60405190815260200160405180910390a350506107ee565b5f825f036103b357505f61042a565b5f6103be838561074a565b9050826103cb8583610787565b146104275760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b5f61042783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506105e460201b60201c565b6001600160a01b0383166104db5760405162461bcd60e51b815260206004820152602560248201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152643932b9b99760d91b606482015260840161041e565b6001600160a01b03821661053d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201526239b99760e91b606482015260840161041e565b6001600160a01b038381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f61042783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061061960201b60201c565b5f81836106045760405162461bcd60e51b815260040161041e91906107a6565b505f6106108486610787565b95945050505050565b5f818484111561063c5760405162461bcd60e51b815260040161041e91906107a6565b505f61061084866107db565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561069657815f190482111561067c5761067c610648565b8085161561068957918102915b93841c9390800290610661565b509250929050565b5f826106ac5750600161042a565b816106b857505f61042a565b81600181146106ce57600281146106d8576106f4565b600191505061042a565b60ff8411156106e9576106e9610648565b50506001821b61042a565b5060208310610133831016604e8410600b8410161715610717575081810a61042a565b610721838361065c565b805f190482111561073457610734610648565b029392505050565b5f61042760ff84168361069e565b808202811582820484141761042a5761042a610648565b5f60208284031215610771575f80fd5b81516001600160a01b0381168114610427575f80fd5b5f826107a157634e487b7160e01b5f52601260045260245ffd5b500490565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b8181038181111561042a5761042a610648565b611bdf806107fb5f395ff3fe60806040526004361061017e575f3560e01c80638b4cee08116100cd578063bda844c111610087578063e06bd4a511610062578063e06bd4a51461048b578063ea1644d5146104a0578063ee99205c146104bf578063f5648a4f146104de575f80fd5b8063bda844c114610414578063dd62ed3e14610433578063df778d2614610477575f80fd5b80638b4cee081461033d5780638da5cb5b1461035c57806395d89b411461038c5780639dd373b9146103b7578063a9059cbb146103d6578063a9e59da3146103f5575f80fd5b806354ccdefc1161013857806370a082311161011357806370a08231146102cc578063715018a614610300578063751039fc146103145780637d1db4a514610328575f80fd5b806354ccdefc1461028457806360cba894146102a35780636c0a24eb146102b7575f80fd5b806306fdde0314610189578063095ea7b3146101d85780630cc835a31461020757806318160ddd1461022857806323b872dd1461024a578063313ce56714610269575f80fd5b3661018557005b5f80fd5b348015610194575f80fd5b506040805180820190915260158152744368726f6d6120496e66726173747275637475726560581b60208201525b6040516101cf91906117fd565b60405180910390f35b3480156101e3575f80fd5b506101f76101f2366004611846565b6104f2565b60405190151581526020016101cf565b348015610212575f80fd5b50610226610221366004611870565b610508565b005b348015610233575f80fd5b5061023c6105aa565b6040519081526020016101cf565b348015610255575f80fd5b506101f7610264366004611887565b6105ca565b348015610274575f80fd5b50604051601281526020016101cf565b34801561028f575f80fd5b5061022661029e366004611870565b610631565b3480156102ae575f80fd5b50610226610735565b3480156102c2575f80fd5b5061023c60075481565b3480156102d7575f80fd5b5061023c6102e63660046118c5565b6001600160a01b03165f9081526005602052604090205490565b34801561030b575f80fd5b506102266107d5565b34801561031f575f80fd5b50610226610846565b348015610333575f80fd5b5061023c60085481565b348015610348575f80fd5b50610226610357366004611870565b610901565b348015610367575f80fd5b505f546001600160a01b03165b6040516001600160a01b0390911681526020016101cf565b348015610397575f80fd5b506040805180820190915260038152620869ab60eb1b60208201526101c2565b3480156103c2575f80fd5b506102266103d13660046118c5565b61099c565b3480156103e1575f80fd5b506101f76103f0366004611846565b6109f9565b348015610400575f80fd5b5061022661040f366004611870565b610a05565b34801561041f575f80fd5b5061022661042e366004611887565b610af0565b34801561043e575f80fd5b5061023c61044d3660046118e0565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b348015610482575f80fd5b50610226610cd6565b348015610496575f80fd5b5061023c60095481565b3480156104ab575f80fd5b506102266104ba366004611870565b610d16565b3480156104ca575f80fd5b50600354610374906001600160a01b031681565b3480156104e9575f80fd5b50610226610dfc565b5f6104fe338484610e2b565b5060015b92915050565b5f546001600160a01b0316331461053a5760405162461bcd60e51b815260040161053190611917565b60405180910390fd5b60238111156105a55760405162461bcd60e51b815260206004820152603160248201527f7365744275794665653a2062757946656550657263656e746167652073686f7560448201527036323713ba1032bc31b2b2b210199a929760791b6064820152608401610531565b600b55565b5f6105b76012600a611a40565b6105c590630bebc200611a4e565b905090565b5f6105d6848484610f51565b610627843361062285604051806060016040528060298152602001611b81602991396001600160a01b038a165f9081526004602090815260408083203384529091529020549190611472565b610e2b565b5060019392505050565b5f546001600160a01b0316331461065a5760405162461bcd60e51b815260040161053190611917565b61068b6103e861068560016106716012600a611a40565b61067f90630bebc200611a4e565b906114aa565b9061152f565b8110156107195760405162461bcd60e51b815260206004820152605060248201527f7365744d617853776170416d6f756e7453697a653a20616d6f756e74206d757360448201527f74206265206d6f7265207468616e206f7220657175616c20746f20302e31252060648201526f37b3103a37ba30b61039bab838363c9760811b608482015260a401610531565b6107256012600a611a40565b61072f9082611a4e565b60095550565b5f546001600160a01b0316331461075e5760405162461bcd60e51b815260040161053190611917565b600d54610100900460ff16156107c45760405162461bcd60e51b815260206004820152602560248201527f6f70656e54726164696e673a2054726164696e6720697320616c72656164792060448201526437b832b71760d91b6064820152608401610531565b600d805461ff001916610100179055565b5f546001600160a01b031633146107fe5760405162461bcd60e51b815260040161053190611917565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461086f5760405162461bcd60e51b815260040161053190611917565b61087b6012600a611a40565b61088990630bebc200611a4e565b6008556108986012600a611a40565b6108a690630bebc200611a4e565b600755600d805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6108e06012600a611a40565b6108ee90630bebc200611a4e565b60405190815260200160405180910390a1565b5f546001600160a01b0316331461092a5760405162461bcd60e51b815260040161053190611917565b60238111156109975760405162461bcd60e51b815260206004820152603360248201527f73657453656c6c4665653a2073656c6c46656550657263656e7461676520736860448201527237bab6323713ba1032bc31b2b2b210199a929760691b6064820152608401610531565b600c55565b5f546001600160a01b031633146109c55760405162461bcd60e51b815260040161053190611917565b6001600160a01b0381166109d7575f80fd5b600380546001600160a01b0319166001600160a01b0392909216919091179055565b5f6104fe338484610f51565b5f546001600160a01b03163314610a2e5760405162461bcd60e51b815260040161053190611917565b610a456103e861068560016106716012600a611a40565b811015610ad45760405162461bcd60e51b815260206004820152605160248201527f7365744d61785472616e73616374696f6e53697a653a20616d6f756e74206d7560448201527f7374206265206d6f7265207468616e206f7220657175616c20746f20302e31256064820152701037b3103a37ba30b61039bab838363c9760791b608482015260a401610531565b610ae06012600a611a40565b610aea9082611a4e565b60085550565b600a546001600160a01b0316336001600160a01b031614610b0f575f80fd5b306001600160a01b03841603610b8d5760405162461bcd60e51b815260206004820152603760248201527f7769746864726177537475636b546f6b656e3a204e6f7420616c6c6f7765642060448201527f746f207769746864726177207468697320746f6b656e2e0000000000000000006064820152608401610531565b6040516370a0823160e01b81523060048201525f906001600160a01b038516906370a0823190602401602060405180830381865afa158015610bd1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bf59190611a65565b905081811015610c5f5760405162461bcd60e51b815260206004820152602f60248201527f7769746864726177537475636b546f6b656e3a204e6f7420656e6f756768207460448201526e37b5b2b71030bb30b4b630b136329760891b6064820152608401610531565b60405163a9059cbb60e01b81526001600160a01b0384811660048301526024820184905285169063a9059cbb906044016020604051808303815f875af1158015610cab573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ccf9190611a7c565b5050505050565b600a546001600160a01b0316336001600160a01b031614610cf5575f80fd5b305f908152600560205260409020548015610d1357610d1381611570565b50565b5f546001600160a01b03163314610d3f5760405162461bcd60e51b815260040161053190611917565b610d566103e861068560016106716012600a611a40565b811015610de05760405162461bcd60e51b815260206004820152604c60248201527f7365744d617857616c6c657453697a653a20616d6f756e74206d75737420626560448201527f206d6f7265207468616e206f7220657175616c20746f20302e3125206f66207460648201526b37ba30b61039bab838363c9760a11b608482015260a401610531565b610dec6012600a611a40565b610df69082611a4e565b60075550565b600a546001600160a01b0316336001600160a01b031614610e1b575f80fd5b478015610d1357610d13816116f7565b6001600160a01b038316610e8f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152643932b9b99760d91b6064820152608401610531565b6001600160a01b038216610ef15760405162461bcd60e51b815260206004820152602360248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201526239b99760e91b6064820152608401610531565b6001600160a01b038381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610fb65760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015265323932b9b99760d11b6064820152608401610531565b6001600160a01b0382166110185760405162461bcd60e51b8152602060048201526024808201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526332b9b99760e11b6064820152608401610531565b5f81116110855760405162461bcd60e51b815260206004820152603560248201527f5f7472616e736665723a205472616e7366657220616d6f756e74206d7573742060448201527431329033b932b0ba32b9103a3430b7103d32b9379760591b6064820152608401610531565b5f80546001600160a01b038581169116148015906110b057505f546001600160a01b03848116911614155b1561133557600d54610100900460ff166111165760405162461bcd60e51b815260206004820152602160248201527f5f7472616e736665723a205472616465206973206e6f7420796574206f70656e6044820152601760f91b6064820152608401610531565b60085482111561118e5760405162461bcd60e51b815260206004820152603b60248201527f5f7472616e736665723a20416d6f756e74206f66207472616e7366657220657860448201527f6365656473206d6178207472616e73616374696f6e2073697a652e00000000006064820152608401610531565b6002546001600160a01b0385811691161480156111b957506001546001600160a01b03848116911614155b1561127857600754826111e0856001600160a01b03165f9081526005602052604090205490565b6111ea9190611a9b565b11156112575760405162461bcd60e51b815260206004820152603660248201527f5f7472616e736665723a20416d6f756e74206f66207472616e7366657220657860448201527531b2b2b2399036b0bc103bb0b63632ba1039b4bd329760511b6064820152608401610531565b6112716064610685600b54856114aa90919063ffffffff16565b9050611335565b6002546001600160a01b0390811690841603611332576112a86064610685600c54856114aa90919063ffffffff16565b305f90815260056020526040902054600d549192509062010000900460ff161580156112e157506002546001600160a01b038581169116145b1561132c57600d5460ff1615611323575f60095482116113015781611305565b6009545b905061131d8185116113175784611570565b81611570565b5061132c565b61132c81611570565b50611335565b505f5b80156113ad57305f908152600560205260409020546113549082611732565b305f81815260056020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113a49085815260200190565b60405180910390a35b6001600160a01b0384165f908152600560205260409020546113cf9083611790565b6001600160a01b0385165f908152600560205260409020556114126113f48383611790565b6001600160a01b0385165f9081526005602052604090205490611732565b6001600160a01b038085165f8181526005602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61145b8585611790565b60405190815260200160405180910390a350505050565b5f81848411156114955760405162461bcd60e51b815260040161053191906117fd565b505f6114a18486611aae565b95945050505050565b5f825f036114b957505f610502565b5f6114c48385611a4e565b9050826114d18583611ac1565b146115285760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610531565b9392505050565b5f61152883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506117d1565b600d805462ff000019166201000017905580156116e85760085481111561159657506008545b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106115c9576115c9611ae0565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611620573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116449190611af4565b8160018151811061165757611657611ae0565b6001600160a01b03928316602091820292909201015260015461167d9130911684610e2b565b600154600a5460405163791ac94760e01b81526001600160a01b039283169263791ac947926116b99287925f9288929116904290600401611b0f565b5f604051808303815f87803b1580156116d0575f80fd5b505af11580156116e2573d5f803e3d5ffd5b50505050505b50600d805462ff000019169055565b600a546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561172e573d5f803e3d5ffd5b5050565b5f8061173e8385611a9b565b9050838110156115285760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610531565b5f61152883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611472565b5f81836117f15760405162461bcd60e51b815260040161053191906117fd565b505f6114a18486611ac1565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114610d13575f80fd5b5f8060408385031215611857575f80fd5b823561186281611832565b946020939093013593505050565b5f60208284031215611880575f80fd5b5035919050565b5f805f60608486031215611899575f80fd5b83356118a481611832565b925060208401356118b481611832565b929592945050506040919091013590565b5f602082840312156118d5575f80fd5b813561152881611832565b5f80604083850312156118f1575f80fd5b82356118fc81611832565b9150602083013561190c81611832565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561199a57815f19048211156119805761198061194c565b8085161561198d57918102915b93841c9390800290611965565b509250929050565b5f826119b057506001610502565b816119bc57505f610502565b81600181146119d257600281146119dc576119f8565b6001915050610502565b60ff8411156119ed576119ed61194c565b50506001821b610502565b5060208310610133831016604e8410600b8410161715611a1b575081810a610502565b611a258383611960565b805f1904821115611a3857611a3861194c565b029392505050565b5f61152860ff8416836119a2565b80820281158282048414176105025761050261194c565b5f60208284031215611a75575f80fd5b5051919050565b5f60208284031215611a8c575f80fd5b81518015158114611528575f80fd5b808201808211156105025761050261194c565b818103818111156105025761050261194c565b5f82611adb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611b04575f80fd5b815161152881611832565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611b5f5784516001600160a01b031683529383019391830191600101611b3a565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63652ea2646970667358221220318abe063db01bd558e1d6c38d0c77e386c0eb25ceda8d2e8d2b06f4d244e97c64736f6c63430008190033000000000000000000000000200bfe1ebd39eb138c4b173a7023121e694ef3b2

Deployed Bytecode

0x60806040526004361061017e575f3560e01c80638b4cee08116100cd578063bda844c111610087578063e06bd4a511610062578063e06bd4a51461048b578063ea1644d5146104a0578063ee99205c146104bf578063f5648a4f146104de575f80fd5b8063bda844c114610414578063dd62ed3e14610433578063df778d2614610477575f80fd5b80638b4cee081461033d5780638da5cb5b1461035c57806395d89b411461038c5780639dd373b9146103b7578063a9059cbb146103d6578063a9e59da3146103f5575f80fd5b806354ccdefc1161013857806370a082311161011357806370a08231146102cc578063715018a614610300578063751039fc146103145780637d1db4a514610328575f80fd5b806354ccdefc1461028457806360cba894146102a35780636c0a24eb146102b7575f80fd5b806306fdde0314610189578063095ea7b3146101d85780630cc835a31461020757806318160ddd1461022857806323b872dd1461024a578063313ce56714610269575f80fd5b3661018557005b5f80fd5b348015610194575f80fd5b506040805180820190915260158152744368726f6d6120496e66726173747275637475726560581b60208201525b6040516101cf91906117fd565b60405180910390f35b3480156101e3575f80fd5b506101f76101f2366004611846565b6104f2565b60405190151581526020016101cf565b348015610212575f80fd5b50610226610221366004611870565b610508565b005b348015610233575f80fd5b5061023c6105aa565b6040519081526020016101cf565b348015610255575f80fd5b506101f7610264366004611887565b6105ca565b348015610274575f80fd5b50604051601281526020016101cf565b34801561028f575f80fd5b5061022661029e366004611870565b610631565b3480156102ae575f80fd5b50610226610735565b3480156102c2575f80fd5b5061023c60075481565b3480156102d7575f80fd5b5061023c6102e63660046118c5565b6001600160a01b03165f9081526005602052604090205490565b34801561030b575f80fd5b506102266107d5565b34801561031f575f80fd5b50610226610846565b348015610333575f80fd5b5061023c60085481565b348015610348575f80fd5b50610226610357366004611870565b610901565b348015610367575f80fd5b505f546001600160a01b03165b6040516001600160a01b0390911681526020016101cf565b348015610397575f80fd5b506040805180820190915260038152620869ab60eb1b60208201526101c2565b3480156103c2575f80fd5b506102266103d13660046118c5565b61099c565b3480156103e1575f80fd5b506101f76103f0366004611846565b6109f9565b348015610400575f80fd5b5061022661040f366004611870565b610a05565b34801561041f575f80fd5b5061022661042e366004611887565b610af0565b34801561043e575f80fd5b5061023c61044d3660046118e0565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b348015610482575f80fd5b50610226610cd6565b348015610496575f80fd5b5061023c60095481565b3480156104ab575f80fd5b506102266104ba366004611870565b610d16565b3480156104ca575f80fd5b50600354610374906001600160a01b031681565b3480156104e9575f80fd5b50610226610dfc565b5f6104fe338484610e2b565b5060015b92915050565b5f546001600160a01b0316331461053a5760405162461bcd60e51b815260040161053190611917565b60405180910390fd5b60238111156105a55760405162461bcd60e51b815260206004820152603160248201527f7365744275794665653a2062757946656550657263656e746167652073686f7560448201527036323713ba1032bc31b2b2b210199a929760791b6064820152608401610531565b600b55565b5f6105b76012600a611a40565b6105c590630bebc200611a4e565b905090565b5f6105d6848484610f51565b610627843361062285604051806060016040528060298152602001611b81602991396001600160a01b038a165f9081526004602090815260408083203384529091529020549190611472565b610e2b565b5060019392505050565b5f546001600160a01b0316331461065a5760405162461bcd60e51b815260040161053190611917565b61068b6103e861068560016106716012600a611a40565b61067f90630bebc200611a4e565b906114aa565b9061152f565b8110156107195760405162461bcd60e51b815260206004820152605060248201527f7365744d617853776170416d6f756e7453697a653a20616d6f756e74206d757360448201527f74206265206d6f7265207468616e206f7220657175616c20746f20302e31252060648201526f37b3103a37ba30b61039bab838363c9760811b608482015260a401610531565b6107256012600a611a40565b61072f9082611a4e565b60095550565b5f546001600160a01b0316331461075e5760405162461bcd60e51b815260040161053190611917565b600d54610100900460ff16156107c45760405162461bcd60e51b815260206004820152602560248201527f6f70656e54726164696e673a2054726164696e6720697320616c72656164792060448201526437b832b71760d91b6064820152608401610531565b600d805461ff001916610100179055565b5f546001600160a01b031633146107fe5760405162461bcd60e51b815260040161053190611917565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461086f5760405162461bcd60e51b815260040161053190611917565b61087b6012600a611a40565b61088990630bebc200611a4e565b6008556108986012600a611a40565b6108a690630bebc200611a4e565b600755600d805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6108e06012600a611a40565b6108ee90630bebc200611a4e565b60405190815260200160405180910390a1565b5f546001600160a01b0316331461092a5760405162461bcd60e51b815260040161053190611917565b60238111156109975760405162461bcd60e51b815260206004820152603360248201527f73657453656c6c4665653a2073656c6c46656550657263656e7461676520736860448201527237bab6323713ba1032bc31b2b2b210199a929760691b6064820152608401610531565b600c55565b5f546001600160a01b031633146109c55760405162461bcd60e51b815260040161053190611917565b6001600160a01b0381166109d7575f80fd5b600380546001600160a01b0319166001600160a01b0392909216919091179055565b5f6104fe338484610f51565b5f546001600160a01b03163314610a2e5760405162461bcd60e51b815260040161053190611917565b610a456103e861068560016106716012600a611a40565b811015610ad45760405162461bcd60e51b815260206004820152605160248201527f7365744d61785472616e73616374696f6e53697a653a20616d6f756e74206d7560448201527f7374206265206d6f7265207468616e206f7220657175616c20746f20302e31256064820152701037b3103a37ba30b61039bab838363c9760791b608482015260a401610531565b610ae06012600a611a40565b610aea9082611a4e565b60085550565b600a546001600160a01b0316336001600160a01b031614610b0f575f80fd5b306001600160a01b03841603610b8d5760405162461bcd60e51b815260206004820152603760248201527f7769746864726177537475636b546f6b656e3a204e6f7420616c6c6f7765642060448201527f746f207769746864726177207468697320746f6b656e2e0000000000000000006064820152608401610531565b6040516370a0823160e01b81523060048201525f906001600160a01b038516906370a0823190602401602060405180830381865afa158015610bd1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bf59190611a65565b905081811015610c5f5760405162461bcd60e51b815260206004820152602f60248201527f7769746864726177537475636b546f6b656e3a204e6f7420656e6f756768207460448201526e37b5b2b71030bb30b4b630b136329760891b6064820152608401610531565b60405163a9059cbb60e01b81526001600160a01b0384811660048301526024820184905285169063a9059cbb906044016020604051808303815f875af1158015610cab573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ccf9190611a7c565b5050505050565b600a546001600160a01b0316336001600160a01b031614610cf5575f80fd5b305f908152600560205260409020548015610d1357610d1381611570565b50565b5f546001600160a01b03163314610d3f5760405162461bcd60e51b815260040161053190611917565b610d566103e861068560016106716012600a611a40565b811015610de05760405162461bcd60e51b815260206004820152604c60248201527f7365744d617857616c6c657453697a653a20616d6f756e74206d75737420626560448201527f206d6f7265207468616e206f7220657175616c20746f20302e3125206f66207460648201526b37ba30b61039bab838363c9760a11b608482015260a401610531565b610dec6012600a611a40565b610df69082611a4e565b60075550565b600a546001600160a01b0316336001600160a01b031614610e1b575f80fd5b478015610d1357610d13816116f7565b6001600160a01b038316610e8f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152643932b9b99760d91b6064820152608401610531565b6001600160a01b038216610ef15760405162461bcd60e51b815260206004820152602360248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201526239b99760e91b6064820152608401610531565b6001600160a01b038381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610fb65760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015265323932b9b99760d11b6064820152608401610531565b6001600160a01b0382166110185760405162461bcd60e51b8152602060048201526024808201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526332b9b99760e11b6064820152608401610531565b5f81116110855760405162461bcd60e51b815260206004820152603560248201527f5f7472616e736665723a205472616e7366657220616d6f756e74206d7573742060448201527431329033b932b0ba32b9103a3430b7103d32b9379760591b6064820152608401610531565b5f80546001600160a01b038581169116148015906110b057505f546001600160a01b03848116911614155b1561133557600d54610100900460ff166111165760405162461bcd60e51b815260206004820152602160248201527f5f7472616e736665723a205472616465206973206e6f7420796574206f70656e6044820152601760f91b6064820152608401610531565b60085482111561118e5760405162461bcd60e51b815260206004820152603b60248201527f5f7472616e736665723a20416d6f756e74206f66207472616e7366657220657860448201527f6365656473206d6178207472616e73616374696f6e2073697a652e00000000006064820152608401610531565b6002546001600160a01b0385811691161480156111b957506001546001600160a01b03848116911614155b1561127857600754826111e0856001600160a01b03165f9081526005602052604090205490565b6111ea9190611a9b565b11156112575760405162461bcd60e51b815260206004820152603660248201527f5f7472616e736665723a20416d6f756e74206f66207472616e7366657220657860448201527531b2b2b2399036b0bc103bb0b63632ba1039b4bd329760511b6064820152608401610531565b6112716064610685600b54856114aa90919063ffffffff16565b9050611335565b6002546001600160a01b0390811690841603611332576112a86064610685600c54856114aa90919063ffffffff16565b305f90815260056020526040902054600d549192509062010000900460ff161580156112e157506002546001600160a01b038581169116145b1561132c57600d5460ff1615611323575f60095482116113015781611305565b6009545b905061131d8185116113175784611570565b81611570565b5061132c565b61132c81611570565b50611335565b505f5b80156113ad57305f908152600560205260409020546113549082611732565b305f81815260056020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113a49085815260200190565b60405180910390a35b6001600160a01b0384165f908152600560205260409020546113cf9083611790565b6001600160a01b0385165f908152600560205260409020556114126113f48383611790565b6001600160a01b0385165f9081526005602052604090205490611732565b6001600160a01b038085165f8181526005602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61145b8585611790565b60405190815260200160405180910390a350505050565b5f81848411156114955760405162461bcd60e51b815260040161053191906117fd565b505f6114a18486611aae565b95945050505050565b5f825f036114b957505f610502565b5f6114c48385611a4e565b9050826114d18583611ac1565b146115285760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610531565b9392505050565b5f61152883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506117d1565b600d805462ff000019166201000017905580156116e85760085481111561159657506008545b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106115c9576115c9611ae0565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611620573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116449190611af4565b8160018151811061165757611657611ae0565b6001600160a01b03928316602091820292909201015260015461167d9130911684610e2b565b600154600a5460405163791ac94760e01b81526001600160a01b039283169263791ac947926116b99287925f9288929116904290600401611b0f565b5f604051808303815f87803b1580156116d0575f80fd5b505af11580156116e2573d5f803e3d5ffd5b50505050505b50600d805462ff000019169055565b600a546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561172e573d5f803e3d5ffd5b5050565b5f8061173e8385611a9b565b9050838110156115285760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610531565b5f61152883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611472565b5f81836117f15760405162461bcd60e51b815260040161053191906117fd565b505f6114a18486611ac1565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114610d13575f80fd5b5f8060408385031215611857575f80fd5b823561186281611832565b946020939093013593505050565b5f60208284031215611880575f80fd5b5035919050565b5f805f60608486031215611899575f80fd5b83356118a481611832565b925060208401356118b481611832565b929592945050506040919091013590565b5f602082840312156118d5575f80fd5b813561152881611832565b5f80604083850312156118f1575f80fd5b82356118fc81611832565b9150602083013561190c81611832565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561199a57815f19048211156119805761198061194c565b8085161561198d57918102915b93841c9390800290611965565b509250929050565b5f826119b057506001610502565b816119bc57505f610502565b81600181146119d257600281146119dc576119f8565b6001915050610502565b60ff8411156119ed576119ed61194c565b50506001821b610502565b5060208310610133831016604e8410600b8410161715611a1b575081810a610502565b611a258383611960565b805f1904821115611a3857611a3861194c565b029392505050565b5f61152860ff8416836119a2565b80820281158282048414176105025761050261194c565b5f60208284031215611a75575f80fd5b5051919050565b5f60208284031215611a8c575f80fd5b81518015158114611528575f80fd5b808201808211156105025761050261194c565b818103818111156105025761050261194c565b5f82611adb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611b04575f80fd5b815161152881611832565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611b5f5784516001600160a01b031683529383019391830191600101611b3a565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63652ea2646970667358221220318abe063db01bd558e1d6c38d0c77e386c0eb25ceda8d2e8d2b06f4d244e97c64736f6c63430008190033

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

000000000000000000000000200bfe1ebd39eb138c4b173a7023121e694ef3b2

-----Decoded View---------------
Arg [0] : feeWalletAddress (address): 0x200BFe1EbD39eB138c4B173a7023121e694ef3B2

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000200bfe1ebd39eb138c4b173a7023121e694ef3b2


Deployed Bytecode Sourcemap

4340:8967:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6187:83;;;;;;;;;;-1:-1:-1;6257:5:0;;;;;;;;;;;;-1:-1:-1;;;6257:5:0;;;;6187:83;;;;;;;:::i;:::-;;;;;;;;6373:161;;;;;;;;;;-1:-1:-1;6373:161:0;;;;;:::i;:::-;;:::i;:::-;;;1058:14:1;;1051:22;1033:41;;1021:2;1006:18;6373:161:0;893:187:1;11253:211:0;;;;;;;;;;-1:-1:-1;11253:211:0;;;;;:::i;:::-;;:::i;:::-;;6955:95;;;;;;;;;;;;;:::i;:::-;;;1416:25:1;;;1404:2;1389:18;6955:95:0;1270:177:1;6633:314:0;;;;;;;;;;-1:-1:-1;6633:314:0;;;;;:::i;:::-;;:::i;6542:83::-;;;;;;;;;;-1:-1:-1;6542:83:0;;4884:2;2055:36:1;;2043:2;2028:18;6542:83:0;1913:184:1;12851:261:0;;;;;;;;;;-1:-1:-1;12851:261:0;;;;;:::i;:::-;;:::i;11698:150::-;;;;;;;;;;;;;:::i;4963:58::-;;;;;;;;;;;;;;;;7058:119;;;;;;;;;;-1:-1:-1;7058:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;7151:18:0;7124:7;7151:18;;;:9;:18;;;;;;;7058:119;3421:148;;;;;;;;;;;;;:::i;12119:192::-;;;;;;;;;;;;;:::i;5028:54::-;;;;;;;;;;;;;;;;11472:218;;;;;;;;;;-1:-1:-1;11472:218:0;;;;;:::i;:::-;;:::i;3207:79::-;;;;;;;;;;-1:-1:-1;3245:7:0;3272:6;-1:-1:-1;;;;;3272:6:0;3207:79;;;-1:-1:-1;;;;;2518:32:1;;;2500:51;;2488:2;2473:18;3207:79:0;2354:203:1;6278:87:0;;;;;;;;;;-1:-1:-1;6350:7:0;;;;;;;;;;;;-1:-1:-1;;;6350:7:0;;;;6278:87;;13120:180;;;;;;;;;;-1:-1:-1;13120:180:0;;;;;:::i;:::-;;:::i;7185:167::-;;;;;;;;;;-1:-1:-1;7185:167:0;;;;;:::i;:::-;;:::i;12582:261::-;;;;;;;;;;-1:-1:-1;12582:261:0;;;;;:::i;:::-;;:::i;10499:519::-;;;;;;;;;;-1:-1:-1;10499:519:0;;;;;:::i;:::-;;:::i;7360:143::-;;;;;;;;;;-1:-1:-1;7360:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;7468:18:0;;;7441:7;7468:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7360:143;11856:218;;;;;;;;;;;;;:::i;5089:56::-;;;;;;;;;;;;;;;;12319:255;;;;;;;;;;-1:-1:-1;12319:255:0;;;;;:::i;:::-;;:::i;4506:33::-;;;;;;;;;;-1:-1:-1;4506:33:0;;;;-1:-1:-1;;;;;4506:33:0;;;11026:219;;;;;;;;;;;;;:::i;6373:161::-;6448:4;6465:39;953:10;6488:7;6497:6;6465:8;:39::i;:::-;-1:-1:-1;6522:4:0;6373:161;;;;;:::o;11253:211::-;3334:6;;-1:-1:-1;;;;;3334:6:0;953:10;3334:22;3326:67;;;;-1:-1:-1;;;3326:67:0;;;;;;;:::i;:::-;;;;;;;;;11356:2:::1;11336:16;:22;;11328:84;;;::::0;-1:-1:-1;;;11328:84:0;;4012:2:1;11328:84:0::1;::::0;::::1;3994:21:1::0;4051:2;4031:18;;;4024:30;4090:34;4070:18;;;4063:62;-1:-1:-1;;;4141:18:1;;;4134:47;4198:19;;11328:84:0::1;3810:413:1::0;11328:84:0::1;11423:14;:33:::0;11253:211::o;6955:95::-;7008:7;4943:13;4884:2;4943;:13;:::i;:::-;4928:28;;:11;:28;:::i;:::-;7028:14;;6955:95;:::o;6633:314::-;6731:4;6748:36;6758:6;6766:9;6777:6;6748:9;:36::i;:::-;6795:122;6804:6;953:10;6826:90;6864:6;6826:90;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6826:19:0;;;;;;:11;:19;;;;;;;;953:10;6826:33;;;;;;;;;;:37;:90::i;:::-;6795:8;:122::i;:::-;-1:-1:-1;6935:4:0;6633:314;;;;;:::o;12851:261::-;3334:6;;-1:-1:-1;;;;;3334:6:0;953:10;3334:22;3326:67;;;;-1:-1:-1;;;3326:67:0;;;;;;;:::i;:::-;12945:24:::1;12964:4;12945:14;12957:1;4943:13;4884:2;4943;:13;:::i;:::-;4928:28;::::0;:11:::1;:28;:::i;:::-;12945:11:::0;::::1;:14::i;:::-;:18:::0;::::1;:24::i;:::-;12935:6;:34;;12927:127;;;::::0;-1:-1:-1;;;12927:127:0;;6112:2:1;12927:127:0::1;::::0;::::1;6094:21:1::0;6151:2;6131:18;;;6124:30;6190:34;6170:18;;;6163:62;6261:34;6241:18;;;6234:62;-1:-1:-1;;;6312:19:1;;;6305:47;6369:19;;12927:127:0::1;5910:484:1::0;12927:127:0::1;13091:13;4884:2;13091;:13;:::i;:::-;13082:22;::::0;:6;:22:::1;:::i;:::-;13065:14;:39:::0;-1:-1:-1;12851:261:0:o;11698:150::-;3334:6;;-1:-1:-1;;;;;3334:6:0;953:10;3334:22;3326:67;;;;-1:-1:-1;;;3326:67:0;;;;;;;:::i;:::-;11759:11:::1;::::0;::::1;::::0;::::1;;;11758:12;11750:61;;;::::0;-1:-1:-1;;;11750:61:0;;6601:2:1;11750:61:0::1;::::0;::::1;6583:21:1::0;6640:2;6620:18;;;6613:30;6679:34;6659:18;;;6652:62;-1:-1:-1;;;6730:18:1;;;6723:35;6775:19;;11750:61:0::1;6399:401:1::0;11750:61:0::1;11822:11;:18:::0;;-1:-1:-1;;11822:18:0::1;;;::::0;;11698:150::o;3421:148::-;3334:6;;-1:-1:-1;;;;;3334:6:0;953:10;3334:22;3326:67;;;;-1:-1:-1;;;3326:67:0;;;;;;;:::i;:::-;3528:1:::1;3512:6:::0;;3491:40:::1;::::0;-1:-1:-1;;;;;3512:6:0;;::::1;::::0;3491:40:::1;::::0;3528:1;;3491:40:::1;3559:1;3542:19:::0;;-1:-1:-1;;;;;;3542:19:0::1;::::0;;3421:148::o;12119:192::-;3334:6;;-1:-1:-1;;;;;3334:6:0;953:10;3334:22;3326:67;;;;-1:-1:-1;;;3326:67:0;;;;;;;:::i;:::-;4943:13:::1;4884:2;4943;:13;:::i;:::-;4928:28;::::0;:11:::1;:28;:::i;:::-;12173:12;:22:::0;4943:13:::1;4884:2;4943;:13;:::i;:::-;4928:28;::::0;:11:::1;:28;:::i;:::-;12206:16;:24:::0;12241:11:::1;:19:::0;;-1:-1:-1;;12241:19:0::1;::::0;;12276:27:::1;4943:13;4884:2;4943;:13;:::i;:::-;4928:28;::::0;:11:::1;:28;:::i;:::-;12276:27;::::0;1416:25:1;;;1404:2;1389:18;12276:27:0::1;;;;;;;12119:192::o:0;11472:218::-;3334:6;;-1:-1:-1;;;;;3334:6:0;953:10;3334:22;3326:67;;;;-1:-1:-1;;;3326:67:0;;;;;;;:::i;:::-;11578:2:::1;11557:17;:23;;11549:87;;;::::0;-1:-1:-1;;;11549:87:0;;7007:2:1;11549:87:0::1;::::0;::::1;6989:21:1::0;7046:2;7026:18;;;7019:30;7085:34;7065:18;;;7058:62;-1:-1:-1;;;7136:18:1;;;7129:49;7195:19;;11549:87:0::1;6805:415:1::0;11549:87:0::1;11647:15;:35:::0;11472:218::o;13120:180::-;3334:6;;-1:-1:-1;;;;;3334:6:0;953:10;3334:22;3326:67;;;;-1:-1:-1;;;3326:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13211:37:0;::::1;13203:46;;;::::0;::::1;;13258:15;:34:::0;;-1:-1:-1;;;;;;13258:34:0::1;-1:-1:-1::0;;;;;13258:34:0;;;::::1;::::0;;;::::1;::::0;;13120:180::o;7185:167::-;7263:4;7280:42;953:10;7304:9;7315:6;7280:9;:42::i;12582:261::-;3334:6;;-1:-1:-1;;;;;3334:6:0;953:10;3334:22;3326:67;;;;-1:-1:-1;;;3326:67:0;;;;;;;:::i;:::-;12677:24:::1;12696:4;12677:14;12689:1;4943:13;4884:2;4943;:13;:::i;12677:24::-;12667:6;:34;;12659:128;;;::::0;-1:-1:-1;;;12659:128:0;;7427:2:1;12659:128:0::1;::::0;::::1;7409:21:1::0;7466:2;7446:18;;;7439:30;7505:34;7485:18;;;7478:62;7576:34;7556:18;;;7549:62;-1:-1:-1;;;7627:19:1;;;7620:48;7685:19;;12659:128:0::1;7225:485:1::0;12659:128:0::1;12822:13;4884:2;12822;:13;:::i;:::-;12813:22;::::0;:6;:22:::1;:::i;:::-;12798:12;:37:::0;-1:-1:-1;12582:261:0:o;10499:519::-;10640:10;;-1:-1:-1;;;;;10640:10:0;953;-1:-1:-1;;;;;10626:24:0;;10618:33;;;;;;10702:4;-1:-1:-1;;;;;10670:37:0;;;10662:105;;;;-1:-1:-1;;;10662:105:0;;7917:2:1;10662:105:0;;;7899:21:1;7956:2;7936:18;;;7929:30;7995:34;7975:18;;;7968:62;8066:25;8046:18;;;8039:53;8109:19;;10662:105:0;7715:419:1;10662:105:0;10796:53;;-1:-1:-1;;;10796:53:0;;10843:4;10796:53;;;2500:51:1;10778:15:0;;-1:-1:-1;;;;;10796:38:0;;;;;2473:18:1;;10796:53:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10778:71;;10879:6;10868:7;:17;;10860:77;;;;-1:-1:-1;;;10860:77:0;;8530:2:1;10860:77:0;;;8512:21:1;8569:2;8549:18;;;8542:30;8608:34;8588:18;;;8581:62;-1:-1:-1;;;8659:18:1;;;8652:45;8714:19;;10860:77:0;8328:411:1;10860:77:0;10948:62;;-1:-1:-1;;;10948:62:0;;-1:-1:-1;;;;;8936:32:1;;;10948:62:0;;;8918:51:1;8985:18;;;8978:34;;;10948:37:0;;;;;8891:18:1;;10948:62:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10607:411;10499:519;;;:::o;11856:218::-;11919:10;;-1:-1:-1;;;;;11919:10:0;953;-1:-1:-1;;;;;11905:24:0;;11897:33;;;;;;11979:4;11941:19;7151:18;;;:9;:18;;;;;;11999:13;;11996:71;;12026:29;12043:11;12026:16;:29::i;:::-;11886:188;11856:218::o;12319:255::-;3334:6;;-1:-1:-1;;;;;3334:6:0;953:10;3334:22;3326:67;;;;-1:-1:-1;;;3326:67:0;;;;;;;:::i;:::-;12409:24:::1;12428:4;12409:14;12421:1;4943:13;4884:2;4943;:13;:::i;12409:24::-;12399:6;:34;;12391:123;;;::::0;-1:-1:-1;;;12391:123:0;;9507:2:1;12391:123:0::1;::::0;::::1;9489:21:1::0;9546:2;9526:18;;;9519:30;9585:34;9565:18;;;9558:62;9656:34;9636:18;;;9629:62;-1:-1:-1;;;9707:19:1;;;9700:43;9760:19;;12391:123:0::1;9305:480:1::0;12391:123:0::1;12553:13;4884:2;12553;:13;:::i;:::-;12544:22;::::0;:6;:22:::1;:::i;:::-;12525:16;:41:::0;-1:-1:-1;12319:255:0:o;11026:219::-;11098:10;;-1:-1:-1;;;;;11098:10:0;953;-1:-1:-1;;;;;11082:26:0;;11074:35;;;;;;11141:21;11176:12;;11173:65;;11202:24;11215:10;11202:12;:24::i;7511:337::-;-1:-1:-1;;;;;7604:19:0;;7596:69;;;;-1:-1:-1;;;7596:69:0;;9992:2:1;7596:69:0;;;9974:21:1;10031:2;10011:18;;;10004:30;10070:34;10050:18;;;10043:62;-1:-1:-1;;;10121:18:1;;;10114:35;10166:19;;7596:69:0;9790:401:1;7596:69:0;-1:-1:-1;;;;;7684:21:0;;7676:69;;;;-1:-1:-1;;;7676:69:0;;10398:2:1;7676:69:0;;;10380:21:1;10437:2;10417:18;;;10410:30;10476:34;10456:18;;;10449:62;-1:-1:-1;;;10527:18:1;;;10520:33;10570:19;;7676:69:0;10196:399:1;7676:69:0;-1:-1:-1;;;;;7756:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7808:32;;1416:25:1;;;7808:32:0;;1389:18:1;7808:32:0;;;;;;;7511:337;;;:::o;7856:1905::-;-1:-1:-1;;;;;7944:18:0;;7936:69;;;;-1:-1:-1;;;7936:69:0;;10802:2:1;7936:69:0;;;10784:21:1;10841:2;10821:18;;;10814:30;10880:34;10860:18;;;10853:62;-1:-1:-1;;;10931:18:1;;;10924:36;10977:19;;7936:69:0;10600:402:1;7936:69:0;-1:-1:-1;;;;;8024:16:0;;8016:65;;;;-1:-1:-1;;;8016:65:0;;11209:2:1;8016:65:0;;;11191:21:1;11248:2;11228:18;;;11221:30;11287:34;11267:18;;;11260:62;-1:-1:-1;;;11338:18:1;;;11331:34;11382:19;;8016:65:0;11007:400:1;8016:65:0;8109:1;8100:6;:10;8092:76;;;;-1:-1:-1;;;8092:76:0;;11614:2:1;8092:76:0;;;11596:21:1;11653:2;11633:18;;;11626:30;11692:34;11672:18;;;11665:62;-1:-1:-1;;;11743:18:1;;;11736:51;11804:19;;8092:76:0;11412:417:1;8092:76:0;8179:17;3272:6;;-1:-1:-1;;;;;8213:15:0;;;3272:6;;8213:15;;;;:32;;-1:-1:-1;3245:7:0;3272:6;-1:-1:-1;;;;;8232:13:0;;;3272:6;;8232:13;;8213:32;8209:1198;;;8270:11;;;;;;;8262:56;;;;-1:-1:-1;;;8262:56:0;;12036:2:1;8262:56:0;;;12018:21:1;12075:2;12055:18;;;12048:30;12114:34;12094:18;;;12087:62;-1:-1:-1;;;12165:18:1;;;12158:31;12206:19;;8262:56:0;11834:397:1;8262:56:0;8351:12;;8341:6;:22;;8333:94;;;;-1:-1:-1;;;8333:94:0;;12438:2:1;8333:94:0;;;12420:21:1;12477:2;12457:18;;;12450:30;12516:34;12496:18;;;12489:62;12587:29;12567:18;;;12560:57;12634:19;;8333:94:0;12236:423:1;8333:94:0;8454:13;;-1:-1:-1;;;;;8446:21:0;;;8454:13;;8446:21;:55;;;;-1:-1:-1;8485:15:0;;-1:-1:-1;;;;;8471:30:0;;;8485:15;;8471:30;;8446:55;8442:954;;;8556:16;;8546:6;8530:13;8540:2;-1:-1:-1;;;;;7151:18:0;7124:7;7151:18;;;:9;:18;;;;;;;7058:119;8530:13;:22;;;;:::i;:::-;:42;;8522:109;;;;-1:-1:-1;;;8522:109:0;;12996:2:1;8522:109:0;;;12978:21:1;13035:2;13015:18;;;13008:30;13074:34;13054:18;;;13047:62;-1:-1:-1;;;13125:18:1;;;13118:52;13187:19;;8522:109:0;12794:418:1;8522:109:0;8662:35;8693:3;8662:26;8673:14;;8662:6;:10;;:26;;;;:::i;:35::-;8650:47;;8442:954;;;8729:13;;-1:-1:-1;;;;;8729:13:0;;;8723:19;;;;8719:677;;8774:36;8806:3;8774:27;8785:15;;8774:6;:10;;:27;;;;:::i;:36::-;8878:4;8829:28;7151:18;;;:9;:18;;;;;;8908:6;;8762:48;;-1:-1:-1;7151:18:0;8908:6;;;;;8907:7;:30;;;;-1:-1:-1;8924:13:0;;-1:-1:-1;;;;;8918:19:0;;;8924:13;;8918:19;8907:30;8903:424;;;8966:11;;;;8962:346;;;9006:19;9052:14;;9029:20;:37;9028:75;;9083:20;9028:75;;;9068:14;;9028:75;9006:97;;9130:59;9157:11;9148:6;:20;9147:41;;9182:6;9130:16;:59::i;9147:41::-;9170:11;9130:16;:59::i;:::-;8979:234;8962:346;;;9246:38;9263:20;9246:16;:38::i;:::-;8743:599;8719:677;;;-1:-1:-1;9379:1:0;8719:677;9420:11;;9417:161;;9488:4;9470:24;;;;:9;:24;;;;;;:39;;9499:9;9470:28;:39::i;:::-;9463:4;9445:24;;;;:9;:24;;;;;;;:64;;;;9527:39;;-1:-1:-1;;;;;9527:39:0;;;;;;;9556:9;1416:25:1;;1404:2;1389:18;;1270:177;9527:39:0;;;;;;;;9417:161;-1:-1:-1;;;;;9604:15:0;;;;;;:9;:15;;;;;;:27;;9624:6;9604:19;:27::i;:::-;-1:-1:-1;;;;;9588:15:0;;;;;;:9;:15;;;;;:43;9656:40;9674:21;:6;9685:9;9674:10;:21::i;:::-;-1:-1:-1;;;;;9656:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;9642:13:0;;;;;;;:9;:13;;;;;:54;;;;9712:41;;;9731:21;:6;9742:9;9731:10;:21::i;:::-;9712:41;;1416:25:1;;;1404:2;1389:18;9712:41:0;;;;;;;7925:1836;7856:1905;;;:::o;2099:190::-;2185:7;2221:12;2213:6;;;;2205:29;;;;-1:-1:-1;;;2205:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2245:9:0;2257:5;2261:1;2257;:5;:::i;:::-;2245:17;2099:190;-1:-1:-1;;;;;2099:190:0:o;2297:246::-;2355:7;2379:1;2384;2379:6;2375:47;;-1:-1:-1;2409:1:0;2402:8;;2375:47;2432:9;2444:5;2448:1;2444;:5;:::i;:::-;2432:17;-1:-1:-1;2477:1:0;2468:5;2472:1;2432:17;2468:5;:::i;:::-;:10;2460:56;;;;-1:-1:-1;;;2460:56:0;;13774:2:1;2460:56:0;;;13756:21:1;13813:2;13793:18;;;13786:30;13852:34;13832:18;;;13825:62;-1:-1:-1;;;13903:18:1;;;13896:31;13944:19;;2460:56:0;13572:397:1;2460:56:0;2534:1;2297:246;-1:-1:-1;;;2297:246:0:o;2551:132::-;2609:7;2636:39;2640:1;2643;2636:39;;;;;;;;;;;;;;;;;:3;:39::i;9773:609::-;5405:6;:13;;-1:-1:-1;;5405:13:0;;;;;9851:27;;9870:7:::1;9851:27;9903:12;;9891:11;:24;9888:82;;;-1:-1:-1::0;9946:12:0::1;::::0;9888:82:::1;10004:16;::::0;;10018:1:::1;10004:16:::0;;;;;::::1;::::0;;9980:21:::1;::::0;10004:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10004:16:0::1;9980:40;;10049:4;10031;10036:1;10031:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10031:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10075:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;10075:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;10031:7;;10075:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10065:4;10070:1;10065:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10065:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;10140:15:::1;::::0;10108:62:::1;::::0;10125:4:::1;::::0;10140:15:::1;10158:11:::0;10108:8:::1;:62::i;:::-;10181:15;::::0;10323:10:::1;::::0;10181:193:::1;::::0;-1:-1:-1;;;10181:193:0;;-1:-1:-1;;;;;10181:15:0;;::::1;::::0;:66:::1;::::0;:193:::1;::::0;10262:11;;10181:15:::1;::::0;10304:4;;10323:10;::::1;::::0;10348:15:::1;::::0;10181:193:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9840:542;5429:1;-1:-1:-1::0;5441:6:0;:14;;-1:-1:-1;;5441:14:0;;;9773:609::o;10390:101::-;10455:10;;10447:36;;-1:-1:-1;;;;;10455:10:0;;;;10447:36;;;;;10476:6;;10455:10;10447:36;10455:10;10447:36;10476:6;10455:10;10447:36;;;;;;;;;;;;;;;;;;;;;10390:101;:::o;1768:179::-;1826:7;;1858:5;1862:1;1858;:5;:::i;:::-;1846:17;;1887:1;1882;:6;;1874:46;;;;-1:-1:-1;;;1874:46:0;;15681:2:1;1874:46:0;;;15663:21:1;15720:2;15700:18;;;15693:30;15759:29;15739:18;;;15732:57;15806:18;;1874:46:0;15479:351:1;1955:136:0;2013:7;2040:43;2044:1;2047;2040:43;;;;;;;;;;;;;;;;;:3;:43::i;2691:189::-;2777:7;2812:12;2805:5;2797:28;;;;-1:-1:-1;;;2797:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2836:9:0;2848:5;2852:1;2848;:5;:::i;14:418:1:-;163:2;152:9;145:21;126:4;195:6;189:13;238:6;233:2;222:9;218:18;211:34;297:6;292:2;284:6;280:15;275:2;264:9;260:18;254:50;353:1;348:2;339:6;328:9;324:22;320:31;313:42;423:2;416;412:7;407:2;399:6;395:15;391:29;380:9;376:45;372:54;364:62;;;14:418;;;;:::o;437:131::-;-1:-1:-1;;;;;512:31:1;;502:42;;492:70;;558:1;555;548:12;573:315;641:6;649;702:2;690:9;681:7;677:23;673:32;670:52;;;718:1;715;708:12;670:52;757:9;744:23;776:31;801:5;776:31;:::i;:::-;826:5;878:2;863:18;;;;850:32;;-1:-1:-1;;;573:315:1:o;1085:180::-;1144:6;1197:2;1185:9;1176:7;1172:23;1168:32;1165:52;;;1213:1;1210;1203:12;1165:52;-1:-1:-1;1236:23:1;;1085:180;-1:-1:-1;1085:180:1:o;1452:456::-;1529:6;1537;1545;1598:2;1586:9;1577:7;1573:23;1569:32;1566:52;;;1614:1;1611;1604:12;1566:52;1653:9;1640:23;1672:31;1697:5;1672:31;:::i;:::-;1722:5;-1:-1:-1;1779:2:1;1764:18;;1751:32;1792:33;1751:32;1792:33;:::i;:::-;1452:456;;1844:7;;-1:-1:-1;;;1898:2:1;1883:18;;;;1870:32;;1452:456::o;2102:247::-;2161:6;2214:2;2202:9;2193:7;2189:23;2185:32;2182:52;;;2230:1;2227;2220:12;2182:52;2269:9;2256:23;2288:31;2313:5;2288:31;:::i;2831:388::-;2899:6;2907;2960:2;2948:9;2939:7;2935:23;2931:32;2928:52;;;2976:1;2973;2966:12;2928:52;3015:9;3002:23;3034:31;3059:5;3034:31;:::i;:::-;3084:5;-1:-1:-1;3141:2:1;3126:18;;3113:32;3154:33;3113:32;3154:33;:::i;:::-;3206:7;3196:17;;;2831:388;;;;;:::o;3449:356::-;3651:2;3633:21;;;3670:18;;;3663:30;3729:34;3724:2;3709:18;;3702:62;3796:2;3781:18;;3449:356::o;4228:127::-;4289:10;4284:3;4280:20;4277:1;4270:31;4320:4;4317:1;4310:15;4344:4;4341:1;4334:15;4360:416;4449:1;4486:5;4449:1;4500:270;4521:7;4511:8;4508:21;4500:270;;;4580:4;4576:1;4572:6;4568:17;4562:4;4559:27;4556:53;;;4589:18;;:::i;:::-;4639:7;4629:8;4625:22;4622:55;;;4659:16;;;;4622:55;4738:22;;;;4698:15;;;;4500:270;;;4504:3;4360:416;;;;;:::o;4781:806::-;4830:5;4860:8;4850:80;;-1:-1:-1;4901:1:1;4915:5;;4850:80;4949:4;4939:76;;-1:-1:-1;4986:1:1;5000:5;;4939:76;5031:4;5049:1;5044:59;;;;5117:1;5112:130;;;;5024:218;;5044:59;5074:1;5065:10;;5088:5;;;5112:130;5149:3;5139:8;5136:17;5133:43;;;5156:18;;:::i;:::-;-1:-1:-1;;5212:1:1;5198:16;;5227:5;;5024:218;;5326:2;5316:8;5313:16;5307:3;5301:4;5298:13;5294:36;5288:2;5278:8;5275:16;5270:2;5264:4;5261:12;5257:35;5254:77;5251:159;;;-1:-1:-1;5363:19:1;;;5395:5;;5251:159;5442:34;5467:8;5461:4;5442:34;:::i;:::-;5512:6;5508:1;5504:6;5500:19;5491:7;5488:32;5485:58;;;5523:18;;:::i;:::-;5561:20;;4781:806;-1:-1:-1;;;4781:806:1:o;5592:140::-;5650:5;5679:47;5720:4;5710:8;5706:19;5700:4;5679:47;:::i;5737:168::-;5810:9;;;5841;;5858:15;;;5852:22;;5838:37;5828:71;;5879:18;;:::i;8139:184::-;8209:6;8262:2;8250:9;8241:7;8237:23;8233:32;8230:52;;;8278:1;8275;8268:12;8230:52;-1:-1:-1;8301:16:1;;8139:184;-1:-1:-1;8139:184:1:o;9023:277::-;9090:6;9143:2;9131:9;9122:7;9118:23;9114:32;9111:52;;;9159:1;9156;9149:12;9111:52;9191:9;9185:16;9244:5;9237:13;9230:21;9223:5;9220:32;9210:60;;9266:1;9263;9256:12;12664:125;12729:9;;;12750:10;;;12747:36;;;12763:18;;:::i;13217:128::-;13284:9;;;13305:11;;;13302:37;;;13319:18;;:::i;13350:217::-;13390:1;13416;13406:132;;13460:10;13455:3;13451:20;13448:1;13441:31;13495:4;13492:1;13485:15;13523:4;13520:1;13513:15;13406:132;-1:-1:-1;13552:9:1;;13350:217::o;14106:127::-;14167:10;14162:3;14158:20;14155:1;14148:31;14198:4;14195:1;14188:15;14222:4;14219:1;14212:15;14238:251;14308:6;14361:2;14349:9;14340:7;14336:23;14332:32;14329:52;;;14377:1;14374;14367:12;14329:52;14409:9;14403:16;14428:31;14453:5;14428:31;:::i;14494:980::-;14756:4;14804:3;14793:9;14789:19;14835:6;14824:9;14817:25;14861:2;14899:6;14894:2;14883:9;14879:18;14872:34;14942:3;14937:2;14926:9;14922:18;14915:31;14966:6;15001;14995:13;15032:6;15024;15017:22;15070:3;15059:9;15055:19;15048:26;;15109:2;15101:6;15097:15;15083:29;;15130:1;15140:195;15154:6;15151:1;15148:13;15140:195;;;15219:13;;-1:-1:-1;;;;;15215:39:1;15203:52;;15310:15;;;;15275:12;;;;15251:1;15169:9;15140:195;;;-1:-1:-1;;;;;;;15391:32:1;;;;15386:2;15371:18;;15364:60;-1:-1:-1;;;15455:3:1;15440:19;15433:35;15352:3;14494:980;-1:-1:-1;;;14494:980:1:o

Swarm Source

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