ETH Price: $2,517.57 (-0.50%)

Contract

0xf9F4ed2EE87e3Bc8a3cDC7538d1217B100511eA3
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve204532312024-08-04 5:55:2326 days ago1722750923IN
0xf9F4ed2E...100511eA3
0 ETH0.000194414.11991374
Approve204378682024-08-02 2:26:5928 days ago1722565619IN
0xf9F4ed2E...100511eA3
0 ETH0.000176853.75257202
Transfer198217242024-05-08 0:20:11114 days ago1715127611IN
0xf9F4ed2E...100511eA3
0 ETH0.000389725.47754348
Approve185734902023-11-14 23:41:59289 days ago1700005319IN
0xf9F4ed2E...100511eA3
0 ETH0.0007070328.39039645
Approve184922602023-11-03 14:54:35301 days ago1699023275IN
0xf9F4ed2E...100511eA3
0 ETH0.0009442231.44477881
Manual Swap182270222023-09-27 12:13:47338 days ago1695816827IN
0xf9F4ed2E...100511eA3
0 ETH0.0023507915.00746379
Approve182087562023-09-24 22:52:47340 days ago1695595967IN
0xf9F4ed2E...100511eA3
0 ETH0.000447789.48935449
Approve181671422023-09-19 2:59:59346 days ago1695092399IN
0xf9F4ed2E...100511eA3
0 ETH0.00021117.83944045
Approve181387912023-09-15 2:54:59350 days ago1694746499IN
0xf9F4ed2E...100511eA3
0 ETH0.0002960210.99311784
Approve181387772023-09-15 2:52:11350 days ago1694746331IN
0xf9F4ed2E...100511eA3
0 ETH0.000263039.76804849
Approve181387622023-09-15 2:49:11350 days ago1694746151IN
0xf9F4ed2E...100511eA3
0 ETH0.0004988610.65306289
Approve180557512023-09-03 11:44:35362 days ago1693741475IN
0xf9F4ed2E...100511eA3
0 ETH0.0004996410.60186525
Approve180402392023-09-01 7:34:11364 days ago1693553651IN
0xf9F4ed2E...100511eA3
0 ETH0.0006845114.50615353
Approve180402392023-09-01 7:34:11364 days ago1693553651IN
0xf9F4ed2E...100511eA3
0 ETH0.0006845114.50615353
Approve180402392023-09-01 7:34:11364 days ago1693553651IN
0xf9F4ed2E...100511eA3
0 ETH0.0006845114.50615353
Approve180402392023-09-01 7:34:11364 days ago1693553651IN
0xf9F4ed2E...100511eA3
0 ETH0.0006845114.50615353
Approve180402392023-09-01 7:34:11364 days ago1693553651IN
0xf9F4ed2E...100511eA3
0 ETH0.0006845114.50615353
Approve180402392023-09-01 7:34:11364 days ago1693553651IN
0xf9F4ed2E...100511eA3
0 ETH0.0006845114.50615353
Approve180402392023-09-01 7:34:11364 days ago1693553651IN
0xf9F4ed2E...100511eA3
0 ETH0.0006845114.50615353
Approve180402392023-09-01 7:34:11364 days ago1693553651IN
0xf9F4ed2E...100511eA3
0 ETH0.0006845114.50615353
Approve180310002023-08-31 0:32:35365 days ago1693441955IN
0xf9F4ed2E...100511eA3
0 ETH0.0005938112.6
Approve180137932023-08-28 14:39:35368 days ago1693233575IN
0xf9F4ed2E...100511eA3
0 ETH0.0007768528.93965315
Approve180137842023-08-28 14:37:47368 days ago1693233467IN
0xf9F4ed2E...100511eA3
0 ETH0.0007995529.78535811
Approve180135832023-08-28 13:57:11368 days ago1693231031IN
0xf9F4ed2E...100511eA3
0 ETH0.0022112447.1602063
Approve180134412023-08-28 13:28:11368 days ago1693229291IN
0xf9F4ed2E...100511eA3
0 ETH0.0014748231.29400846
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
182270222023-09-27 12:13:47338 days ago1695816827
0xf9F4ed2E...100511eA3
0.04344798 ETH
182270222023-09-27 12:13:47338 days ago1695816827
0xf9F4ed2E...100511eA3
0.00154184 ETH
180557522023-09-03 11:44:47362 days ago1693741487
0xf9F4ed2E...100511eA3
0.00471931 ETH
180137362023-08-28 14:27:59368 days ago1693232879
0xf9F4ed2E...100511eA3
0.00364881 ETH
180097412023-08-28 1:03:59368 days ago1693184639
0xf9F4ed2E...100511eA3
0.00325056 ETH
180093982023-08-27 23:54:23368 days ago1693180463
0xf9F4ed2E...100511eA3
0.00398949 ETH
180092052023-08-27 23:15:11368 days ago1693178111
0xf9F4ed2E...100511eA3
0.00756418 ETH
180091422023-08-27 23:02:23368 days ago1693177343
0xf9F4ed2E...100511eA3
0.00822731 ETH
180080732023-08-27 19:26:35369 days ago1693164395
0xf9F4ed2E...100511eA3
0.00202695 ETH
180075432023-08-27 17:39:59369 days ago1693157999
0xf9F4ed2E...100511eA3
0.00360078 ETH
180073892023-08-27 17:08:59369 days ago1693156139
0xf9F4ed2E...100511eA3
0.00225912 ETH
180073182023-08-27 16:54:23369 days ago1693155263
0xf9F4ed2E...100511eA3
0.00261959 ETH
180072422023-08-27 16:38:59369 days ago1693154339
0xf9F4ed2E...100511eA3
0.05282775 ETH
180072422023-08-27 16:38:59369 days ago1693154339
0xf9F4ed2E...100511eA3
0.00412471 ETH
180071982023-08-27 16:30:11369 days ago1693153811
0xf9F4ed2E...100511eA3
0.00398982 ETH
180071862023-08-27 16:27:47369 days ago1693153667
0xf9F4ed2E...100511eA3
0.00426813 ETH
180071452023-08-27 16:19:23369 days ago1693153163
0xf9F4ed2E...100511eA3
0.00526622 ETH
180071372023-08-27 16:17:47369 days ago1693153067
0xf9F4ed2E...100511eA3
0.00605096 ETH
180071342023-08-27 16:17:11369 days ago1693153031
0xf9F4ed2E...100511eA3
0.00714125 ETH
180071212023-08-27 16:14:23369 days ago1693152863
0xf9F4ed2E...100511eA3
0.00723906 ETH
180070682023-08-27 16:03:47369 days ago1693152227
0xf9F4ed2E...100511eA3
0.01474757 ETH
180070192023-08-27 15:53:59369 days ago1693151639
0xf9F4ed2E...100511eA3
0.05147321 ETH
180070192023-08-27 15:53:59369 days ago1693151639
0xf9F4ed2E...100511eA3
0.01122118 ETH
180070002023-08-27 15:50:11369 days ago1693151411
0xf9F4ed2E...100511eA3
0.00695085 ETH
180069912023-08-27 15:48:11369 days ago1693151291
0xf9F4ed2E...100511eA3
0.0073445 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
AltDetectorBot

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
File 1 of 1 : AltBot.sol
// SPDX-License-Identifier: MIT


/** 
    TG : https://t.me/altdetectorbot

    X : https://x.com/altdetector

    WEB: https://altdetectorbot.vip
**/



pragma solidity 0.8.20;

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

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }

}

contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

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

}

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

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

contract AltDetectorBot  is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = true;
    address payable private _taxWallet;

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

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1_000_000_000 * 10**_decimals;
    string private constant _name = unicode"Alt Detector Bot";
    string private constant _symbol = unicode"ALTBOT";

    uint256 public _maxTxAmount =  2 * (_tTotal/100);
    uint256 public _maxWalletSize =  2 * (_tTotal/100);
    uint256 public _taxSwapThreshold=  1 * (_tTotal/1000);
    uint256 public _maxTaxSwap=  1 * (_tTotal/100);

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {
            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);

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

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

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

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

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


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

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

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

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

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

    receive() external payable {}

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

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swap","type":"bool"}],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600160055f6101000a81548160ff02191690831515021790555060146006556014600755600360085560036009556014600a556014600b556014600c555f600d5560646009600a62000057919062000681565b633b9aca00620000689190620006d1565b62000074919062000748565b6002620000829190620006d1565b600e5560646009600a62000097919062000681565b633b9aca00620000a89190620006d1565b620000b4919062000748565b6002620000c29190620006d1565b600f556103e86009600a620000d8919062000681565b633b9aca00620000e99190620006d1565b620000f5919062000748565b6001620001039190620006d1565b60105560646009600a62000118919062000681565b633b9aca00620001299190620006d1565b62000135919062000748565b6001620001439190620006d1565b6011555f601360156101000a81548160ff0219169083151502179055505f601360166101000a81548160ff02191690831515021790555034801562000186575f80fd5b505f62000198620004c160201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35062000244620004c160201b60201c565b600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a62000294919062000681565b633b9aca00620002a59190620006d1565b60015f620002b8620004c160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f6200030a620004c860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555062000435620004c160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a62000493919062000681565b633b9aca00620004a49190620006d1565b604051620004b3919062000790565b60405180910390a3620007ab565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156200057957808604811115620005515762000550620004ef565b5b6001851615620005615780820291505b808102905062000571856200051c565b945062000531565b94509492505050565b5f8262000593576001905062000665565b81620005a2575f905062000665565b8160018114620005bb5760028114620005c657620005fc565b600191505062000665565b60ff841115620005db57620005da620004ef565b5b8360020a915084821115620005f557620005f4620004ef565b5b5062000665565b5060208310610133831016604e8410600b8410161715620006365782820a90508381111562000630576200062f620004ef565b5b62000665565b62000645848484600162000528565b925090508184048111156200065f576200065e620004ef565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6200068d826200066c565b91506200069a8362000675565b9250620006c97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000582565b905092915050565b5f620006dd826200066c565b9150620006ea836200066c565b9250828202620006fa816200066c565b91508282048414831517620007145762000713620004ef565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f62000754826200066c565b915062000761836200066c565b9250826200077457620007736200071b565b5b828204905092915050565b6200078a816200066c565b82525050565b5f602082019050620007a55f8301846200077f565b92915050565b612fb280620007b95f395ff3fe608060405260043610610117575f3560e01c8063751039fc1161009f578063a9059cbb11610063578063a9059cbb1461037a578063bf474bed146103b6578063c876d0b9146103e0578063c9567bf91461040a578063dd62ed3e146104205761011e565b8063751039fc146102bc5780637d1db4a5146102d25780638da5cb5b146102fc5780638f9a55c01461032657806395d89b41146103505761011e565b806323b872dd116100e657806323b872dd146101dc578063313ce5671461021857806344118d701461024257806370a082311461026a578063715018a6146102a65761011e565b806306fdde0314610122578063095ea7b31461014c5780630faee56f1461018857806318160ddd146101b25761011e565b3661011e57005b5f80fd5b34801561012d575f80fd5b5061013661045c565b6040516101439190612065565b60405180910390f35b348015610157575f80fd5b50610172600480360381019061016d9190612116565b610499565b60405161017f919061216e565b60405180910390f35b348015610193575f80fd5b5061019c6104b6565b6040516101a99190612196565b60405180910390f35b3480156101bd575f80fd5b506101c66104bc565b6040516101d39190612196565b60405180910390f35b3480156101e7575f80fd5b5061020260048036038101906101fd91906121af565b6104df565b60405161020f919061216e565b60405180910390f35b348015610223575f80fd5b5061022c6105b3565b604051610239919061221a565b60405180910390f35b34801561024d575f80fd5b506102686004803603810190610263919061225d565b6105bb565b005b348015610275575f80fd5b50610290600480360381019061028b9190612288565b61065b565b60405161029d9190612196565b60405180910390f35b3480156102b1575f80fd5b506102ba6106a1565b005b3480156102c7575f80fd5b506102d06107ef565b005b3480156102dd575f80fd5b506102e6610937565b6040516102f39190612196565b60405180910390f35b348015610307575f80fd5b5061031061093d565b60405161031d91906122c2565b60405180910390f35b348015610331575f80fd5b5061033a610964565b6040516103479190612196565b60405180910390f35b34801561035b575f80fd5b5061036461096a565b6040516103719190612065565b60405180910390f35b348015610385575f80fd5b506103a0600480360381019061039b9190612116565b6109a7565b6040516103ad919061216e565b60405180910390f35b3480156103c1575f80fd5b506103ca6109c4565b6040516103d79190612196565b60405180910390f35b3480156103eb575f80fd5b506103f46109ca565b604051610401919061216e565b60405180910390f35b348015610415575f80fd5b5061041e6109dc565b005b34801561042b575f80fd5b50610446600480360381019061044191906122db565b610efe565b6040516104539190612196565b60405180910390f35b60606040518060400160405280601081526020017f416c74204465746563746f7220426f7400000000000000000000000000000000815250905090565b5f6104ac6104a5610f80565b8484610f87565b6001905092915050565b60115481565b5f6009600a6104cb9190612475565b633b9aca006104da91906124bf565b905090565b5f6104eb84848461114a565b6105a8846104f7610f80565b6105a385604051806060016040528060288152602001612f556028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61055a610f80565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611ac69092919063ffffffff16565b610f87565b600190509392505050565b5f6009905090565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166105fc610f80565b73ffffffffffffffffffffffffffffffffffffffff161461061b575f80fd5b8015610641575f61062b3061065b565b90505f81111561063f5761063e81611b28565b5b505b5f4790505f8111156106575761065681611d93565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6106a9610f80565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610735576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072c9061254a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6107f7610f80565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610883576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087a9061254a565b60405180910390fd5b6009600a6108919190612475565b633b9aca006108a091906124bf565b600e819055506009600a6108b49190612475565b633b9aca006108c391906124bf565b600f819055505f60055f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a6109119190612475565b633b9aca0061092091906124bf565b60405161092d9190612196565b60405180910390a1565b600e5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600681526020017f414c54424f540000000000000000000000000000000000000000000000000000815250905090565b5f6109ba6109b3610f80565b848461114a565b6001905092915050565b60105481565b60055f9054906101000a900460ff1681565b6109e4610f80565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a679061254a565b60405180910390fd5b601360149054906101000a900460ff1615610ac0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab7906125b2565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610b5c3060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610b489190612475565b633b9aca00610b5791906124bf565b610f87565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bc6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bea91906125e4565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c70573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c9491906125e4565b6040518363ffffffff1660e01b8152600401610cb192919061260f565b6020604051808303815f875af1158015610ccd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cf191906125e4565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610d783061065b565b5f80610d8261093d565b426040518863ffffffff1660e01b8152600401610da496959493929190612678565b60606040518083038185885af1158015610dc0573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610de591906126eb565b50505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610e8592919061273b565b6020604051808303815f875af1158015610ea1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ec59190612776565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610ff5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fec90612811565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611063576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105a9061289f565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161113d9190612196565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111af9061292d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611226576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121d906129bb565b60405180910390fd5b5f8111611268576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125f90612a49565b60405180910390fd5b5f61127161093d565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156112df57506112af61093d565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611816576113206064611312600a54600d54116112ff57600654611303565b6008545b85611dfc90919063ffffffff16565b611e7390919063ffffffff16565b905060055f9054906101000a900460ff16156114a85760125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156113e0575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156114a7574360045f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410611464576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145b90612afd565b60405180910390fd5b4360045f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611551575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156115a4575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561165e57600e548211156115ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e590612b65565b60405180910390fd5b600f54826115fb8561065b565b6116059190612b83565b1115611646576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163d90612c00565b60405180910390fd5b600d5f81548092919061165890612c1e565b91905055505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156116e657503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561172a576117276064611719600b54600d54116117065760075461170a565b6009545b85611dfc90919063ffffffff16565b611e7390919063ffffffff16565b90505b5f6117343061065b565b9050601360159054906101000a900460ff1615801561179f575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156117b75750601360169054906101000a900460ff165b80156117c4575060105481115b80156117d35750600c54600d54115b15611814576117f56117f0846117eb84601154611ebc565b611ebc565b611b28565b5f47905066b1a2bc2ec500008111156118125761181147611d93565b5b505b505b5f8111156119155761186e8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611ed490919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161190c9190612196565b60405180910390a35b6119658260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f3190919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611a086119bc8284611f3190919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611ed490919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611aab8486611f3190919063ffffffff16565b604051611ab89190612196565b60405180910390a350505050565b5f838311158290611b0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b049190612065565b60405180910390fd5b505f8385611b1b9190612c65565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611b5f57611b5e612c98565b5b604051908082528060200260200182016040528015611b8d5781602001602082028036833780820191505090505b50905030815f81518110611ba457611ba3612cc5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c48573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c6c91906125e4565b81600181518110611c8057611c7f612cc5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611ce63060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610f87565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611d48959493929190612da9565b5f604051808303815f87803b158015611d5f575f80fd5b505af1158015611d71573d5f803e3d5ffd5b50505050505f601360156101000a81548160ff02191690831515021790555050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611df8573d5f803e3d5ffd5b5050565b5f808303611e0c575f9050611e6d565b5f8284611e1991906124bf565b9050828482611e289190612e2e565b14611e68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5f90612ece565b60405180910390fd5b809150505b92915050565b5f611eb483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611f7a565b905092915050565b5f818311611eca5782611ecc565b815b905092915050565b5f808284611ee29190612b83565b905083811015611f27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1e90612f36565b60405180910390fd5b8091505092915050565b5f611f7283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ac6565b905092915050565b5f8083118290611fc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb79190612065565b60405180910390fd5b505f8385611fce9190612e2e565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612012578082015181840152602081019050611ff7565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61203782611fdb565b6120418185611fe5565b9350612051818560208601611ff5565b61205a8161201d565b840191505092915050565b5f6020820190508181035f83015261207d818461202d565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6120b282612089565b9050919050565b6120c2816120a8565b81146120cc575f80fd5b50565b5f813590506120dd816120b9565b92915050565b5f819050919050565b6120f5816120e3565b81146120ff575f80fd5b50565b5f81359050612110816120ec565b92915050565b5f806040838503121561212c5761212b612085565b5b5f612139858286016120cf565b925050602061214a85828601612102565b9150509250929050565b5f8115159050919050565b61216881612154565b82525050565b5f6020820190506121815f83018461215f565b92915050565b612190816120e3565b82525050565b5f6020820190506121a95f830184612187565b92915050565b5f805f606084860312156121c6576121c5612085565b5b5f6121d3868287016120cf565b93505060206121e4868287016120cf565b92505060406121f586828701612102565b9150509250925092565b5f60ff82169050919050565b612214816121ff565b82525050565b5f60208201905061222d5f83018461220b565b92915050565b61223c81612154565b8114612246575f80fd5b50565b5f8135905061225781612233565b92915050565b5f6020828403121561227257612271612085565b5b5f61227f84828501612249565b91505092915050565b5f6020828403121561229d5761229c612085565b5b5f6122aa848285016120cf565b91505092915050565b6122bc816120a8565b82525050565b5f6020820190506122d55f8301846122b3565b92915050565b5f80604083850312156122f1576122f0612085565b5b5f6122fe858286016120cf565b925050602061230f858286016120cf565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561239b5780860481111561237757612376612319565b5b60018516156123865780820291505b808102905061239485612346565b945061235b565b94509492505050565b5f826123b3576001905061246e565b816123c0575f905061246e565b81600181146123d657600281146123e05761240f565b600191505061246e565b60ff8411156123f2576123f1612319565b5b8360020a91508482111561240957612408612319565b5b5061246e565b5060208310610133831016604e8410600b84101617156124445782820a90508381111561243f5761243e612319565b5b61246e565b6124518484846001612352565b9250905081840481111561246857612467612319565b5b81810290505b9392505050565b5f61247f826120e3565b915061248a836121ff565b92506124b77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846123a4565b905092915050565b5f6124c9826120e3565b91506124d4836120e3565b92508282026124e2816120e3565b915082820484148315176124f9576124f8612319565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612534602083611fe5565b915061253f82612500565b602082019050919050565b5f6020820190508181035f83015261256181612528565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f61259c601783611fe5565b91506125a782612568565b602082019050919050565b5f6020820190508181035f8301526125c981612590565b9050919050565b5f815190506125de816120b9565b92915050565b5f602082840312156125f9576125f8612085565b5b5f612606848285016125d0565b91505092915050565b5f6040820190506126225f8301856122b3565b61262f60208301846122b3565b9392505050565b5f819050919050565b5f819050919050565b5f61266261265d61265884612636565b61263f565b6120e3565b9050919050565b61267281612648565b82525050565b5f60c08201905061268b5f8301896122b3565b6126986020830188612187565b6126a56040830187612669565b6126b26060830186612669565b6126bf60808301856122b3565b6126cc60a0830184612187565b979650505050505050565b5f815190506126e5816120ec565b92915050565b5f805f6060848603121561270257612701612085565b5b5f61270f868287016126d7565b9350506020612720868287016126d7565b9250506040612731868287016126d7565b9150509250925092565b5f60408201905061274e5f8301856122b3565b61275b6020830184612187565b9392505050565b5f8151905061277081612233565b92915050565b5f6020828403121561278b5761278a612085565b5b5f61279884828501612762565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6127fb602483611fe5565b9150612806826127a1565b604082019050919050565b5f6020820190508181035f830152612828816127ef565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612889602283611fe5565b91506128948261282f565b604082019050919050565b5f6020820190508181035f8301526128b68161287d565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612917602583611fe5565b9150612922826128bd565b604082019050919050565b5f6020820190508181035f8301526129448161290b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6129a5602383611fe5565b91506129b08261294b565b604082019050919050565b5f6020820190508181035f8301526129d281612999565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612a33602983611fe5565b9150612a3e826129d9565b604082019050919050565b5f6020820190508181035f830152612a6081612a27565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c5f8201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b5f612ae7604983611fe5565b9150612af282612a67565b606082019050919050565b5f6020820190508181035f830152612b1481612adb565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612b4f601983611fe5565b9150612b5a82612b1b565b602082019050919050565b5f6020820190508181035f830152612b7c81612b43565b9050919050565b5f612b8d826120e3565b9150612b98836120e3565b9250828201905080821115612bb057612baf612319565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612bea601a83611fe5565b9150612bf582612bb6565b602082019050919050565b5f6020820190508181035f830152612c1781612bde565b9050919050565b5f612c28826120e3565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612c5a57612c59612319565b5b600182019050919050565b5f612c6f826120e3565b9150612c7a836120e3565b9250828203905081811115612c9257612c91612319565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612d24816120a8565b82525050565b5f612d358383612d1b565b60208301905092915050565b5f602082019050919050565b5f612d5782612cf2565b612d618185612cfc565b9350612d6c83612d0c565b805f5b83811015612d9c578151612d838882612d2a565b9750612d8e83612d41565b925050600181019050612d6f565b5085935050505092915050565b5f60a082019050612dbc5f830188612187565b612dc96020830187612669565b8181036040830152612ddb8186612d4d565b9050612dea60608301856122b3565b612df76080830184612187565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612e38826120e3565b9150612e43836120e3565b925082612e5357612e52612e01565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612eb8602183611fe5565b9150612ec382612e5e565b604082019050919050565b5f6020820190508181035f830152612ee581612eac565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612f20601b83611fe5565b9150612f2b82612eec565b602082019050919050565b5f6020820190508181035f830152612f4d81612f14565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f5a1e8735b03275a1cd71dad26b9db9ed508d050b7bf62e94bdd7ac5049068ef64736f6c63430008140033

Deployed Bytecode

0x608060405260043610610117575f3560e01c8063751039fc1161009f578063a9059cbb11610063578063a9059cbb1461037a578063bf474bed146103b6578063c876d0b9146103e0578063c9567bf91461040a578063dd62ed3e146104205761011e565b8063751039fc146102bc5780637d1db4a5146102d25780638da5cb5b146102fc5780638f9a55c01461032657806395d89b41146103505761011e565b806323b872dd116100e657806323b872dd146101dc578063313ce5671461021857806344118d701461024257806370a082311461026a578063715018a6146102a65761011e565b806306fdde0314610122578063095ea7b31461014c5780630faee56f1461018857806318160ddd146101b25761011e565b3661011e57005b5f80fd5b34801561012d575f80fd5b5061013661045c565b6040516101439190612065565b60405180910390f35b348015610157575f80fd5b50610172600480360381019061016d9190612116565b610499565b60405161017f919061216e565b60405180910390f35b348015610193575f80fd5b5061019c6104b6565b6040516101a99190612196565b60405180910390f35b3480156101bd575f80fd5b506101c66104bc565b6040516101d39190612196565b60405180910390f35b3480156101e7575f80fd5b5061020260048036038101906101fd91906121af565b6104df565b60405161020f919061216e565b60405180910390f35b348015610223575f80fd5b5061022c6105b3565b604051610239919061221a565b60405180910390f35b34801561024d575f80fd5b506102686004803603810190610263919061225d565b6105bb565b005b348015610275575f80fd5b50610290600480360381019061028b9190612288565b61065b565b60405161029d9190612196565b60405180910390f35b3480156102b1575f80fd5b506102ba6106a1565b005b3480156102c7575f80fd5b506102d06107ef565b005b3480156102dd575f80fd5b506102e6610937565b6040516102f39190612196565b60405180910390f35b348015610307575f80fd5b5061031061093d565b60405161031d91906122c2565b60405180910390f35b348015610331575f80fd5b5061033a610964565b6040516103479190612196565b60405180910390f35b34801561035b575f80fd5b5061036461096a565b6040516103719190612065565b60405180910390f35b348015610385575f80fd5b506103a0600480360381019061039b9190612116565b6109a7565b6040516103ad919061216e565b60405180910390f35b3480156103c1575f80fd5b506103ca6109c4565b6040516103d79190612196565b60405180910390f35b3480156103eb575f80fd5b506103f46109ca565b604051610401919061216e565b60405180910390f35b348015610415575f80fd5b5061041e6109dc565b005b34801561042b575f80fd5b50610446600480360381019061044191906122db565b610efe565b6040516104539190612196565b60405180910390f35b60606040518060400160405280601081526020017f416c74204465746563746f7220426f7400000000000000000000000000000000815250905090565b5f6104ac6104a5610f80565b8484610f87565b6001905092915050565b60115481565b5f6009600a6104cb9190612475565b633b9aca006104da91906124bf565b905090565b5f6104eb84848461114a565b6105a8846104f7610f80565b6105a385604051806060016040528060288152602001612f556028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61055a610f80565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611ac69092919063ffffffff16565b610f87565b600190509392505050565b5f6009905090565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166105fc610f80565b73ffffffffffffffffffffffffffffffffffffffff161461061b575f80fd5b8015610641575f61062b3061065b565b90505f81111561063f5761063e81611b28565b5b505b5f4790505f8111156106575761065681611d93565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6106a9610f80565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610735576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072c9061254a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6107f7610f80565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610883576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087a9061254a565b60405180910390fd5b6009600a6108919190612475565b633b9aca006108a091906124bf565b600e819055506009600a6108b49190612475565b633b9aca006108c391906124bf565b600f819055505f60055f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a6109119190612475565b633b9aca0061092091906124bf565b60405161092d9190612196565b60405180910390a1565b600e5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600681526020017f414c54424f540000000000000000000000000000000000000000000000000000815250905090565b5f6109ba6109b3610f80565b848461114a565b6001905092915050565b60105481565b60055f9054906101000a900460ff1681565b6109e4610f80565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a679061254a565b60405180910390fd5b601360149054906101000a900460ff1615610ac0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab7906125b2565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610b5c3060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610b489190612475565b633b9aca00610b5791906124bf565b610f87565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bc6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bea91906125e4565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c70573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c9491906125e4565b6040518363ffffffff1660e01b8152600401610cb192919061260f565b6020604051808303815f875af1158015610ccd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cf191906125e4565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610d783061065b565b5f80610d8261093d565b426040518863ffffffff1660e01b8152600401610da496959493929190612678565b60606040518083038185885af1158015610dc0573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610de591906126eb565b50505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610e8592919061273b565b6020604051808303815f875af1158015610ea1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ec59190612776565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610ff5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fec90612811565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611063576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105a9061289f565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161113d9190612196565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111af9061292d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611226576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121d906129bb565b60405180910390fd5b5f8111611268576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125f90612a49565b60405180910390fd5b5f61127161093d565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156112df57506112af61093d565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611816576113206064611312600a54600d54116112ff57600654611303565b6008545b85611dfc90919063ffffffff16565b611e7390919063ffffffff16565b905060055f9054906101000a900460ff16156114a85760125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156113e0575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156114a7574360045f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410611464576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145b90612afd565b60405180910390fd5b4360045f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611551575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156115a4575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561165e57600e548211156115ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e590612b65565b60405180910390fd5b600f54826115fb8561065b565b6116059190612b83565b1115611646576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163d90612c00565b60405180910390fd5b600d5f81548092919061165890612c1e565b91905055505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156116e657503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561172a576117276064611719600b54600d54116117065760075461170a565b6009545b85611dfc90919063ffffffff16565b611e7390919063ffffffff16565b90505b5f6117343061065b565b9050601360159054906101000a900460ff1615801561179f575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156117b75750601360169054906101000a900460ff165b80156117c4575060105481115b80156117d35750600c54600d54115b15611814576117f56117f0846117eb84601154611ebc565b611ebc565b611b28565b5f47905066b1a2bc2ec500008111156118125761181147611d93565b5b505b505b5f8111156119155761186e8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611ed490919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161190c9190612196565b60405180910390a35b6119658260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f3190919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611a086119bc8284611f3190919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611ed490919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611aab8486611f3190919063ffffffff16565b604051611ab89190612196565b60405180910390a350505050565b5f838311158290611b0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b049190612065565b60405180910390fd5b505f8385611b1b9190612c65565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611b5f57611b5e612c98565b5b604051908082528060200260200182016040528015611b8d5781602001602082028036833780820191505090505b50905030815f81518110611ba457611ba3612cc5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c48573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c6c91906125e4565b81600181518110611c8057611c7f612cc5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611ce63060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610f87565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611d48959493929190612da9565b5f604051808303815f87803b158015611d5f575f80fd5b505af1158015611d71573d5f803e3d5ffd5b50505050505f601360156101000a81548160ff02191690831515021790555050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611df8573d5f803e3d5ffd5b5050565b5f808303611e0c575f9050611e6d565b5f8284611e1991906124bf565b9050828482611e289190612e2e565b14611e68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5f90612ece565b60405180910390fd5b809150505b92915050565b5f611eb483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611f7a565b905092915050565b5f818311611eca5782611ecc565b815b905092915050565b5f808284611ee29190612b83565b905083811015611f27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1e90612f36565b60405180910390fd5b8091505092915050565b5f611f7283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ac6565b905092915050565b5f8083118290611fc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb79190612065565b60405180910390fd5b505f8385611fce9190612e2e565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612012578082015181840152602081019050611ff7565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61203782611fdb565b6120418185611fe5565b9350612051818560208601611ff5565b61205a8161201d565b840191505092915050565b5f6020820190508181035f83015261207d818461202d565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6120b282612089565b9050919050565b6120c2816120a8565b81146120cc575f80fd5b50565b5f813590506120dd816120b9565b92915050565b5f819050919050565b6120f5816120e3565b81146120ff575f80fd5b50565b5f81359050612110816120ec565b92915050565b5f806040838503121561212c5761212b612085565b5b5f612139858286016120cf565b925050602061214a85828601612102565b9150509250929050565b5f8115159050919050565b61216881612154565b82525050565b5f6020820190506121815f83018461215f565b92915050565b612190816120e3565b82525050565b5f6020820190506121a95f830184612187565b92915050565b5f805f606084860312156121c6576121c5612085565b5b5f6121d3868287016120cf565b93505060206121e4868287016120cf565b92505060406121f586828701612102565b9150509250925092565b5f60ff82169050919050565b612214816121ff565b82525050565b5f60208201905061222d5f83018461220b565b92915050565b61223c81612154565b8114612246575f80fd5b50565b5f8135905061225781612233565b92915050565b5f6020828403121561227257612271612085565b5b5f61227f84828501612249565b91505092915050565b5f6020828403121561229d5761229c612085565b5b5f6122aa848285016120cf565b91505092915050565b6122bc816120a8565b82525050565b5f6020820190506122d55f8301846122b3565b92915050565b5f80604083850312156122f1576122f0612085565b5b5f6122fe858286016120cf565b925050602061230f858286016120cf565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561239b5780860481111561237757612376612319565b5b60018516156123865780820291505b808102905061239485612346565b945061235b565b94509492505050565b5f826123b3576001905061246e565b816123c0575f905061246e565b81600181146123d657600281146123e05761240f565b600191505061246e565b60ff8411156123f2576123f1612319565b5b8360020a91508482111561240957612408612319565b5b5061246e565b5060208310610133831016604e8410600b84101617156124445782820a90508381111561243f5761243e612319565b5b61246e565b6124518484846001612352565b9250905081840481111561246857612467612319565b5b81810290505b9392505050565b5f61247f826120e3565b915061248a836121ff565b92506124b77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846123a4565b905092915050565b5f6124c9826120e3565b91506124d4836120e3565b92508282026124e2816120e3565b915082820484148315176124f9576124f8612319565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612534602083611fe5565b915061253f82612500565b602082019050919050565b5f6020820190508181035f83015261256181612528565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f61259c601783611fe5565b91506125a782612568565b602082019050919050565b5f6020820190508181035f8301526125c981612590565b9050919050565b5f815190506125de816120b9565b92915050565b5f602082840312156125f9576125f8612085565b5b5f612606848285016125d0565b91505092915050565b5f6040820190506126225f8301856122b3565b61262f60208301846122b3565b9392505050565b5f819050919050565b5f819050919050565b5f61266261265d61265884612636565b61263f565b6120e3565b9050919050565b61267281612648565b82525050565b5f60c08201905061268b5f8301896122b3565b6126986020830188612187565b6126a56040830187612669565b6126b26060830186612669565b6126bf60808301856122b3565b6126cc60a0830184612187565b979650505050505050565b5f815190506126e5816120ec565b92915050565b5f805f6060848603121561270257612701612085565b5b5f61270f868287016126d7565b9350506020612720868287016126d7565b9250506040612731868287016126d7565b9150509250925092565b5f60408201905061274e5f8301856122b3565b61275b6020830184612187565b9392505050565b5f8151905061277081612233565b92915050565b5f6020828403121561278b5761278a612085565b5b5f61279884828501612762565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6127fb602483611fe5565b9150612806826127a1565b604082019050919050565b5f6020820190508181035f830152612828816127ef565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612889602283611fe5565b91506128948261282f565b604082019050919050565b5f6020820190508181035f8301526128b68161287d565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612917602583611fe5565b9150612922826128bd565b604082019050919050565b5f6020820190508181035f8301526129448161290b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6129a5602383611fe5565b91506129b08261294b565b604082019050919050565b5f6020820190508181035f8301526129d281612999565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612a33602983611fe5565b9150612a3e826129d9565b604082019050919050565b5f6020820190508181035f830152612a6081612a27565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c5f8201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b5f612ae7604983611fe5565b9150612af282612a67565b606082019050919050565b5f6020820190508181035f830152612b1481612adb565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612b4f601983611fe5565b9150612b5a82612b1b565b602082019050919050565b5f6020820190508181035f830152612b7c81612b43565b9050919050565b5f612b8d826120e3565b9150612b98836120e3565b9250828201905080821115612bb057612baf612319565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612bea601a83611fe5565b9150612bf582612bb6565b602082019050919050565b5f6020820190508181035f830152612c1781612bde565b9050919050565b5f612c28826120e3565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612c5a57612c59612319565b5b600182019050919050565b5f612c6f826120e3565b9150612c7a836120e3565b9250828203905081811115612c9257612c91612319565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612d24816120a8565b82525050565b5f612d358383612d1b565b60208301905092915050565b5f602082019050919050565b5f612d5782612cf2565b612d618185612cfc565b9350612d6c83612d0c565b805f5b83811015612d9c578151612d838882612d2a565b9750612d8e83612d41565b925050600181019050612d6f565b5085935050505092915050565b5f60a082019050612dbc5f830188612187565b612dc96020830187612669565b8181036040830152612ddb8186612d4d565b9050612dea60608301856122b3565b612df76080830184612187565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612e38826120e3565b9150612e43836120e3565b925082612e5357612e52612e01565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612eb8602183611fe5565b9150612ec382612e5e565b604082019050919050565b5f6020820190508181035f830152612ee581612eac565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612f20601b83611fe5565b9150612f2b82612eec565b602082019050919050565b5f6020820190508181035f830152612f4d81612f14565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f5a1e8735b03275a1cd71dad26b9db9ed508d050b7bf62e94bdd7ac5049068ef64736f6c63430008140033

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.