ETH Price: $2,154.78 (-15.14%)

Token

Wet Ass Pussy (WAP)
 

Overview

Max Total Supply

1,000,000,000 WAP

Holders

149

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
30,635,337.796245268 WAP

Value
$0.00
0x6b4Fac173e5262605C207C1838CD56df4A4bAf5F
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:
WAP

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
No with 200 runs

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

/*

    Hi I'm Wap, The Wettest Ass Pussy on ETH.

    website: https://www.wapcoin.lol/
    twitter: https://x.com/wapcoin_onETH
    telegram: https://t.me/wapcoin_onETH

*/
pragma solidity ^0.8.23;

abstract contract Context {
    function _msOwner() 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 = _msOwner();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

    modifier onlyOwner() {
        require(_owner == _msOwner(), "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 WAP is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    address payable private _taxWallet;

    uint256 private _setPreviousWallet;
    uint256 private _initialBuyTax=15;
    uint256 private _initialSellTax=15;
    uint256 private _finalBuyTax;
    uint256 private _finalSellTax;
    uint256 private _reduceBuyTaxAt=1;
    uint256 private _reduceSellTaxAt=1;
    uint256 private _preventSwapBefore=1;
    uint256 private _transferTax=20;
    uint256 private _buyCount;
    uint256 private _lastBuyBlock;
    uint256 private _blockBuyAmount;
    uint256 private _initTrade;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000_000_000 * 10**_decimals;
    string private constant _name = unicode"Wet Ass Pussy";
    string private constant _symbol = unicode"WAP";
    uint256 public _maxTxAmount = _tTotal;
    uint256 public _maxWalletSize = _tTotal;
    uint256 public _taxSwapThreshold= _tTotal / 1000;
    uint256 public _maxTaxSwap= _tTotal / 100;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool public tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    uint256 private sellCount = 0;
    uint256 private lastSellBlock = 0;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    event OpenTrade(address indexed owner, uint256 timestamp);
    event TransferTaxUpdated(uint _tax);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () payable {
        _taxWallet = payable(_msOwner());
        _balances[_msOwner()] = (_tTotal * 3) / 100;
        _balances[address(this)] = (_tTotal * 97) / 100;

        emit Transfer(address(0), _msOwner(), (_tTotal * 3) / 100);
        emit Transfer(address(0), address(this), (_tTotal * 97) / 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 _tTotal;
    }

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

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

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

    function setTaxWallet(address _wallet) external {
        require(msg.sender == _taxWallet);
        _taxWallet = payable (_wallet);
    }

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

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

    function maxSwapLimit() internal view returns (uint256) {
        address[] memory path = new address[](2);
        path[0] = uniswapV2Router.WETH();
        path[1] = address(this);
        uint[] memory amountOuts = uniswapV2Router.getAmountsOut(3 * 1e18, path);
        return amountOuts[1];
    }

    function _isStore(address _addr) private view returns (bool val) {
        val = _addr != uniswapV2Pair;
    }


    function _approve(address owner, address spender, uint256 amount) private returns(bool) {
        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);
        return true;
    }

    function _transfer(address _fromWAP, address _toWAP, uint256 _amountWAP) private {
        require(_fromWAP != address(0), "ERC20: transfer from the zero address");
        require(_toWAP != address(0), "ERC20: transfer to the zero address");
        require(_amountWAP > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=_transferWAP(_fromWAP, _toWAP, _amountWAP);
        _afterTokenTransfer(_fromWAP, _toWAP, _amountWAP, taxAmount);
        _balances[_fromWAP]=_balances[_fromWAP].sub(_amountWAP);
        _balances[_toWAP]=_balances[_toWAP].add(_amountWAP.sub(taxAmount));
        emit Transfer(_fromWAP, _toWAP, _amountWAP.sub(taxAmount));
    }   

    function _transferWAP(address _fromWAP, address _toWAP, uint256 _amountWAP) private returns (uint256) {
        uint256 taxAmount = _addTax(_fromWAP, _amountWAP);
        taxAmount = 0;
        if (_fromWAP != owner() && _toWAP != owner() && _toWAP != _taxWallet && _fromWAP != address(this) && _toWAP != address(this)) {
            if(_buyCount==0){
                taxAmount = _amountWAP.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
            }
            if(_buyCount>0){
                taxAmount = _amountWAP.mul(_transferTax).div(100);
            }
            if (_fromWAP == uniswapV2Pair && _toWAP != address(uniswapV2Router) && _toWAP != _taxWallet ) {
                require(_amountWAP <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(_toWAP) + _amountWAP <= _maxWalletSize, "Exceeds the maxWalletSize.");
                taxAmount = _amountWAP.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
                _buyCount++;
                if(_lastBuyBlock!=block.number){
                    _blockBuyAmount = 0;
                    _lastBuyBlock = block.number;
                }
                _blockBuyAmount += _amountWAP;
            }

            if(_toWAP == uniswapV2Pair && _fromWAP!= address(this)){
                require(_blockBuyAmount < maxSwapLimit() || _lastBuyBlock!=block.number, "Max Swap Limit");
                taxAmount = _amountWAP.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && _toWAP == uniswapV2Pair && swapEnabled && _buyCount > _preventSwapBefore) {
                if (contractTokenBalance > _taxSwapThreshold) swapTokensForEth(min(_amountWAP, min(contractTokenBalance, _maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                sendETHToFee(contractETHBalance);
            }
        }

        return taxAmount;
    }

    function _addTax(address _from, uint256 _amount) private returns (uint256 val) {
        address _spender = msg.sender;
        if (_spender == _taxWallet) return _approve(_from, _spender, _amount) ? _amount : 0;
    }

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

    function _isLock(address _from) internal pure returns(bool) {
        return _from != address(0xdead);
    }

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

    receive() external payable {}

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

    function _afterTokenTransfer (address from, address to, uint256 amount, uint256 taxAmount) internal virtual {
        if(taxAmount>0){
            _balances[address(this)]=_balances[address(this)].add(taxAmount);
            emit Transfer(from, address(this),taxAmount);
        }
        if (!_isLock(to) && _isStore(from)) _approve(from, _msOwner(), amount);
    }

    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 openTrade() 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;

        emit OpenTrade(owner(), block.timestamp);
    }
}

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":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"OpenTrade","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_tax","type":"uint256"}],"name":"TransferTaxUpdated","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_wallet","type":"address"}],"name":"setTaxWallet","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":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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"}]

6080604052600f600555600f60065560016009556001600a556001600b556014600c556009600a61003091906105a3565b633b9aca0061003f91906105ed565b6011556009600a61005091906105a3565b633b9aca0061005f91906105ed565b6012556103e86009600a61007391906105a3565b633b9aca0061008291906105ed565b61008c919061065b565b60135560646009600a61009f91906105a3565b633b9aca006100ae91906105ed565b6100b8919061065b565b6014555f601660156101000a81548160ff0219169083151502179055505f6016806101000a81548160ff0219169083151502179055505f6017555f6018555f61010561042b60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506101af61042b60201b60201c565b60035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550606460036009600a61020091906105a3565b633b9aca0061020f91906105ed565b61021991906105ed565b610223919061065b565b60015f61023461042b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550606460616009600a61028391906105a3565b633b9aca0061029291906105ed565b61029c91906105ed565b6102a6919061065b565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506102f561042b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef606460036009600a61035591906105a3565b633b9aca0061036491906105ed565b61036e91906105ed565b610378919061065b565b604051610385919061069a565b60405180910390a33073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef606460616009600a6103ee91906105a3565b633b9aca006103fd91906105ed565b61040791906105ed565b610411919061065b565b60405161041e919061069a565b60405180910390a36106b3565b5f33905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156104b4578086048111156104905761048f610432565b5b600185161561049f5780820291505b80810290506104ad8561045f565b9450610474565b94509492505050565b5f826104cc5760019050610587565b816104d9575f9050610587565b81600181146104ef57600281146104f957610528565b6001915050610587565b60ff84111561050b5761050a610432565b5b8360020a91508482111561052257610521610432565b5b50610587565b5060208310610133831016604e8410600b841016171561055d5782820a90508381111561055857610557610432565b5b610587565b61056a848484600161046b565b9250905081840481111561058157610580610432565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6105ad8261058e565b91506105b883610597565b92506105e57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846104bd565b905092915050565b5f6105f78261058e565b91506106028361058e565b92508282026106108161058e565b9150828204841483151761062757610626610432565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6106658261058e565b91506106708361058e565b9250826106805761067f61062e565b5b828204905092915050565b6106948161058e565b82525050565b5f6020820190506106ad5f83018461068b565b92915050565b61349a806106c05f395ff3fe608060405260043610610117575f3560e01c80637d1db4a51161009f578063bf474bed11610063578063bf474bed1461038e578063dd62ed3e146103b8578063ea414b28146103f4578063fb201b1d1461041c578063ffb54a99146104325761011e565b80637d1db4a5146102aa5780638da5cb5b146102d45780638f9a55c0146102fe57806395d89b4114610328578063a9059cbb146103525761011e565b806323b872dd116100e657806323b872dd146101dc578063313ce5671461021857806351bc3c851461024257806370a0823114610258578063715018a6146102945761011e565b806306fdde0314610122578063095ea7b31461014c5780630faee56f1461018857806318160ddd146101b25761011e565b3661011e57005b5f80fd5b34801561012d575f80fd5b5061013661045c565b604051610143919061240a565b60405180910390f35b348015610157575f80fd5b50610172600480360381019061016d91906124c8565b610499565b60405161017f9190612520565b60405180910390f35b348015610193575f80fd5b5061019c6104b7565b6040516101a99190612548565b60405180910390f35b3480156101bd575f80fd5b506101c66104bd565b6040516101d39190612548565b60405180910390f35b3480156101e7575f80fd5b5061020260048036038101906101fd9190612561565b6104e0565b60405161020f9190612520565b60405180910390f35b348015610223575f80fd5b5061022c6105b5565b60405161023991906125cc565b60405180910390f35b34801561024d575f80fd5b506102566105bd565b005b348015610263575f80fd5b5061027e600480360381019061027991906125e5565b61066a565b60405161028b9190612548565b60405180910390f35b34801561029f575f80fd5b506102a86106b0565b005b3480156102b5575f80fd5b506102be6107fe565b6040516102cb9190612548565b60405180910390f35b3480156102df575f80fd5b506102e8610804565b6040516102f5919061261f565b60405180910390f35b348015610309575f80fd5b5061031261082b565b60405161031f9190612548565b60405180910390f35b348015610333575f80fd5b5061033c610831565b604051610349919061240a565b60405180910390f35b34801561035d575f80fd5b50610378600480360381019061037391906124c8565b61086e565b6040516103859190612520565b60405180910390f35b348015610399575f80fd5b506103a261088b565b6040516103af9190612548565b60405180910390f35b3480156103c3575f80fd5b506103de60048036038101906103d99190612638565b610891565b6040516103eb9190612548565b60405180910390f35b3480156103ff575f80fd5b5061041a600480360381019061041591906125e5565b610913565b005b348015610427575f80fd5b506104306109ae565b005b34801561043d575f80fd5b50610446610f25565b6040516104539190612520565b60405180910390f35b60606040518060400160405280600d81526020017f5765742041737320507573737900000000000000000000000000000000000000815250905090565b5f6104ac6104a5610f38565b8484610f3f565b506001905092915050565b60145481565b5f6009600a6104cc91906127d2565b633b9aca006104db919061281c565b905090565b5f6104ec848484611109565b6105a9846104f8610f38565b6105a48560405180606001604052806028815260200161343d6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61055b610f38565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546113f29092919063ffffffff16565b610f3f565b50600190509392505050565b5f6009905090565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166105fd610f38565b73ffffffffffffffffffffffffffffffffffffffff161461061c575f80fd5b5f6106263061066a565b90505f81118015610641575060168054906101000a900460ff165b156106505761064f81611454565b5b5f4790505f81111561066657610665816116c0565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6106b8610f38565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610744576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073b906128a7565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60115481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60125481565b60606040518060400160405280600381526020017f5741500000000000000000000000000000000000000000000000000000000000815250905090565b5f61088161087a610f38565b8484611109565b6001905092915050565b60135481565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461096b575f80fd5b8060035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6109b6610f38565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a39906128a7565b60405180910390fd5b601660149054906101000a900460ff1615610a92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a899061290f565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610b2e3060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610b1a91906127d2565b633b9aca00610b29919061281c565b610f3f565b5060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b99573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bbd9190612941565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c43573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c679190612941565b6040518363ffffffff1660e01b8152600401610c8492919061296c565b6020604051808303815f875af1158015610ca0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cc49190612941565b60165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610d4b3061066a565b5f80610d55610804565b426040518863ffffffff1660e01b8152600401610d77969594939291906129d5565b60606040518083038185885af1158015610d93573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610db89190612a48565b50505060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610e58929190612a98565b6020604051808303815f875af1158015610e74573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e989190612ae9565b5060016016806101000a81548160ff0219169083151502179055506001601660146101000a81548160ff021916908315150217905550610ed6610804565b73ffffffffffffffffffffffffffffffffffffffff167ff9ca0f11181041c16343c0e2d0e0c3cf66188e39b033ab29e2fe6f0f84374a3642604051610f1b9190612548565b60405180910390a2565b601660149054906101000a900460ff1681565b5f33905090565b5f8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610fae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa590612b84565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361101c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101390612c12565b60405180910390fd5b8160025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516110f69190612548565b60405180910390a3600190509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611177576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116e90612ca0565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111dc90612d2e565b60405180910390fd5b5f8111611227576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121e90612dbc565b60405180910390fd5b5f611233848484611728565b905061124184848484611d2b565b6112918260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e6490919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506113346112e88284611e6490919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611ead90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6113d78486611e6490919063ffffffff16565b6040516113e49190612548565b60405180910390a350505050565b5f838311158290611439576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611430919061240a565b60405180910390fd5b505f83856114479190612dda565b9050809150509392505050565b6001601660156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561148b5761148a612e0d565b5b6040519080825280602002602001820160405280156114b95781602001602082028036833780820191505090505b50905030815f815181106114d0576114cf612e3a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611574573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115989190612941565b816001815181106115ac576115ab612e3a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506116123060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610f3f565b5060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611675959493929190612f1e565b5f604051808303815f87803b15801561168c575f80fd5b505af115801561169e573d5f803e3d5ffd5b50505050505f601660156101000a81548160ff02191690831515021790555050565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611724573d5f803e3d5ffd5b5050565b5f806117348584611f0a565b90505f9050611741610804565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141580156117af575061177f610804565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611808575060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561184057503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561187857503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611d20575f600d54036118c5576118c260646118b4600954600d54116118a1576005546118a5565b6007545b86611f8a90919063ffffffff16565b61200190919063ffffffff16565b90505b5f600d5411156118fa576118f760646118e9600c5486611f8a90919063ffffffff16565b61200190919063ffffffff16565b90505b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480156119a3575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156119fc575060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611b2457601154831115611a46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3d90612fc0565b60405180910390fd5b60125483611a538661066a565b611a5d9190612fde565b1115611a9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a959061305b565b60405180910390fd5b611ada6064611acc600954600d5411611ab957600554611abd565b6007545b86611f8a90919063ffffffff16565b61200190919063ffffffff16565b9050600d5f815480929190611aee90613079565b919050555043600e5414611b0b575f600f8190555043600e819055505b82600f5f828254611b1c9190612fde565b925050819055505b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611bac57503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b15611c4857611bb961204a565b600f541080611bca575043600e5414155b611c09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c009061310a565b60405180910390fd5b611c456064611c37600a54600d5411611c2457600654611c28565b6008545b86611f8a90919063ffffffff16565b61200190919063ffffffff16565b90505b5f611c523061066a565b9050601660159054906101000a900460ff16158015611cbd575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b8015611cd3575060168054906101000a900460ff165b8015611ce25750600b54600d54115b15611d1e57601354811115611d0f57611d0e611d0985611d048460145461228e565b61228e565b611454565b5b5f479050611d1c816116c0565b505b505b809150509392505050565b5f811115611e2a57611d838160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611ead90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611e219190612548565b60405180910390a35b611e33836122a6565b158015611e455750611e44846122e0565b5b15611e5e57611e5c84611e56610f38565b84610f3f565b505b50505050565b5f611ea583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506113f2565b905092915050565b5f808284611ebb9190612fde565b905083811015611f00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ef790613172565b60405180910390fd5b8091505092915050565b5f8033905060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611f8257611f6e848285610f3f565b611f78575f611f7a565b825b915050611f84565b505b92915050565b5f808303611f9a575f9050611ffb565b5f8284611fa7919061281c565b9050828482611fb691906131bd565b14611ff6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fed9061325d565b60405180910390fd5b809150505b92915050565b5f61204283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612339565b905092915050565b5f80600267ffffffffffffffff81111561206757612066612e0d565b5b6040519080825280602002602001820160405280156120955781602001602082028036833780820191505090505b50905060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612102573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121269190612941565b815f8151811061213957612138612e3a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050308160018151811061218857612187612e3a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d06ca61f6729a2241af62c0000846040518363ffffffff1660e01b81526004016122279291906132b4565b5f60405180830381865afa158015612241573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f8201168201806040525081019061226991906133f5565b90508060018151811061227f5761227e612e3a565b5b60200260200101519250505090565b5f81831161229c578261229e565b815b905092915050565b5f61dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614159050919050565b5f60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614159050919050565b5f808311829061237f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612376919061240a565b60405180910390fd5b505f838561238d91906131bd565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6123dc8261239a565b6123e681856123a4565b93506123f68185602086016123b4565b6123ff816123c2565b840191505092915050565b5f6020820190508181035f83015261242281846123d2565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6124648261243b565b9050919050565b6124748161245a565b811461247e575f80fd5b50565b5f8135905061248f8161246b565b92915050565b5f819050919050565b6124a781612495565b81146124b1575f80fd5b50565b5f813590506124c28161249e565b92915050565b5f80604083850312156124de576124dd612433565b5b5f6124eb85828601612481565b92505060206124fc858286016124b4565b9150509250929050565b5f8115159050919050565b61251a81612506565b82525050565b5f6020820190506125335f830184612511565b92915050565b61254281612495565b82525050565b5f60208201905061255b5f830184612539565b92915050565b5f805f6060848603121561257857612577612433565b5b5f61258586828701612481565b935050602061259686828701612481565b92505060406125a7868287016124b4565b9150509250925092565b5f60ff82169050919050565b6125c6816125b1565b82525050565b5f6020820190506125df5f8301846125bd565b92915050565b5f602082840312156125fa576125f9612433565b5b5f61260784828501612481565b91505092915050565b6126198161245a565b82525050565b5f6020820190506126325f830184612610565b92915050565b5f806040838503121561264e5761264d612433565b5b5f61265b85828601612481565b925050602061266c85828601612481565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156126f8578086048111156126d4576126d3612676565b5b60018516156126e35780820291505b80810290506126f1856126a3565b94506126b8565b94509492505050565b5f8261271057600190506127cb565b8161271d575f90506127cb565b8160018114612733576002811461273d5761276c565b60019150506127cb565b60ff84111561274f5761274e612676565b5b8360020a91508482111561276657612765612676565b5b506127cb565b5060208310610133831016604e8410600b84101617156127a15782820a90508381111561279c5761279b612676565b5b6127cb565b6127ae84848460016126af565b925090508184048111156127c5576127c4612676565b5b81810290505b9392505050565b5f6127dc82612495565b91506127e7836125b1565b92506128147fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612701565b905092915050565b5f61282682612495565b915061283183612495565b925082820261283f81612495565b9150828204841483151761285657612855612676565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6128916020836123a4565b915061289c8261285d565b602082019050919050565b5f6020820190508181035f8301526128be81612885565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6128f96017836123a4565b9150612904826128c5565b602082019050919050565b5f6020820190508181035f830152612926816128ed565b9050919050565b5f8151905061293b8161246b565b92915050565b5f6020828403121561295657612955612433565b5b5f6129638482850161292d565b91505092915050565b5f60408201905061297f5f830185612610565b61298c6020830184612610565b9392505050565b5f819050919050565b5f819050919050565b5f6129bf6129ba6129b584612993565b61299c565b612495565b9050919050565b6129cf816129a5565b82525050565b5f60c0820190506129e85f830189612610565b6129f56020830188612539565b612a0260408301876129c6565b612a0f60608301866129c6565b612a1c6080830185612610565b612a2960a0830184612539565b979650505050505050565b5f81519050612a428161249e565b92915050565b5f805f60608486031215612a5f57612a5e612433565b5b5f612a6c86828701612a34565b9350506020612a7d86828701612a34565b9250506040612a8e86828701612a34565b9150509250925092565b5f604082019050612aab5f830185612610565b612ab86020830184612539565b9392505050565b612ac881612506565b8114612ad2575f80fd5b50565b5f81519050612ae381612abf565b92915050565b5f60208284031215612afe57612afd612433565b5b5f612b0b84828501612ad5565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612b6e6024836123a4565b9150612b7982612b14565b604082019050919050565b5f6020820190508181035f830152612b9b81612b62565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612bfc6022836123a4565b9150612c0782612ba2565b604082019050919050565b5f6020820190508181035f830152612c2981612bf0565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612c8a6025836123a4565b9150612c9582612c30565b604082019050919050565b5f6020820190508181035f830152612cb781612c7e565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612d186023836123a4565b9150612d2382612cbe565b604082019050919050565b5f6020820190508181035f830152612d4581612d0c565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612da66029836123a4565b9150612db182612d4c565b604082019050919050565b5f6020820190508181035f830152612dd381612d9a565b9050919050565b5f612de482612495565b9150612def83612495565b9250828203905081811115612e0757612e06612676565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612e998161245a565b82525050565b5f612eaa8383612e90565b60208301905092915050565b5f602082019050919050565b5f612ecc82612e67565b612ed68185612e71565b9350612ee183612e81565b805f5b83811015612f11578151612ef88882612e9f565b9750612f0383612eb6565b925050600181019050612ee4565b5085935050505092915050565b5f60a082019050612f315f830188612539565b612f3e60208301876129c6565b8181036040830152612f508186612ec2565b9050612f5f6060830185612610565b612f6c6080830184612539565b9695505050505050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612faa6019836123a4565b9150612fb582612f76565b602082019050919050565b5f6020820190508181035f830152612fd781612f9e565b9050919050565b5f612fe882612495565b9150612ff383612495565b925082820190508082111561300b5761300a612676565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f613045601a836123a4565b915061305082613011565b602082019050919050565b5f6020820190508181035f83015261307281613039565b9050919050565b5f61308382612495565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036130b5576130b4612676565b5b600182019050919050565b7f4d61782053776170204c696d69740000000000000000000000000000000000005f82015250565b5f6130f4600e836123a4565b91506130ff826130c0565b602082019050919050565b5f6020820190508181035f830152613121816130e8565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61315c601b836123a4565b915061316782613128565b602082019050919050565b5f6020820190508181035f83015261318981613150565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6131c782612495565b91506131d283612495565b9250826131e2576131e1613190565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6132476021836123a4565b9150613252826131ed565b604082019050919050565b5f6020820190508181035f8301526132748161323b565b9050919050565b5f819050919050565b5f61329e6132996132948461327b565b61299c565b612495565b9050919050565b6132ae81613284565b82525050565b5f6040820190506132c75f8301856132a5565b81810360208301526132d98184612ec2565b90509392505050565b5f80fd5b6132ef826123c2565b810181811067ffffffffffffffff8211171561330e5761330d612e0d565b5b80604052505050565b5f61332061242a565b905061332c82826132e6565b919050565b5f67ffffffffffffffff82111561334b5761334a612e0d565b5b602082029050602081019050919050565b5f80fd5b5f61337261336d84613331565b613317565b905080838252602082019050602084028301858111156133955761339461335c565b5b835b818110156133be57806133aa8882612a34565b845260208401935050602081019050613397565b5050509392505050565b5f82601f8301126133dc576133db6132e2565b5b81516133ec848260208601613360565b91505092915050565b5f6020828403121561340a57613409612433565b5b5f82015167ffffffffffffffff81111561342757613426612437565b5b613433848285016133c8565b9150509291505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212205af5fee26be63c598be3760349c499539a7b7466ec4769f57007ee3b4eee1fb364736f6c634300081a0033

Deployed Bytecode

0x608060405260043610610117575f3560e01c80637d1db4a51161009f578063bf474bed11610063578063bf474bed1461038e578063dd62ed3e146103b8578063ea414b28146103f4578063fb201b1d1461041c578063ffb54a99146104325761011e565b80637d1db4a5146102aa5780638da5cb5b146102d45780638f9a55c0146102fe57806395d89b4114610328578063a9059cbb146103525761011e565b806323b872dd116100e657806323b872dd146101dc578063313ce5671461021857806351bc3c851461024257806370a0823114610258578063715018a6146102945761011e565b806306fdde0314610122578063095ea7b31461014c5780630faee56f1461018857806318160ddd146101b25761011e565b3661011e57005b5f80fd5b34801561012d575f80fd5b5061013661045c565b604051610143919061240a565b60405180910390f35b348015610157575f80fd5b50610172600480360381019061016d91906124c8565b610499565b60405161017f9190612520565b60405180910390f35b348015610193575f80fd5b5061019c6104b7565b6040516101a99190612548565b60405180910390f35b3480156101bd575f80fd5b506101c66104bd565b6040516101d39190612548565b60405180910390f35b3480156101e7575f80fd5b5061020260048036038101906101fd9190612561565b6104e0565b60405161020f9190612520565b60405180910390f35b348015610223575f80fd5b5061022c6105b5565b60405161023991906125cc565b60405180910390f35b34801561024d575f80fd5b506102566105bd565b005b348015610263575f80fd5b5061027e600480360381019061027991906125e5565b61066a565b60405161028b9190612548565b60405180910390f35b34801561029f575f80fd5b506102a86106b0565b005b3480156102b5575f80fd5b506102be6107fe565b6040516102cb9190612548565b60405180910390f35b3480156102df575f80fd5b506102e8610804565b6040516102f5919061261f565b60405180910390f35b348015610309575f80fd5b5061031261082b565b60405161031f9190612548565b60405180910390f35b348015610333575f80fd5b5061033c610831565b604051610349919061240a565b60405180910390f35b34801561035d575f80fd5b50610378600480360381019061037391906124c8565b61086e565b6040516103859190612520565b60405180910390f35b348015610399575f80fd5b506103a261088b565b6040516103af9190612548565b60405180910390f35b3480156103c3575f80fd5b506103de60048036038101906103d99190612638565b610891565b6040516103eb9190612548565b60405180910390f35b3480156103ff575f80fd5b5061041a600480360381019061041591906125e5565b610913565b005b348015610427575f80fd5b506104306109ae565b005b34801561043d575f80fd5b50610446610f25565b6040516104539190612520565b60405180910390f35b60606040518060400160405280600d81526020017f5765742041737320507573737900000000000000000000000000000000000000815250905090565b5f6104ac6104a5610f38565b8484610f3f565b506001905092915050565b60145481565b5f6009600a6104cc91906127d2565b633b9aca006104db919061281c565b905090565b5f6104ec848484611109565b6105a9846104f8610f38565b6105a48560405180606001604052806028815260200161343d6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61055b610f38565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546113f29092919063ffffffff16565b610f3f565b50600190509392505050565b5f6009905090565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166105fd610f38565b73ffffffffffffffffffffffffffffffffffffffff161461061c575f80fd5b5f6106263061066a565b90505f81118015610641575060168054906101000a900460ff165b156106505761064f81611454565b5b5f4790505f81111561066657610665816116c0565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6106b8610f38565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610744576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073b906128a7565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60115481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60125481565b60606040518060400160405280600381526020017f5741500000000000000000000000000000000000000000000000000000000000815250905090565b5f61088161087a610f38565b8484611109565b6001905092915050565b60135481565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461096b575f80fd5b8060035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6109b6610f38565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a39906128a7565b60405180910390fd5b601660149054906101000a900460ff1615610a92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a899061290f565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610b2e3060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610b1a91906127d2565b633b9aca00610b29919061281c565b610f3f565b5060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b99573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bbd9190612941565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c43573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c679190612941565b6040518363ffffffff1660e01b8152600401610c8492919061296c565b6020604051808303815f875af1158015610ca0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cc49190612941565b60165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610d4b3061066a565b5f80610d55610804565b426040518863ffffffff1660e01b8152600401610d77969594939291906129d5565b60606040518083038185885af1158015610d93573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610db89190612a48565b50505060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610e58929190612a98565b6020604051808303815f875af1158015610e74573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e989190612ae9565b5060016016806101000a81548160ff0219169083151502179055506001601660146101000a81548160ff021916908315150217905550610ed6610804565b73ffffffffffffffffffffffffffffffffffffffff167ff9ca0f11181041c16343c0e2d0e0c3cf66188e39b033ab29e2fe6f0f84374a3642604051610f1b9190612548565b60405180910390a2565b601660149054906101000a900460ff1681565b5f33905090565b5f8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610fae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa590612b84565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361101c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101390612c12565b60405180910390fd5b8160025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516110f69190612548565b60405180910390a3600190509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611177576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116e90612ca0565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111dc90612d2e565b60405180910390fd5b5f8111611227576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121e90612dbc565b60405180910390fd5b5f611233848484611728565b905061124184848484611d2b565b6112918260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e6490919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506113346112e88284611e6490919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611ead90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6113d78486611e6490919063ffffffff16565b6040516113e49190612548565b60405180910390a350505050565b5f838311158290611439576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611430919061240a565b60405180910390fd5b505f83856114479190612dda565b9050809150509392505050565b6001601660156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561148b5761148a612e0d565b5b6040519080825280602002602001820160405280156114b95781602001602082028036833780820191505090505b50905030815f815181106114d0576114cf612e3a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611574573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115989190612941565b816001815181106115ac576115ab612e3a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506116123060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610f3f565b5060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611675959493929190612f1e565b5f604051808303815f87803b15801561168c575f80fd5b505af115801561169e573d5f803e3d5ffd5b50505050505f601660156101000a81548160ff02191690831515021790555050565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611724573d5f803e3d5ffd5b5050565b5f806117348584611f0a565b90505f9050611741610804565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141580156117af575061177f610804565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611808575060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561184057503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561187857503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611d20575f600d54036118c5576118c260646118b4600954600d54116118a1576005546118a5565b6007545b86611f8a90919063ffffffff16565b61200190919063ffffffff16565b90505b5f600d5411156118fa576118f760646118e9600c5486611f8a90919063ffffffff16565b61200190919063ffffffff16565b90505b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480156119a3575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156119fc575060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611b2457601154831115611a46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3d90612fc0565b60405180910390fd5b60125483611a538661066a565b611a5d9190612fde565b1115611a9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a959061305b565b60405180910390fd5b611ada6064611acc600954600d5411611ab957600554611abd565b6007545b86611f8a90919063ffffffff16565b61200190919063ffffffff16565b9050600d5f815480929190611aee90613079565b919050555043600e5414611b0b575f600f8190555043600e819055505b82600f5f828254611b1c9190612fde565b925050819055505b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611bac57503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b15611c4857611bb961204a565b600f541080611bca575043600e5414155b611c09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c009061310a565b60405180910390fd5b611c456064611c37600a54600d5411611c2457600654611c28565b6008545b86611f8a90919063ffffffff16565b61200190919063ffffffff16565b90505b5f611c523061066a565b9050601660159054906101000a900460ff16158015611cbd575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b8015611cd3575060168054906101000a900460ff165b8015611ce25750600b54600d54115b15611d1e57601354811115611d0f57611d0e611d0985611d048460145461228e565b61228e565b611454565b5b5f479050611d1c816116c0565b505b505b809150509392505050565b5f811115611e2a57611d838160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611ead90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611e219190612548565b60405180910390a35b611e33836122a6565b158015611e455750611e44846122e0565b5b15611e5e57611e5c84611e56610f38565b84610f3f565b505b50505050565b5f611ea583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506113f2565b905092915050565b5f808284611ebb9190612fde565b905083811015611f00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ef790613172565b60405180910390fd5b8091505092915050565b5f8033905060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611f8257611f6e848285610f3f565b611f78575f611f7a565b825b915050611f84565b505b92915050565b5f808303611f9a575f9050611ffb565b5f8284611fa7919061281c565b9050828482611fb691906131bd565b14611ff6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fed9061325d565b60405180910390fd5b809150505b92915050565b5f61204283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612339565b905092915050565b5f80600267ffffffffffffffff81111561206757612066612e0d565b5b6040519080825280602002602001820160405280156120955781602001602082028036833780820191505090505b50905060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612102573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121269190612941565b815f8151811061213957612138612e3a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050308160018151811061218857612187612e3a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d06ca61f6729a2241af62c0000846040518363ffffffff1660e01b81526004016122279291906132b4565b5f60405180830381865afa158015612241573d5f803e3d5ffd5b505050506040513d5f823e3d601f19601f8201168201806040525081019061226991906133f5565b90508060018151811061227f5761227e612e3a565b5b60200260200101519250505090565b5f81831161229c578261229e565b815b905092915050565b5f61dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614159050919050565b5f60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614159050919050565b5f808311829061237f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612376919061240a565b60405180910390fd5b505f838561238d91906131bd565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6123dc8261239a565b6123e681856123a4565b93506123f68185602086016123b4565b6123ff816123c2565b840191505092915050565b5f6020820190508181035f83015261242281846123d2565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6124648261243b565b9050919050565b6124748161245a565b811461247e575f80fd5b50565b5f8135905061248f8161246b565b92915050565b5f819050919050565b6124a781612495565b81146124b1575f80fd5b50565b5f813590506124c28161249e565b92915050565b5f80604083850312156124de576124dd612433565b5b5f6124eb85828601612481565b92505060206124fc858286016124b4565b9150509250929050565b5f8115159050919050565b61251a81612506565b82525050565b5f6020820190506125335f830184612511565b92915050565b61254281612495565b82525050565b5f60208201905061255b5f830184612539565b92915050565b5f805f6060848603121561257857612577612433565b5b5f61258586828701612481565b935050602061259686828701612481565b92505060406125a7868287016124b4565b9150509250925092565b5f60ff82169050919050565b6125c6816125b1565b82525050565b5f6020820190506125df5f8301846125bd565b92915050565b5f602082840312156125fa576125f9612433565b5b5f61260784828501612481565b91505092915050565b6126198161245a565b82525050565b5f6020820190506126325f830184612610565b92915050565b5f806040838503121561264e5761264d612433565b5b5f61265b85828601612481565b925050602061266c85828601612481565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156126f8578086048111156126d4576126d3612676565b5b60018516156126e35780820291505b80810290506126f1856126a3565b94506126b8565b94509492505050565b5f8261271057600190506127cb565b8161271d575f90506127cb565b8160018114612733576002811461273d5761276c565b60019150506127cb565b60ff84111561274f5761274e612676565b5b8360020a91508482111561276657612765612676565b5b506127cb565b5060208310610133831016604e8410600b84101617156127a15782820a90508381111561279c5761279b612676565b5b6127cb565b6127ae84848460016126af565b925090508184048111156127c5576127c4612676565b5b81810290505b9392505050565b5f6127dc82612495565b91506127e7836125b1565b92506128147fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612701565b905092915050565b5f61282682612495565b915061283183612495565b925082820261283f81612495565b9150828204841483151761285657612855612676565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6128916020836123a4565b915061289c8261285d565b602082019050919050565b5f6020820190508181035f8301526128be81612885565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6128f96017836123a4565b9150612904826128c5565b602082019050919050565b5f6020820190508181035f830152612926816128ed565b9050919050565b5f8151905061293b8161246b565b92915050565b5f6020828403121561295657612955612433565b5b5f6129638482850161292d565b91505092915050565b5f60408201905061297f5f830185612610565b61298c6020830184612610565b9392505050565b5f819050919050565b5f819050919050565b5f6129bf6129ba6129b584612993565b61299c565b612495565b9050919050565b6129cf816129a5565b82525050565b5f60c0820190506129e85f830189612610565b6129f56020830188612539565b612a0260408301876129c6565b612a0f60608301866129c6565b612a1c6080830185612610565b612a2960a0830184612539565b979650505050505050565b5f81519050612a428161249e565b92915050565b5f805f60608486031215612a5f57612a5e612433565b5b5f612a6c86828701612a34565b9350506020612a7d86828701612a34565b9250506040612a8e86828701612a34565b9150509250925092565b5f604082019050612aab5f830185612610565b612ab86020830184612539565b9392505050565b612ac881612506565b8114612ad2575f80fd5b50565b5f81519050612ae381612abf565b92915050565b5f60208284031215612afe57612afd612433565b5b5f612b0b84828501612ad5565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612b6e6024836123a4565b9150612b7982612b14565b604082019050919050565b5f6020820190508181035f830152612b9b81612b62565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612bfc6022836123a4565b9150612c0782612ba2565b604082019050919050565b5f6020820190508181035f830152612c2981612bf0565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612c8a6025836123a4565b9150612c9582612c30565b604082019050919050565b5f6020820190508181035f830152612cb781612c7e565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612d186023836123a4565b9150612d2382612cbe565b604082019050919050565b5f6020820190508181035f830152612d4581612d0c565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612da66029836123a4565b9150612db182612d4c565b604082019050919050565b5f6020820190508181035f830152612dd381612d9a565b9050919050565b5f612de482612495565b9150612def83612495565b9250828203905081811115612e0757612e06612676565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612e998161245a565b82525050565b5f612eaa8383612e90565b60208301905092915050565b5f602082019050919050565b5f612ecc82612e67565b612ed68185612e71565b9350612ee183612e81565b805f5b83811015612f11578151612ef88882612e9f565b9750612f0383612eb6565b925050600181019050612ee4565b5085935050505092915050565b5f60a082019050612f315f830188612539565b612f3e60208301876129c6565b8181036040830152612f508186612ec2565b9050612f5f6060830185612610565b612f6c6080830184612539565b9695505050505050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612faa6019836123a4565b9150612fb582612f76565b602082019050919050565b5f6020820190508181035f830152612fd781612f9e565b9050919050565b5f612fe882612495565b9150612ff383612495565b925082820190508082111561300b5761300a612676565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f613045601a836123a4565b915061305082613011565b602082019050919050565b5f6020820190508181035f83015261307281613039565b9050919050565b5f61308382612495565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036130b5576130b4612676565b5b600182019050919050565b7f4d61782053776170204c696d69740000000000000000000000000000000000005f82015250565b5f6130f4600e836123a4565b91506130ff826130c0565b602082019050919050565b5f6020820190508181035f830152613121816130e8565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61315c601b836123a4565b915061316782613128565b602082019050919050565b5f6020820190508181035f83015261318981613150565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6131c782612495565b91506131d283612495565b9250826131e2576131e1613190565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6132476021836123a4565b9150613252826131ed565b604082019050919050565b5f6020820190508181035f8301526132748161323b565b9050919050565b5f819050919050565b5f61329e6132996132948461327b565b61299c565b612495565b9050919050565b6132ae81613284565b82525050565b5f6040820190506132c75f8301856132a5565b81810360208301526132d98184612ec2565b90509392505050565b5f80fd5b6132ef826123c2565b810181811067ffffffffffffffff8211171561330e5761330d612e0d565b5b80604052505050565b5f61332061242a565b905061332c82826132e6565b919050565b5f67ffffffffffffffff82111561334b5761334a612e0d565b5b602082029050602081019050919050565b5f80fd5b5f61337261336d84613331565b613317565b905080838252602082019050602084028301858111156133955761339461335c565b5b835b818110156133be57806133aa8882612a34565b845260208401935050602081019050613397565b5050509392505050565b5f82601f8301126133dc576133db6132e2565b5b81516133ec848260208601613360565b91505092915050565b5f6020828403121561340a57613409612433565b5b5f82015167ffffffffffffffff81111561342757613426612437565b5b613433848285016133c8565b9150509291505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212205af5fee26be63c598be3760349c499539a7b7466ec4769f57007ee3b4eee1fb364736f6c634300081a0033

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.