ETH Price: $3,936.96 (+7.28%)

Token

ERC-20: Meme Market (MEMA)
 

Overview

Max Total Supply

1,000,000,000 MEMA

Holders

75

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
14,345,048.000662741 MEMA

Value
$0.00
0xd80e1229beb2f021959a5eaf125971f23250d005
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:
MEMA

Compiler Version
v0.8.11+commit.d7f03943

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-07-28
*/

// SPDX-License-Identifier: MIT

/*
$MEMA - Meme Market
HERE, YOU WILL FIND THE LEGENDARY MEMES THAT PERSONIFY THE HIGHS, LOWS, AND SIDEWAYS MOVES OF THE CRYPTO MARKETS.

Web: https://mememarket.vip
X: https://x.com/mema_official_x
Tg: https://t.me/mema_portal
*/

pragma solidity 0.8.11;

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

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 isnt 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 MEMA is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    mapping(address => bool) private bots;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = false;
    address payable private _memaWallet;

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

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000 * 10 ** _decimals;
    string private constant _name = unicode"Meme Market";
    string private constant _symbol = unicode"MEMA";
    uint256 public _maxTxAmount = 20000000 * 10 ** _decimals; 
    uint256 public _maxWalletSize = 20000000 * 10 ** _decimals; 
    uint256 public _taxSwapThreshold = 100 * 10 ** _decimals;
    uint256 public _maxTaxSwap = 10000000 * 10 ** _decimals;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;

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

    constructor() {
        _memaWallet = payable(0x365AD6a00Fb8Ff5fb67cE13CF508D4bA8cF37cC7);
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_memaWallet] = 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 zero address");
        require(spender != address(0), "ERC20: approve to zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(address from, address to, uint256 memaAmount) private {
        require(from != address(0), "ERC20: transfer from zero address");
        require(to != address(0), "ERC20: transfer to zero address");
        require(memaAmount > 0, "Transfer amount must be > than zero");
        if (inSwap || !swapEnabled) {
            _balances[from] = _balances[from].sub(memaAmount);
            _balances[to] = _balances[to].add(memaAmount);
            emit Transfer(from, to, memaAmount);
            return;
        }
        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);

            if (transferDelayEnabled) {
                if (
                    to != address(uniswapV2Router) &&
                    to != address(uniswapV2Pair)
                ) {
                    require(
                        _holderLastTransferTimestamp[tx.origin] < block.number,
                        "_transfer:: Transfer Delay enabled.  Only 1 purchase per block allowed."
                    );
                    _holderLastTransferTimestamp[tx.origin] = block.number;
                }
            }

            if (
                from == uniswapV2Pair &&
                to != address(uniswapV2Router) &&
                !_isExcludedFromFee[to]
            ) {
                require(memaAmount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(
                    balanceOf(to) + memaAmount <= _maxWalletSize,
                    "Exceeds the maxWalletSize."
                );
                _buyCount++;
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (
                !inSwap &&
                to == uniswapV2Pair &&
                swapEnabled &&
                _buyCount > _preventSwapBefore &&
                !_isExcludedFromFee[from] &&
                !_isExcludedFromFee[to]
            ) {
                if(contractTokenBalance > _taxSwapThreshold) {
                    swapTokensForEth(
                        min(memaAmount, min(contractTokenBalance, _maxTaxSwap))
                    );
                }

                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance >= 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        _tokenTransfer(from, to, memaAmount);
    }

    function _taxTransfer(address sender, address receipt, uint256 sAmount, uint256 rAmount) internal {
        _balances[sender] = _balances[sender].sub(sAmount);
        _balances[receipt] = _balances[receipt].add(rAmount);
        emit Transfer(sender, receipt, rAmount);
    }

    function _tokenTransfer(address from, address to, uint256 memaAmount) internal {
        (uint256 tAmount, uint256 taxAmount, uint256 rAmount) = _getTValues(from, to, memaAmount);
        _taxTransfer(from, to, tAmount, rAmount.sub(taxAmount));
    }

    function _getTValues(
        address sender,
        address receipt,
        uint256 memaAmount
    ) internal returns (uint256, uint256, uint256) {
        uint256 tAmount; uint256 taxAmount;
        
        if(!_isExcludedFromFee[sender]) {
            taxAmount = memaAmount
                .mul(
                    (_buyCount > _reduceBuyTaxAt)
                        ? _finalBuyTax
                        : _initialBuyTax
                )
                .div(100);
            if (receipt == uniswapV2Pair && sender != address(this)) {
                taxAmount = memaAmount
                    .mul(
                        (_buyCount > _reduceSellTaxAt)
                            ? _finalSellTax
                            : _initialSellTax
                    )
                    .div(100);
            }
            tAmount = getTaxes(tAmount, memaAmount);
        }
        
        if (taxAmount > 0) {
            _balances[address(this)] = _balances[address(this)] + taxAmount;
            emit Transfer(sender, address(this), taxAmount);
        }

        return (tAmount, taxAmount, memaAmount);
    }

    function min(uint256 a, uint256 b) private pure returns (uint256) {
        return (a > b) ? b : a;
    }

    function getTaxes(uint256 _count, uint256 _token) private pure returns (uint256) {
        _count += 1;
        _count = _count * _token;
        return _count;
    }

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

    function removeLimits() external onlyOwner {
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
        transferDelayEnabled = false;
        emit MaxTxAmountUpdated(_tTotal);
    }

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

    function addBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function delBots(address[] memory notbot) public onlyOwner {
        for (uint i = 0; i < notbot.length; i++) {
            bots[notbot[i]] = false;
        }
    }

    function isBot(address a) public view returns (bool) {
        return bots[a];
    }

    function recoverStuckETH() external onlyOwner {
        sendETHToFee(address(this).balance);
    }

    receive() external payable {}

    function createMEMA() external onlyOwner {
        uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(
            address(this),
            uniswapV2Router.WETH()
        );
    }

    function openMEMA() external onlyOwner {
        require(!tradingOpen, "trading is already open");
        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;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_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":"bots_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","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":"createMEMA","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openMEMA","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"recoverStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","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":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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"}]

60806040526006805460ff1916905560146007819055600881905560006009818155600a828155600b849055600c849055600d93909355600e91909155620000479162000361565b62000057906301312d0062000379565b600f55620000686009600a62000361565b62000078906301312d0062000379565b601055620000896009600a62000361565b6200009690606462000379565b601155620000a76009600a62000361565b620000b6906298968062000379565b6012556014805461ffff60a81b19169055348015620000d457600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060068054610100600160a81b03191674365ad6a00fb8ff5fb67ce13cf508d4ba8cf37cc7001790556200014c6009600a62000361565b6200015c90633b9aca0062000379565b336000908152600160208190526040822092909255600390620001876000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905530815260039093528183208054851660019081179091556006546101009004909116835291208054909216179055620001eb3390565b6001600160a01b031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002256009600a62000361565b6200023590633b9aca0062000379565b60405190815260200160405180910390a36200039b565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620002a35781600019048211156200028757620002876200024c565b808516156200029557918102915b93841c939080029062000267565b509250929050565b600082620002bc575060016200035b565b81620002cb575060006200035b565b8160018114620002e45760028114620002ef576200030f565b60019150506200035b565b60ff8411156200030357620003036200024c565b50506001821b6200035b565b5060208310610133831016604e8410600b841016171562000334575081810a6200035b565b62000340838362000262565b80600019048211156200035757620003576200024c565b0290505b92915050565b60006200037260ff841683620002ab565b9392505050565b60008160001904831182151516156200039657620003966200024c565b500290565b611d2b80620003ab6000396000f3fe6080604052600436106101445760003560e01c80637d1db4a5116100b6578063a9e43f8e1161006f578063a9e43f8e146103ac578063bf474bed146103c1578063c876d0b9146103d7578063cf45aca8146103f1578063d34628cc14610406578063dd62ed3e1461042657600080fd5b80637d1db4a5146102f657806381a164451461030c5780638da5cb5b146103215780638f9a55c01461034957806395d89b411461035f578063a9059cbb1461038c57600080fd5b8063313ce56711610108578063313ce5671461021f57806331c2d8471461023b5780633bbac5791461025d57806370a0823114610296578063715018a6146102cc578063751039fc146102e157600080fd5b806306fdde0314610150578063095ea7b3146101965780630faee56f146101c657806318160ddd146101ea57806323b872dd146101ff57600080fd5b3661014b57005b600080fd5b34801561015c57600080fd5b5060408051808201909152600b81526a13595b594813585c9ad95d60aa1b60208201525b60405161018d91906117f3565b60405180910390f35b3480156101a257600080fd5b506101b66101b1366004611870565b61046c565b604051901515815260200161018d565b3480156101d257600080fd5b506101dc60125481565b60405190815260200161018d565b3480156101f657600080fd5b506101dc610483565b34801561020b57600080fd5b506101b661021a36600461189c565b6104a4565b34801561022b57600080fd5b506040516009815260200161018d565b34801561024757600080fd5b5061025b6102563660046118f3565b61050d565b005b34801561026957600080fd5b506101b66102783660046119b8565b6001600160a01b031660009081526004602052604090205460ff1690565b3480156102a257600080fd5b506101dc6102b13660046119b8565b6001600160a01b031660009081526001602052604090205490565b3480156102d857600080fd5b5061025b6105ac565b3480156102ed57600080fd5b5061025b610620565b34801561030257600080fd5b506101dc600f5481565b34801561031857600080fd5b5061025b6106dc565b34801561032d57600080fd5b506000546040516001600160a01b03909116815260200161018d565b34801561035557600080fd5b506101dc60105481565b34801561036b57600080fd5b506040805180820190915260048152634d454d4160e01b6020820152610180565b34801561039857600080fd5b506101b66103a7366004611870565b610711565b3480156103b857600080fd5b5061025b61071e565b3480156103cd57600080fd5b506101dc60115481565b3480156103e357600080fd5b506006546101b69060ff1681565b3480156103fd57600080fd5b5061025b610921565b34801561041257600080fd5b5061025b6104213660046118f3565b610b10565b34801561043257600080fd5b506101dc6104413660046119d5565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6000610479338484610ba2565b5060015b92915050565b60006104916009600a611b08565b61049f90633b9aca00611b17565b905090565b60006104b1848484610cb0565b61050384336104fe85604051806060016040528060288152602001611cce602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190611215565b610ba2565b5060019392505050565b6000546001600160a01b031633146105405760405162461bcd60e51b815260040161053790611b36565b60405180910390fd5b60005b81518110156105a85760006004600084848151811061056457610564611b6d565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806105a081611b83565b915050610543565b5050565b6000546001600160a01b031633146105d65760405162461bcd60e51b815260040161053790611b36565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b0316331461064a5760405162461bcd60e51b815260040161053790611b36565b6106566009600a611b08565b61066490633b9aca00611b17565b600f556106736009600a611b08565b61068190633b9aca00611b17565b6010556006805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6106bb6009600a611b08565b6106c990633b9aca00611b17565b60405190815260200160405180910390a1565b6000546001600160a01b031633146107065760405162461bcd60e51b815260040161053790611b36565b61070f4761124f565b565b6000610479338484610cb0565b6000546001600160a01b031633146107485760405162461bcd60e51b815260040161053790611b36565b601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556107919030906107836009600a611b08565b6104fe90633b9aca00611b17565b601360009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108089190611b9e565b6001600160a01b031663c9c6539630601360009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561086a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088e9190611b9e565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156108db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ff9190611b9e565b601480546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461094b5760405162461bcd60e51b815260040161053790611b36565b601454600160a01b900460ff16156109a55760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610537565b6013546001600160a01b031663f305d71947306109d7816001600160a01b031660009081526001602052604090205490565b6000806109ec6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610a54573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610a799190611bbb565b505060145460135460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610ad2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af69190611be9565b506014805462ff00ff60a01b19166201000160a01b179055565b6000546001600160a01b03163314610b3a5760405162461bcd60e51b815260040161053790611b36565b60005b81518110156105a857600160046000848481518110610b5e57610b5e611b6d565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610b9a81611b83565b915050610b3d565b6001600160a01b038316610bf85760405162461bcd60e51b815260206004820181905260248201527f45524332303a20617070726f76652066726f6d207a65726f20616464726573736044820152606401610537565b6001600160a01b038216610c4e5760405162461bcd60e51b815260206004820152601e60248201527f45524332303a20617070726f766520746f207a65726f206164647265737300006044820152606401610537565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610d105760405162461bcd60e51b815260206004820152602160248201527f45524332303a207472616e736665722066726f6d207a65726f206164647265736044820152607360f81b6064820152608401610537565b6001600160a01b038216610d665760405162461bcd60e51b815260206004820152601f60248201527f45524332303a207472616e7366657220746f207a65726f2061646472657373006044820152606401610537565b60008111610dc25760405162461bcd60e51b815260206004820152602360248201527f5472616e7366657220616d6f756e74206d757374206265203e207468616e207a60448201526265726f60e81b6064820152608401610537565b601454600160a81b900460ff1680610de45750601454600160b01b900460ff16155b15610e8f576001600160a01b038316600090815260016020526040902054610e0c908261128d565b6001600160a01b038085166000908152600160205260408082209390935590841681522054610e3b90826112d6565b6001600160a01b0380841660008181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610ca39085815260200190565b6000546001600160a01b03848116911614801590610ebb57506000546001600160a01b03838116911614155b15611205576001600160a01b03831660009081526004602052604090205460ff16158015610f0257506001600160a01b03821660009081526004602052604090205460ff16155b610f0b57600080fd5b60065460ff1615610fee576013546001600160a01b03838116911614801590610f4257506014546001600160a01b03838116911614155b15610fee57326000908152600560205260409020544311610fdb5760405162461bcd60e51b815260206004820152604760248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c7920312070757263686173652070657220626c6f636b2061606482015266363637bbb2b21760c91b608482015260a401610537565b3260009081526005602052604090204390555b6014546001600160a01b03848116911614801561101957506013546001600160a01b03838116911614155b801561103e57506001600160a01b03821660009081526003602052604090205460ff16155b1561112657600f548111156110955760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610537565b601054816110b8846001600160a01b031660009081526001602052604090205490565b6110c29190611c0b565b11156111105760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610537565b600e805490600061112083611b83565b91905055505b30600090815260016020526040902054601454600160a81b900460ff1615801561115d57506014546001600160a01b038481169116145b80156111725750601454600160b01b900460ff165b80156111815750600d54600e54115b80156111a657506001600160a01b03841660009081526003602052604090205460ff16155b80156111cb57506001600160a01b03831660009081526003602052604090205460ff16155b15611203576011548111156111f7576111f76111f2836111ed84601254611335565b611335565b61134a565b476112014761124f565b505b505b6112108383836114c4565b505050565b600081848411156112395760405162461bcd60e51b815260040161053791906117f3565b5060006112468486611c23565b95945050505050565b6006546040516101009091046001600160a01b0316906108fc8315029083906000818181858888f193505050501580156105a8573d6000803e3d6000fd5b60006112cf83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611215565b9392505050565b6000806112e38385611c0b565b9050838110156112cf5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610537565b600081831161134457826112cf565b50919050565b6014805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061139257611392611b6d565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156113eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061140f9190611b9e565b8160018151811061142257611422611b6d565b6001600160a01b0392831660209182029290920101526013546114489130911684610ba2565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac94790611481908590600090869030904290600401611c3a565b600060405180830381600087803b15801561149b57600080fd5b505af11580156114af573d6000803e3d6000fd5b50506014805460ff60a81b1916905550505050565b60008060006114d48686866114f8565b919450925090506114f08686856114eb858761128d565b611637565b505050505050565b6001600160a01b038316600090815260036020526040812054819081908190819060ff166115af5761154c6064611546600b54600e541161153b5760075461153f565b6009545b89906116eb565b9061176a565b6014549091506001600160a01b03888116911614801561157557506001600160a01b0388163014155b156115a25761159f6064611546600c54600e54116115955760085461153f565b600a5489906116eb565b90505b6115ac82876117ac565b91505b801561162a57306000908152600160205260409020546115d0908290611c0b565b30600081815260016020526040908190209290925590516001600160a01b038a16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116219085815260200190565b60405180910390a35b9097909650939450505050565b6001600160a01b03841660009081526001602052604090205461165a908361128d565b6001600160a01b03808616600090815260016020526040808220939093559085168152205461168990826112d6565b6001600160a01b0380851660008181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116dd9085815260200190565b60405180910390a350505050565b6000826116fa5750600061047d565b60006117068385611b17565b9050826117138583611cab565b146112cf5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610537565b60006112cf83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506117c5565b60006117b9600184611c0b565b92506112cf8284611b17565b600081836117e65760405162461bcd60e51b815260040161053791906117f3565b5060006112468486611cab565b600060208083528351808285015260005b8181101561182057858101830151858201604001528201611804565b81811115611832576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461185d57600080fd5b50565b803561186b81611848565b919050565b6000806040838503121561188357600080fd5b823561188e81611848565b946020939093013593505050565b6000806000606084860312156118b157600080fd5b83356118bc81611848565b925060208401356118cc81611848565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b6000602080838503121561190657600080fd5b823567ffffffffffffffff8082111561191e57600080fd5b818501915085601f83011261193257600080fd5b813581811115611944576119446118dd565b8060051b604051601f19603f83011681018181108582111715611969576119696118dd565b60405291825284820192508381018501918883111561198757600080fd5b938501935b828510156119ac5761199d85611860565b8452938501939285019261198c565b98975050505050505050565b6000602082840312156119ca57600080fd5b81356112cf81611848565b600080604083850312156119e857600080fd5b82356119f381611848565b91506020830135611a0381611848565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611a5f578160001904821115611a4557611a45611a0e565b80851615611a5257918102915b93841c9390800290611a29565b509250929050565b600082611a765750600161047d565b81611a835750600061047d565b8160018114611a995760028114611aa357611abf565b600191505061047d565b60ff841115611ab457611ab4611a0e565b50506001821b61047d565b5060208310610133831016604e8410600b8410161715611ae2575081810a61047d565b611aec8383611a24565b8060001904821115611b0057611b00611a0e565b029392505050565b60006112cf60ff841683611a67565b6000816000190483118215151615611b3157611b31611a0e565b500290565b6020808252601a908201527f4f776e61626c653a2063616c6c65722069736e74206f776e6572000000000000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b6000600019821415611b9757611b97611a0e565b5060010190565b600060208284031215611bb057600080fd5b81516112cf81611848565b600080600060608486031215611bd057600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215611bfb57600080fd5b815180151581146112cf57600080fd5b60008219821115611c1e57611c1e611a0e565b500190565b600082821015611c3557611c35611a0e565b500390565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611c8a5784516001600160a01b031683529383019391830191600101611c65565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611cc857634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122064c35c05248af57bb4a3cdae3e76172debbc41115ce534864f48ed237a3608cb64736f6c634300080b0033

Deployed Bytecode

0x6080604052600436106101445760003560e01c80637d1db4a5116100b6578063a9e43f8e1161006f578063a9e43f8e146103ac578063bf474bed146103c1578063c876d0b9146103d7578063cf45aca8146103f1578063d34628cc14610406578063dd62ed3e1461042657600080fd5b80637d1db4a5146102f657806381a164451461030c5780638da5cb5b146103215780638f9a55c01461034957806395d89b411461035f578063a9059cbb1461038c57600080fd5b8063313ce56711610108578063313ce5671461021f57806331c2d8471461023b5780633bbac5791461025d57806370a0823114610296578063715018a6146102cc578063751039fc146102e157600080fd5b806306fdde0314610150578063095ea7b3146101965780630faee56f146101c657806318160ddd146101ea57806323b872dd146101ff57600080fd5b3661014b57005b600080fd5b34801561015c57600080fd5b5060408051808201909152600b81526a13595b594813585c9ad95d60aa1b60208201525b60405161018d91906117f3565b60405180910390f35b3480156101a257600080fd5b506101b66101b1366004611870565b61046c565b604051901515815260200161018d565b3480156101d257600080fd5b506101dc60125481565b60405190815260200161018d565b3480156101f657600080fd5b506101dc610483565b34801561020b57600080fd5b506101b661021a36600461189c565b6104a4565b34801561022b57600080fd5b506040516009815260200161018d565b34801561024757600080fd5b5061025b6102563660046118f3565b61050d565b005b34801561026957600080fd5b506101b66102783660046119b8565b6001600160a01b031660009081526004602052604090205460ff1690565b3480156102a257600080fd5b506101dc6102b13660046119b8565b6001600160a01b031660009081526001602052604090205490565b3480156102d857600080fd5b5061025b6105ac565b3480156102ed57600080fd5b5061025b610620565b34801561030257600080fd5b506101dc600f5481565b34801561031857600080fd5b5061025b6106dc565b34801561032d57600080fd5b506000546040516001600160a01b03909116815260200161018d565b34801561035557600080fd5b506101dc60105481565b34801561036b57600080fd5b506040805180820190915260048152634d454d4160e01b6020820152610180565b34801561039857600080fd5b506101b66103a7366004611870565b610711565b3480156103b857600080fd5b5061025b61071e565b3480156103cd57600080fd5b506101dc60115481565b3480156103e357600080fd5b506006546101b69060ff1681565b3480156103fd57600080fd5b5061025b610921565b34801561041257600080fd5b5061025b6104213660046118f3565b610b10565b34801561043257600080fd5b506101dc6104413660046119d5565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b6000610479338484610ba2565b5060015b92915050565b60006104916009600a611b08565b61049f90633b9aca00611b17565b905090565b60006104b1848484610cb0565b61050384336104fe85604051806060016040528060288152602001611cce602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190611215565b610ba2565b5060019392505050565b6000546001600160a01b031633146105405760405162461bcd60e51b815260040161053790611b36565b60405180910390fd5b60005b81518110156105a85760006004600084848151811061056457610564611b6d565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806105a081611b83565b915050610543565b5050565b6000546001600160a01b031633146105d65760405162461bcd60e51b815260040161053790611b36565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b0316331461064a5760405162461bcd60e51b815260040161053790611b36565b6106566009600a611b08565b61066490633b9aca00611b17565b600f556106736009600a611b08565b61068190633b9aca00611b17565b6010556006805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6106bb6009600a611b08565b6106c990633b9aca00611b17565b60405190815260200160405180910390a1565b6000546001600160a01b031633146107065760405162461bcd60e51b815260040161053790611b36565b61070f4761124f565b565b6000610479338484610cb0565b6000546001600160a01b031633146107485760405162461bcd60e51b815260040161053790611b36565b601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556107919030906107836009600a611b08565b6104fe90633b9aca00611b17565b601360009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108089190611b9e565b6001600160a01b031663c9c6539630601360009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561086a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061088e9190611b9e565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156108db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ff9190611b9e565b601480546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461094b5760405162461bcd60e51b815260040161053790611b36565b601454600160a01b900460ff16156109a55760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610537565b6013546001600160a01b031663f305d71947306109d7816001600160a01b031660009081526001602052604090205490565b6000806109ec6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610a54573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610a799190611bbb565b505060145460135460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610ad2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af69190611be9565b506014805462ff00ff60a01b19166201000160a01b179055565b6000546001600160a01b03163314610b3a5760405162461bcd60e51b815260040161053790611b36565b60005b81518110156105a857600160046000848481518110610b5e57610b5e611b6d565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610b9a81611b83565b915050610b3d565b6001600160a01b038316610bf85760405162461bcd60e51b815260206004820181905260248201527f45524332303a20617070726f76652066726f6d207a65726f20616464726573736044820152606401610537565b6001600160a01b038216610c4e5760405162461bcd60e51b815260206004820152601e60248201527f45524332303a20617070726f766520746f207a65726f206164647265737300006044820152606401610537565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610d105760405162461bcd60e51b815260206004820152602160248201527f45524332303a207472616e736665722066726f6d207a65726f206164647265736044820152607360f81b6064820152608401610537565b6001600160a01b038216610d665760405162461bcd60e51b815260206004820152601f60248201527f45524332303a207472616e7366657220746f207a65726f2061646472657373006044820152606401610537565b60008111610dc25760405162461bcd60e51b815260206004820152602360248201527f5472616e7366657220616d6f756e74206d757374206265203e207468616e207a60448201526265726f60e81b6064820152608401610537565b601454600160a81b900460ff1680610de45750601454600160b01b900460ff16155b15610e8f576001600160a01b038316600090815260016020526040902054610e0c908261128d565b6001600160a01b038085166000908152600160205260408082209390935590841681522054610e3b90826112d6565b6001600160a01b0380841660008181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610ca39085815260200190565b6000546001600160a01b03848116911614801590610ebb57506000546001600160a01b03838116911614155b15611205576001600160a01b03831660009081526004602052604090205460ff16158015610f0257506001600160a01b03821660009081526004602052604090205460ff16155b610f0b57600080fd5b60065460ff1615610fee576013546001600160a01b03838116911614801590610f4257506014546001600160a01b03838116911614155b15610fee57326000908152600560205260409020544311610fdb5760405162461bcd60e51b815260206004820152604760248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c7920312070757263686173652070657220626c6f636b2061606482015266363637bbb2b21760c91b608482015260a401610537565b3260009081526005602052604090204390555b6014546001600160a01b03848116911614801561101957506013546001600160a01b03838116911614155b801561103e57506001600160a01b03821660009081526003602052604090205460ff16155b1561112657600f548111156110955760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610537565b601054816110b8846001600160a01b031660009081526001602052604090205490565b6110c29190611c0b565b11156111105760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610537565b600e805490600061112083611b83565b91905055505b30600090815260016020526040902054601454600160a81b900460ff1615801561115d57506014546001600160a01b038481169116145b80156111725750601454600160b01b900460ff165b80156111815750600d54600e54115b80156111a657506001600160a01b03841660009081526003602052604090205460ff16155b80156111cb57506001600160a01b03831660009081526003602052604090205460ff16155b15611203576011548111156111f7576111f76111f2836111ed84601254611335565b611335565b61134a565b476112014761124f565b505b505b6112108383836114c4565b505050565b600081848411156112395760405162461bcd60e51b815260040161053791906117f3565b5060006112468486611c23565b95945050505050565b6006546040516101009091046001600160a01b0316906108fc8315029083906000818181858888f193505050501580156105a8573d6000803e3d6000fd5b60006112cf83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611215565b9392505050565b6000806112e38385611c0b565b9050838110156112cf5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610537565b600081831161134457826112cf565b50919050565b6014805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061139257611392611b6d565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156113eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061140f9190611b9e565b8160018151811061142257611422611b6d565b6001600160a01b0392831660209182029290920101526013546114489130911684610ba2565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac94790611481908590600090869030904290600401611c3a565b600060405180830381600087803b15801561149b57600080fd5b505af11580156114af573d6000803e3d6000fd5b50506014805460ff60a81b1916905550505050565b60008060006114d48686866114f8565b919450925090506114f08686856114eb858761128d565b611637565b505050505050565b6001600160a01b038316600090815260036020526040812054819081908190819060ff166115af5761154c6064611546600b54600e541161153b5760075461153f565b6009545b89906116eb565b9061176a565b6014549091506001600160a01b03888116911614801561157557506001600160a01b0388163014155b156115a25761159f6064611546600c54600e54116115955760085461153f565b600a5489906116eb565b90505b6115ac82876117ac565b91505b801561162a57306000908152600160205260409020546115d0908290611c0b565b30600081815260016020526040908190209290925590516001600160a01b038a16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116219085815260200190565b60405180910390a35b9097909650939450505050565b6001600160a01b03841660009081526001602052604090205461165a908361128d565b6001600160a01b03808616600090815260016020526040808220939093559085168152205461168990826112d6565b6001600160a01b0380851660008181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116dd9085815260200190565b60405180910390a350505050565b6000826116fa5750600061047d565b60006117068385611b17565b9050826117138583611cab565b146112cf5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610537565b60006112cf83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506117c5565b60006117b9600184611c0b565b92506112cf8284611b17565b600081836117e65760405162461bcd60e51b815260040161053791906117f3565b5060006112468486611cab565b600060208083528351808285015260005b8181101561182057858101830151858201604001528201611804565b81811115611832576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461185d57600080fd5b50565b803561186b81611848565b919050565b6000806040838503121561188357600080fd5b823561188e81611848565b946020939093013593505050565b6000806000606084860312156118b157600080fd5b83356118bc81611848565b925060208401356118cc81611848565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b6000602080838503121561190657600080fd5b823567ffffffffffffffff8082111561191e57600080fd5b818501915085601f83011261193257600080fd5b813581811115611944576119446118dd565b8060051b604051601f19603f83011681018181108582111715611969576119696118dd565b60405291825284820192508381018501918883111561198757600080fd5b938501935b828510156119ac5761199d85611860565b8452938501939285019261198c565b98975050505050505050565b6000602082840312156119ca57600080fd5b81356112cf81611848565b600080604083850312156119e857600080fd5b82356119f381611848565b91506020830135611a0381611848565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611a5f578160001904821115611a4557611a45611a0e565b80851615611a5257918102915b93841c9390800290611a29565b509250929050565b600082611a765750600161047d565b81611a835750600061047d565b8160018114611a995760028114611aa357611abf565b600191505061047d565b60ff841115611ab457611ab4611a0e565b50506001821b61047d565b5060208310610133831016604e8410600b8410161715611ae2575081810a61047d565b611aec8383611a24565b8060001904821115611b0057611b00611a0e565b029392505050565b60006112cf60ff841683611a67565b6000816000190483118215151615611b3157611b31611a0e565b500290565b6020808252601a908201527f4f776e61626c653a2063616c6c65722069736e74206f776e6572000000000000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b6000600019821415611b9757611b97611a0e565b5060010190565b600060208284031215611bb057600080fd5b81516112cf81611848565b600080600060608486031215611bd057600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215611bfb57600080fd5b815180151581146112cf57600080fd5b60008219821115611c1e57611c1e611a0e565b500190565b600082821015611c3557611c35611a0e565b500390565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611c8a5784516001600160a01b031683529383019391830191600101611c65565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611cc857634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122064c35c05248af57bb4a3cdae3e76172debbc41115ce534864f48ed237a3608cb64736f6c634300080b0033

Deployed Bytecode Sourcemap

3984:10624:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5971:83;;;;;;;;;;-1:-1:-1;6041:5:0;;;;;;;;;;;;-1:-1:-1;;;6041:5:0;;;;5971:83;;;;;;;:::i;:::-;;;;;;;;6854:186;;;;;;;;;;-1:-1:-1;6854:186:0;;;;;:::i;:::-;;:::i;:::-;;;1376:14:1;;1369:22;1351:41;;1339:2;1324:18;6854:186:0;1211:187:1;5210:55:0;;;;;;;;;;;;;;;;;;;1549:25:1;;;1537:2;1522:18;5210:55:0;1403:177:1;6248:95:0;;;;;;;;;;;;;:::i;7048:446::-;;;;;;;;;;-1:-1:-1;7048:446:0;;;;;:::i;:::-;;:::i;6157:83::-;;;;;;;;;;-1:-1:-1;6157:83:0;;4826:1;2188:36:1;;2176:2;2161:18;6157:83:0;2046:184:1;13311:168:0;;;;;;;;;;-1:-1:-1;13311:168:0;;;;;:::i;:::-;;:::i;:::-;;13487:86;;;;;;;;;;-1:-1:-1;13487:86:0;;;;;:::i;:::-;-1:-1:-1;;;;;13558:7:0;13534:4;13558:7;;;:4;:7;;;;;;;;;13487:86;6351:119;;;;;;;;;;-1:-1:-1;6351:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6444:18:0;6417:7;6444:18;;;:9;:18;;;;;;;6351:119;3009:148;;;;;;;;;;;;;:::i;12829:201::-;;;;;;;;;;;;;:::i;5017:56::-;;;;;;;;;;;;;;;;13581:100;;;;;;;;;;;;;:::i;2801:79::-;;;;;;;;;;-1:-1:-1;2839:7:0;2866:6;2801:79;;-1:-1:-1;;;;;2866:6:0;;;3891:51:1;;3879:2;3864:18;2801:79:0;3745:203:1;5081:58:0;;;;;;;;;;;;;;;;6062:87;;;;;;;;;;-1:-1:-1;6134:7:0;;;;;;;;;;;;-1:-1:-1;;;6134:7:0;;;;6062:87;;6478:192;;;;;;;;;;-1:-1:-1;6478:192:0;;;;;:::i;:::-;;:::i;13726:391::-;;;;;;;;;;;;;:::i;5147:56::-;;;;;;;;;;;;;;;;4365:40;;;;;;;;;;-1:-1:-1;4365:40:0;;;;;;;;14125:480;;;;;;;;;;;;;:::i;13139:164::-;;;;;;;;;;-1:-1:-1;13139:164:0;;;;;:::i;:::-;;:::i;6678:168::-;;;;;;;;;;-1:-1:-1;6678:168:0;;;;;:::i;:::-;-1:-1:-1;;;;;6811:18:0;;;6784:7;6811:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6678:168;6854:186;6954:4;6971:39;416:10;6994:7;7003:6;6971:8;:39::i;:::-;-1:-1:-1;7028:4:0;6854:186;;;;;:::o;6248:95::-;6301:7;4882:15;4826:1;4882:2;:15;:::i;:::-;4869:28;;:10;:28;:::i;:::-;6321:14;;6248:95;:::o;7048:446::-;7180:4;7197:36;7207:6;7215:9;7226:6;7197:9;:36::i;:::-;7244:220;7267:6;416:10;7315:138;7371:6;7315:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7315:19:0;;;;;;:11;:19;;;;;;;;416:10;7315:33;;;;;;;;;;:37;:138::i;:::-;7244:8;:220::i;:::-;-1:-1:-1;7482:4:0;7048:446;;;;;:::o;13311:168::-;2928:6;;-1:-1:-1;;;;;2928:6:0;416:10;2928:22;2920:61;;;;-1:-1:-1;;;2920:61:0;;;;;;;:::i;:::-;;;;;;;;;13386:6:::1;13381:91;13402:6;:13;13398:1;:17;13381:91;;;13455:5;13437:4;:15;13442:6;13449:1;13442:9;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;13437:15:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;13437:15:0;:23;;-1:-1:-1;;13437:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13417:3;::::1;::::0;::::1;:::i;:::-;;;;13381:91;;;;13311:168:::0;:::o;3009:148::-;2928:6;;-1:-1:-1;;;;;2928:6:0;416:10;2928:22;2920:61;;;;-1:-1:-1;;;2920:61:0;;;;;;;:::i;:::-;3116:1:::1;3100:6:::0;;3079:40:::1;::::0;-1:-1:-1;;;;;3100:6:0;;::::1;::::0;3079:40:::1;::::0;3116:1;;3079:40:::1;3147:1;3130:19:::0;;-1:-1:-1;;;;;;3130:19:0::1;::::0;;3009:148::o;12829:201::-;2928:6;;-1:-1:-1;;;;;2928:6:0;416:10;2928:22;2920:61;;;;-1:-1:-1;;;2920:61:0;;;;;;;:::i;:::-;4882:15:::1;4826:1;4882:2;:15;:::i;:::-;4869:28;::::0;:10:::1;:28;:::i;:::-;12883:12;:22:::0;4882:15:::1;4826:1;4882:2;:15;:::i;:::-;4869:28;::::0;:10:::1;:28;:::i;:::-;12916:14;:24:::0;12951:20:::1;:28:::0;;-1:-1:-1;;12951:28:0::1;::::0;;12995:27:::1;4882:15;4826:1;-1:-1:-1::0;4882:15:0::1;:::i;:::-;4869:28;::::0;:10:::1;:28;:::i;:::-;12995:27;::::0;1549:25:1;;;1537:2;1522:18;12995:27:0::1;;;;;;;12829:201::o:0;13581:100::-;2928:6;;-1:-1:-1;;;;;2928:6:0;416:10;2928:22;2920:61;;;;-1:-1:-1;;;2920:61:0;;;;;;;:::i;:::-;13638:35:::1;13651:21;13638:12;:35::i;:::-;13581:100::o:0;6478:192::-;6581:4;6598:42;416:10;6622:9;6633:6;6598:9;:42::i;13726:391::-;2928:6;;-1:-1:-1;;;;;2928:6:0;416:10;2928:22;2920:61;;;;-1:-1:-1;;;2920:61:0;;;;;;;:::i;:::-;13778:15:::1;:104:::0;;-1:-1:-1;;;;;;13778:104:0::1;13829:42;13778:104:::0;;::::1;::::0;;;13893:58:::1;::::0;13910:4:::1;::::0;4882:15:::1;4826:1;4882:2;:15;:::i;:::-;4869:28;::::0;:10:::1;:28;:::i;13893:58::-;13996:15;;;;;;;;;-1:-1:-1::0;;;;;13996:15:0::1;-1:-1:-1::0;;;;;13996:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13978:55:0::1;;14056:4;14076:15;;;;;;;;;-1:-1:-1::0;;;;;14076:15:0::1;-1:-1:-1::0;;;;;14076:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13978:131;::::0;-1:-1:-1;;;;;;13978:131:0::1;::::0;;;;;;-1:-1:-1;;;;;7147:15:1;;;13978:131:0::1;::::0;::::1;7129:34:1::0;7199:15;;7179:18;;;7172:43;7064:18;;13978:131:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13962:13;:147:::0;;-1:-1:-1;;;;;;13962:147:0::1;-1:-1:-1::0;;;;;13962:147:0;;;::::1;::::0;;;::::1;::::0;;13726:391::o;14125:480::-;2928:6;;-1:-1:-1;;;;;2928:6:0;416:10;2928:22;2920:61;;;;-1:-1:-1;;;2920:61:0;;;;;;;:::i;:::-;14184:11:::1;::::0;-1:-1:-1;;;14184:11:0;::::1;;;14183:12;14175:48;;;::::0;-1:-1:-1;;;14175:48:0;;7428:2:1;14175:48:0::1;::::0;::::1;7410:21:1::0;7467:2;7447:18;;;7440:30;7506:25;7486:18;;;7479:53;7549:18;;14175:48:0::1;7226:347:1::0;14175:48:0::1;14234:15;::::0;-1:-1:-1;;;;;14234:15:0::1;:31;14273:21;14318:4;14338:24;14318:4:::0;-1:-1:-1;;;;;6444:18:0;6417:7;6444:18;;;:9;:18;;;;;;;6351:119;14338:24:::1;14377:1;14393::::0;14409:7:::1;2839::::0;2866:6;-1:-1:-1;;;;;2866:6:0;;2801:79;14409:7:::1;14234:223;::::0;::::1;::::0;;;-1:-1:-1;;;;;;14234:223:0;;;-1:-1:-1;;;;;7937:15:1;;;14234:223:0::1;::::0;::::1;7919:34:1::0;7969:18;;;7962:34;;;;8012:18;;;8005:34;;;;8055:18;;;8048:34;8119:15;;;8098:19;;;8091:44;14431:15:0::1;8151:19:1::0;;;8144:35;7853:19;;14234:223:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;14475:13:0::1;::::0;14506:15:::1;::::0;14468:71:::1;::::0;-1:-1:-1;;;14468:71:0;;-1:-1:-1;;;;;14506:15:0;;::::1;14468:71;::::0;::::1;8675:51:1::0;-1:-1:-1;;8742:18:1;;;8735:34;14475:13:0;::::1;::::0;-1:-1:-1;14468:29:0::1;::::0;8648:18:1;;14468:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;14550:11:0::1;:18:::0;;-1:-1:-1;;;;14579:18:0;-1:-1:-1;;;14579:18:0;;;14125:480::o;13139:164::-;2928:6;;-1:-1:-1;;;;;2928:6:0;416:10;2928:22;2920:61;;;;-1:-1:-1;;;2920:61:0;;;;;;;:::i;:::-;13213:6:::1;13208:88;13229:5;:12;13225:1;:16;13208:88;;;13280:4;13263;:14;13268:5;13274:1;13268:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;13263:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;13263:14:0;:21;;-1:-1:-1;;13263:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13243:3;::::1;::::0;::::1;:::i;:::-;;;;13208:88;;7502:327:::0;-1:-1:-1;;;;;7595:19:0;;7587:64;;;;-1:-1:-1;;;7587:64:0;;9264:2:1;7587:64:0;;;9246:21:1;;;9283:18;;;9276:30;9342:34;9322:18;;;9315:62;9394:18;;7587:64:0;9062:356:1;7587:64:0;-1:-1:-1;;;;;7670:21:0;;7662:64;;;;-1:-1:-1;;;7662:64:0;;9625:2:1;7662:64:0;;;9607:21:1;9664:2;9644:18;;;9637:30;9703:32;9683:18;;;9676:60;9753:18;;7662:64:0;9423:354:1;7662:64:0;-1:-1:-1;;;;;7737:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7789:32;;1549:25:1;;;7789:32:0;;1522:18:1;7789:32:0;;;;;;;;7502:327;;;:::o;7837:2483::-;-1:-1:-1;;;;;7929:18:0;;7921:64;;;;-1:-1:-1;;;7921:64:0;;9984:2:1;7921:64:0;;;9966:21:1;10023:2;10003:18;;;9996:30;10062:34;10042:18;;;10035:62;-1:-1:-1;;;10113:18:1;;;10106:31;10154:19;;7921:64:0;9782:397:1;7921:64:0;-1:-1:-1;;;;;8004:16:0;;7996:60;;;;-1:-1:-1;;;7996:60:0;;10386:2:1;7996:60:0;;;10368:21:1;10425:2;10405:18;;;10398:30;10464:33;10444:18;;;10437:61;10515:18;;7996:60:0;10184:355:1;7996:60:0;8088:1;8075:10;:14;8067:62;;;;-1:-1:-1;;;8067:62:0;;10746:2:1;8067:62:0;;;10728:21:1;10785:2;10765:18;;;10758:30;10824:34;10804:18;;;10797:62;-1:-1:-1;;;10875:18:1;;;10868:33;10918:19;;8067:62:0;10544:399:1;8067:62:0;8144:6;;-1:-1:-1;;;8144:6:0;;;;;:22;;-1:-1:-1;8155:11:0;;-1:-1:-1;;;8155:11:0;;;;8154:12;8144:22;8140:235;;;-1:-1:-1;;;;;8201:15:0;;;;;;:9;:15;;;;;;:31;;8221:10;8201:19;:31::i;:::-;-1:-1:-1;;;;;8183:15:0;;;;;;;:9;:15;;;;;;:49;;;;8263:13;;;;;;;:29;;8281:10;8263:17;:29::i;:::-;-1:-1:-1;;;;;8247:13:0;;;;;;;:9;:13;;;;;;;:45;;;;8312:30;;;;;;;;;;8331:10;1549:25:1;;1537:2;1522:18;;1403:177;8140:235:0;2839:7;2866:6;-1:-1:-1;;;;;8389:15:0;;;2866:6;;8389:15;;;;:32;;-1:-1:-1;2839:7:0;2866:6;-1:-1:-1;;;;;8408:13:0;;;2866:6;;8408:13;;8389:32;8385:1879;;;-1:-1:-1;;;;;8447:10:0;;;;;;:4;:10;;;;;;;;8446:11;:24;;;;-1:-1:-1;;;;;;8462:8:0;;;;;;:4;:8;;;;;;;;8461:9;8446:24;8438:33;;;;;;8492:20;;;;8488:520;;;8573:15;;-1:-1:-1;;;;;8559:30:0;;;8573:15;;8559:30;;;;:83;;-1:-1:-1;8628:13:0;;-1:-1:-1;;;;;8614:28:0;;;8628:13;;8614:28;;8559:83;8533:460;;;8748:9;8719:39;;;;:28;:39;;;;;;8761:12;-1:-1:-1;8685:211:0;;;;-1:-1:-1;;;8685:211:0;;11150:2:1;8685:211:0;;;11132:21:1;11189:2;11169:18;;;11162:30;11228:34;11208:18;;;11201:62;11299:34;11279:18;;;11272:62;-1:-1:-1;;;11350:19:1;;;11343:38;11398:19;;8685:211:0;10948:475:1;8685:211:0;8948:9;8919:39;;;;:28;:39;;;;;8961:12;8919:54;;8533:460;9054:13;;-1:-1:-1;;;;;9046:21:0;;;9054:13;;9046:21;:72;;;;-1:-1:-1;9102:15:0;;-1:-1:-1;;;;;9088:30:0;;;9102:15;;9088:30;;9046:72;:116;;;;-1:-1:-1;;;;;;9140:22:0;;;;;;:18;:22;;;;;;;;9139:23;9046:116;9024:446;;;9219:12;;9205:10;:26;;9197:64;;;;-1:-1:-1;;;9197:64:0;;11630:2:1;9197:64:0;;;11612:21:1;11669:2;11649:18;;;11642:30;11708:27;11688:18;;;11681:55;11753:18;;9197:64:0;11428:349:1;9197:64:0;9340:14;;9326:10;9310:13;9320:2;-1:-1:-1;;;;;6444:18:0;6417:7;6444:18;;;:9;:18;;;;;;;6351:119;9310:13;:26;;;;:::i;:::-;:44;;9280:144;;;;-1:-1:-1;;;9280:144:0;;12117:2:1;9280:144:0;;;12099:21:1;12156:2;12136:18;;;12129:30;12195:28;12175:18;;;12168:56;12241:18;;9280:144:0;11915:350:1;9280:144:0;9443:9;:11;;;:9;:11;;;:::i;:::-;;;;;;9024:446;9535:4;9486:28;6444:18;;;:9;:18;;;;;;9579:6;;-1:-1:-1;;;9579:6:0;;;;9578:7;:47;;;;-1:-1:-1;9612:13:0;;-1:-1:-1;;;;;9606:19:0;;;9612:13;;9606:19;9578:47;:79;;;;-1:-1:-1;9646:11:0;;-1:-1:-1;;;9646:11:0;;;;9578:79;:130;;;;;9690:18;;9678:9;;:30;9578:130;:176;;;;-1:-1:-1;;;;;;9730:24:0;;;;;;:18;:24;;;;;;;;9729:25;9578:176;:220;;;;-1:-1:-1;;;;;;9776:22:0;;;;;;:18;:22;;;;;;;;9775:23;9578:220;9556:697;;;9859:17;;9836:20;:40;9833:209;;;9901:121;9944:55;9948:10;9960:38;9964:20;9986:11;;9960:3;:38::i;:::-;9944:3;:55::i;:::-;9901:16;:121::i;:::-;10091:21;10183:35;10196:21;10183:12;:35::i;:::-;9814:439;9556:697;8423:1841;8385:1879;10276:36;10291:4;10297:2;10301:10;10276:14;:36::i;:::-;7837:2483;;;:::o;1603:224::-;1723:7;1759:12;1751:6;;;;1743:29;;;;-1:-1:-1;;;1743:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1783:9:0;1795:5;1799:1;1795;:5;:::i;:::-;1783:17;1603:224;-1:-1:-1;;;;;1603:224:0:o;13038:93::-;13095:11;;:28;;:11;;;;-1:-1:-1;;;;;13095:11:0;;:28;;;;;;;;;;;;:11;:28;;;;;;;;;;;;;;;;;;;1459:136;1517:7;1544:43;1548:1;1551;1544:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1537:50;1459:136;-1:-1:-1;;;1459:136:0:o;1272:179::-;1330:7;;1362:5;1366:1;1362;:5;:::i;:::-;1350:17;;1391:1;1386;:6;;1378:46;;;;-1:-1:-1;;;1378:46:0;;12602:2:1;1378:46:0;;;12584:21:1;12641:2;12621:18;;;12614:30;12680:29;12660:18;;;12653:57;12727:18;;1378:46:0;12400:351:1;12048:107:0;12105:7;12137:1;12133;:5;12132:15;;12146:1;12132:15;;;-1:-1:-1;12142:1:0;12048:107;-1:-1:-1;12048:107:0:o;12341:480::-;5549:6;:13;;-1:-1:-1;;;;5549:13:0;-1:-1:-1;;;5549:13:0;;;12442:16:::1;::::0;;12456:1:::1;12442:16:::0;;;;;::::1;::::0;;-1:-1:-1;;12442:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12442:16:0::1;12418:40;;12487:4;12469;12474:1;12469:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12469:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12513:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;12513:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;12469:7;;12513:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12503:4;12508:1;12503:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12503:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;12578:15:::1;::::0;12546:61:::1;::::0;12563:4:::1;::::0;12578:15:::1;12596:10:::0;12546:8:::1;:61::i;:::-;12618:15;::::0;:195:::1;::::0;-1:-1:-1;;;12618:195:0;;-1:-1:-1;;;;;12618:15:0;;::::1;::::0;:66:::1;::::0;:195:::1;::::0;12699:10;;12618:15:::1;::::0;12740:4;;12767::::1;::::0;12787:15:::1;::::0;12618:195:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5585:6:0;:14;;-1:-1:-1;;;;5585:14:0;;;-1:-1:-1;;;;12341:480:0:o;10616:253::-;10707:15;10724:17;10743:15;10762:33;10774:4;10780:2;10784:10;10762:11;:33::i;:::-;10706:89;;-1:-1:-1;10706:89:0;-1:-1:-1;10706:89:0;-1:-1:-1;10806:55:0;10819:4;10825:2;10706:89;10838:22;10706:89;;10838:11;:22::i;:::-;10806:12;:55::i;:::-;10695:174;;;10616:253;;;:::o;10877:1163::-;-1:-1:-1;;;;;11100:26:0;;11003:7;11100:26;;;:18;:26;;;;;;11003:7;;;;;;;;11100:26;;11096:694;;11155:212;11363:3;11155:185;11223:15;;11211:9;;:27;11210:111;;11307:14;;11210:111;;;11267:12;;11210:111;11155:10;;:32;:185::i;:::-;:207;;:212::i;:::-;11397:13;;11143:224;;-1:-1:-1;;;;;;11386:24:0;;;11397:13;;11386:24;:51;;;;-1:-1:-1;;;;;;11414:23:0;;11432:4;11414:23;;11386:51;11382:343;;;11470:239;11705:3;11470:208;11546:16;;11534:9;;:28;11533:122;;11640:15;;11533:122;;;11595:13;;11470:10;;:36;:208::i;:239::-;11458:251;;11382:343;11749:29;11758:7;11767:10;11749:8;:29::i;:::-;11739:39;;11096:694;11814:13;;11810:171;;11889:4;11871:24;;;;:9;:24;;;;;;:36;;11898:9;;11871:36;:::i;:::-;11862:4;11844:24;;;;:9;:24;;;;;;;:63;;;;11927:42;;-1:-1:-1;;;;;11927:42:0;;;;;;;11959:9;1549:25:1;;1537:2;1522:18;;1403:177;11927:42:0;;;;;;;;11810:171;12001:7;;;;-1:-1:-1;12021:10:0;;-1:-1:-1;;;;10877:1163:0:o;10328:280::-;-1:-1:-1;;;;;10457:17:0;;;;;;:9;:17;;;;;;:30;;10479:7;10457:21;:30::i;:::-;-1:-1:-1;;;;;10437:17:0;;;;;;;:9;:17;;;;;;:50;;;;10519:18;;;;;;;:31;;10542:7;10519:22;:31::i;:::-;-1:-1:-1;;;;;10498:18:0;;;;;;;:9;:18;;;;;;;:52;;;;10566:34;;;;;;;;;;10592:7;1549:25:1;;1537:2;1522:18;;1403:177;10566:34:0;;;;;;;;10328:280;;;;:::o;1835:246::-;1893:7;1917:6;1913:47;;-1:-1:-1;1947:1:0;1940:8;;1913:47;1970:9;1982:5;1986:1;1982;:5;:::i;:::-;1970:17;-1:-1:-1;2015:1:0;2006:5;2010:1;1970:17;2006:5;:::i;:::-;:10;1998:56;;;;-1:-1:-1;;;1998:56:0;;14165:2:1;1998:56:0;;;14147:21:1;14204:2;14184:18;;;14177:30;14243:34;14223:18;;;14216:62;-1:-1:-1;;;14294:18:1;;;14287:31;14335:19;;1998:56:0;13963:397:1;2089:132:0;2147:7;2174:39;2178:1;2181;2174:39;;;;;;;;;;;;;;;;;:3;:39::i;12163:170::-;12235:7;12255:11;12265:1;12255:11;;:::i;:::-;;-1:-1:-1;12286:15:0;12295:6;12255:11;12286:15;:::i;2229:223::-;2349:7;2384:12;2377:5;2369:28;;;;-1:-1:-1;;;2369:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2408:9:0;2420:5;2424:1;2420;:5;:::i;14:597:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:131::-;-1:-1:-1;;;;;691:31:1;;681:42;;671:70;;737:1;734;727:12;671:70;616:131;:::o;752:134::-;820:20;;849:31;820:20;849:31;:::i;:::-;752:134;;;:::o;891:315::-;959:6;967;1020:2;1008:9;999:7;995:23;991:32;988:52;;;1036:1;1033;1026:12;988:52;1075:9;1062:23;1094:31;1119:5;1094:31;:::i;:::-;1144:5;1196:2;1181:18;;;;1168:32;;-1:-1:-1;;;891:315:1:o;1585:456::-;1662:6;1670;1678;1731:2;1719:9;1710:7;1706:23;1702:32;1699:52;;;1747:1;1744;1737:12;1699:52;1786:9;1773:23;1805:31;1830:5;1805:31;:::i;:::-;1855:5;-1:-1:-1;1912:2:1;1897:18;;1884:32;1925:33;1884:32;1925:33;:::i;:::-;1585:456;;1977:7;;-1:-1:-1;;;2031:2:1;2016:18;;;;2003:32;;1585:456::o;2235:127::-;2296:10;2291:3;2287:20;2284:1;2277:31;2327:4;2324:1;2317:15;2351:4;2348:1;2341:15;2367:1121;2451:6;2482:2;2525;2513:9;2504:7;2500:23;2496:32;2493:52;;;2541:1;2538;2531:12;2493:52;2581:9;2568:23;2610:18;2651:2;2643:6;2640:14;2637:34;;;2667:1;2664;2657:12;2637:34;2705:6;2694:9;2690:22;2680:32;;2750:7;2743:4;2739:2;2735:13;2731:27;2721:55;;2772:1;2769;2762:12;2721:55;2808:2;2795:16;2830:2;2826;2823:10;2820:36;;;2836:18;;:::i;:::-;2882:2;2879:1;2875:10;2914:2;2908:9;2977:2;2973:7;2968:2;2964;2960:11;2956:25;2948:6;2944:38;3032:6;3020:10;3017:22;3012:2;3000:10;2997:18;2994:46;2991:72;;;3043:18;;:::i;:::-;3079:2;3072:22;3129:18;;;3163:15;;;;-1:-1:-1;3205:11:1;;;3201:20;;;3233:19;;;3230:39;;;3265:1;3262;3255:12;3230:39;3289:11;;;;3309:148;3325:6;3320:3;3317:15;3309:148;;;3391:23;3410:3;3391:23;:::i;:::-;3379:36;;3342:12;;;;3435;;;;3309:148;;;3476:6;2367:1121;-1:-1:-1;;;;;;;;2367:1121:1:o;3493:247::-;3552:6;3605:2;3593:9;3584:7;3580:23;3576:32;3573:52;;;3621:1;3618;3611:12;3573:52;3660:9;3647:23;3679:31;3704:5;3679:31;:::i;3953:388::-;4021:6;4029;4082:2;4070:9;4061:7;4057:23;4053:32;4050:52;;;4098:1;4095;4088:12;4050:52;4137:9;4124:23;4156:31;4181:5;4156:31;:::i;:::-;4206:5;-1:-1:-1;4263:2:1;4248:18;;4235:32;4276:33;4235:32;4276:33;:::i;:::-;4328:7;4318:17;;;3953:388;;;;;:::o;4346:127::-;4407:10;4402:3;4398:20;4395:1;4388:31;4438:4;4435:1;4428:15;4462:4;4459:1;4452:15;4478:422;4567:1;4610:5;4567:1;4624:270;4645:7;4635:8;4632:21;4624:270;;;4704:4;4700:1;4696:6;4692:17;4686:4;4683:27;4680:53;;;4713:18;;:::i;:::-;4763:7;4753:8;4749:22;4746:55;;;4783:16;;;;4746:55;4862:22;;;;4822:15;;;;4624:270;;;4628:3;4478:422;;;;;:::o;4905:806::-;4954:5;4984:8;4974:80;;-1:-1:-1;5025:1:1;5039:5;;4974:80;5073:4;5063:76;;-1:-1:-1;5110:1:1;5124:5;;5063:76;5155:4;5173:1;5168:59;;;;5241:1;5236:130;;;;5148:218;;5168:59;5198:1;5189:10;;5212:5;;;5236:130;5273:3;5263:8;5260:17;5257:43;;;5280:18;;:::i;:::-;-1:-1:-1;;5336:1:1;5322:16;;5351:5;;5148:218;;5450:2;5440:8;5437:16;5431:3;5425:4;5422:13;5418:36;5412:2;5402:8;5399:16;5394:2;5388:4;5385:12;5381:35;5378:77;5375:159;;;-1:-1:-1;5487:19:1;;;5519:5;;5375:159;5566:34;5591:8;5585:4;5566:34;:::i;:::-;5636:6;5632:1;5628:6;5624:19;5615:7;5612:32;5609:58;;;5647:18;;:::i;:::-;5685:20;;4905:806;-1:-1:-1;;;4905:806:1:o;5716:140::-;5774:5;5803:47;5844:4;5834:8;5830:19;5824:4;5803:47;:::i;5861:168::-;5901:7;5967:1;5963;5959:6;5955:14;5952:1;5949:21;5944:1;5937:9;5930:17;5926:45;5923:71;;;5974:18;;:::i;:::-;-1:-1:-1;6014:9:1;;5861:168::o;6034:350::-;6236:2;6218:21;;;6275:2;6255:18;;;6248:30;6314:28;6309:2;6294:18;;6287:56;6375:2;6360:18;;6034:350::o;6389:127::-;6450:10;6445:3;6441:20;6438:1;6431:31;6481:4;6478:1;6471:15;6505:4;6502:1;6495:15;6521:135;6560:3;-1:-1:-1;;6581:17:1;;6578:43;;;6601:18;;:::i;:::-;-1:-1:-1;6648:1:1;6637:13;;6521:135::o;6661:251::-;6731:6;6784:2;6772:9;6763:7;6759:23;6755:32;6752:52;;;6800:1;6797;6790:12;6752:52;6832:9;6826:16;6851:31;6876:5;6851:31;:::i;8190:306::-;8278:6;8286;8294;8347:2;8335:9;8326:7;8322:23;8318:32;8315:52;;;8363:1;8360;8353:12;8315:52;8392:9;8386:16;8376:26;;8442:2;8431:9;8427:18;8421:25;8411:35;;8486:2;8475:9;8471:18;8465:25;8455:35;;8190:306;;;;;:::o;8780:277::-;8847:6;8900:2;8888:9;8879:7;8875:23;8871:32;8868:52;;;8916:1;8913;8906:12;8868:52;8948:9;8942:16;9001:5;8994:13;8987:21;8980:5;8977:32;8967:60;;9023:1;9020;9013:12;11782:128;11822:3;11853:1;11849:6;11846:1;11843:13;11840:39;;;11859:18;;:::i;:::-;-1:-1:-1;11895:9:1;;11782:128::o;12270:125::-;12310:4;12338:1;12335;12332:8;12329:34;;;12343:18;;:::i;:::-;-1:-1:-1;12380:9:1;;12270:125::o;12756:980::-;13018:4;13066:3;13055:9;13051:19;13097:6;13086:9;13079:25;13123:2;13161:6;13156:2;13145:9;13141:18;13134:34;13204:3;13199:2;13188:9;13184:18;13177:31;13228:6;13263;13257:13;13294:6;13286;13279:22;13332:3;13321:9;13317:19;13310:26;;13371:2;13363:6;13359:15;13345:29;;13392:1;13402:195;13416:6;13413:1;13410:13;13402:195;;;13481:13;;-1:-1:-1;;;;;13477:39:1;13465:52;;13572:15;;;;13537:12;;;;13513:1;13431:9;13402:195;;;-1:-1:-1;;;;;;;13653:32:1;;;;13648:2;13633:18;;13626:60;-1:-1:-1;;;13717:3:1;13702:19;13695:35;13614:3;12756:980;-1:-1:-1;;;12756:980:1:o;13741:217::-;13781:1;13807;13797:132;;13851:10;13846:3;13842:20;13839:1;13832:31;13886:4;13883:1;13876:15;13914:4;13911:1;13904:15;13797:132;-1:-1:-1;13943:9:1;;13741:217::o

Swarm Source

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