ETH Price: $2,132.06 (+5.29%)
 

Overview

ETH Balance

0.006492841041462808 ETH

Eth Value

$13.84 (@ $2,132.06/ETH)

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve246823512026-03-18 5:43:2314 days ago1773812603IN
0xf9F4ed2E...100511eA3
0 ETH0.000002070.04405539
Approve246823032026-03-18 5:33:4714 days ago1773812027IN
0xf9F4ed2E...100511eA3
0 ETH0.000002170.04620625
Approve246821302026-03-18 4:58:4714 days ago1773809927IN
0xf9F4ed2E...100511eA3
0 ETH0.000001630.03473635
Approve246820802026-03-18 4:48:4714 days ago1773809327IN
0xf9F4ed2E...100511eA3
0 ETH0.000001970.04196135
Approve246820792026-03-18 4:48:3514 days ago1773809315IN
0xf9F4ed2E...100511eA3
0 ETH0.000001980.04216048
Approve246820732026-03-18 4:47:2314 days ago1773809243IN
0xf9F4ed2E...100511eA3
0 ETH0.000001970.04190979
Approve246820672026-03-18 4:46:1114 days ago1773809171IN
0xf9F4ed2E...100511eA3
0 ETH0.000001880.04003867
Approve221642902025-03-31 3:44:47366 days ago1743392687IN
0xf9F4ed2E...100511eA3
0 ETH0.000026320.55867775
Approve219064402025-02-23 3:48:11402 days ago1740282491IN
0xf9F4ed2E...100511eA3
0 ETH0.000056381.20254545
Approve204532312024-08-04 5:55:23605 days ago1722750923IN
0xf9F4ed2E...100511eA3
0 ETH0.000194414.11991374
Approve204378682024-08-02 2:26:59607 days ago1722565619IN
0xf9F4ed2E...100511eA3
0 ETH0.000176853.75257202
Transfer198217242024-05-08 0:20:11693 days ago1715127611IN
0xf9F4ed2E...100511eA3
0 ETH0.000389725.47754348
Approve185734902023-11-14 23:41:59868 days ago1700005319IN
0xf9F4ed2E...100511eA3
0 ETH0.0007070328.39039645
Approve184922602023-11-03 14:54:35879 days ago1699023275IN
0xf9F4ed2E...100511eA3
0 ETH0.0009442231.44477881
Manual Swap182270222023-09-27 12:13:47916 days ago1695816827IN
0xf9F4ed2E...100511eA3
0 ETH0.0023507915.00746379
Approve182087562023-09-24 22:52:47919 days ago1695595967IN
0xf9F4ed2E...100511eA3
0 ETH0.000447789.48935449
Approve181671422023-09-19 2:59:59925 days ago1695092399IN
0xf9F4ed2E...100511eA3
0 ETH0.00021117.83944045
Approve181387912023-09-15 2:54:59929 days ago1694746499IN
0xf9F4ed2E...100511eA3
0 ETH0.0002960210.99311784
Approve181387772023-09-15 2:52:11929 days ago1694746331IN
0xf9F4ed2E...100511eA3
0 ETH0.000263039.76804849
Approve181387622023-09-15 2:49:11929 days ago1694746151IN
0xf9F4ed2E...100511eA3
0 ETH0.0004988610.65306289
Approve180557512023-09-03 11:44:35940 days ago1693741475IN
0xf9F4ed2E...100511eA3
0 ETH0.0004996410.60186525
Approve180402392023-09-01 7:34:11943 days ago1693553651IN
0xf9F4ed2E...100511eA3
0 ETH0.0006845114.50615353
Approve180402392023-09-01 7:34:11943 days ago1693553651IN
0xf9F4ed2E...100511eA3
0 ETH0.0006845114.50615353
Approve180402392023-09-01 7:34:11943 days ago1693553651IN
0xf9F4ed2E...100511eA3
0 ETH0.0006845114.50615353
Approve180402392023-09-01 7:34:11943 days ago1693553651IN
0xf9F4ed2E...100511eA3
0 ETH0.0006845114.50615353
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer246823722026-03-18 5:47:3514 days ago1773812855
0xf9F4ed2E...100511eA3
0.00005934 ETH
Transfer246823042026-03-18 5:33:5914 days ago1773812039
0xf9F4ed2E...100511eA3
0.00009343 ETH
Transfer246821312026-03-18 4:58:5914 days ago1773809939
0xf9F4ed2E...100511eA3
0.00014995 ETH
Transfer246821272026-03-18 4:58:1114 days ago1773809891
0xf9F4ed2E...100511eA3
0.00015601 ETH
Transfer246820802026-03-18 4:48:4714 days ago1773809327
0xf9F4ed2E...100511eA3
0.00018952 ETH
Transfer246820742026-03-18 4:47:3514 days ago1773809255
0xf9F4ed2E...100511eA3
0.00040976 ETH
Transfer246820682026-03-18 4:46:2314 days ago1773809183
0xf9F4ed2E...100511eA3
0.00051202 ETH
Transfer221642902025-03-31 3:44:47366 days ago1743392687
0xf9F4ed2E...100511eA3
0.001242 ETH
Transfer219064442025-02-23 3:48:59402 days ago1740282539
0xf9F4ed2E...100511eA3
0.00368077 ETH
Transfer182270222023-09-27 12:13:47916 days ago1695816827
0xf9F4ed2E...100511eA3
0.04344798 ETH
Transfer182270222023-09-27 12:13:47916 days ago1695816827
0xf9F4ed2E...100511eA3
0.00154184 ETH
Transfer180557522023-09-03 11:44:47940 days ago1693741487
0xf9F4ed2E...100511eA3
0.00471931 ETH
Transfer180137362023-08-28 14:27:59946 days ago1693232879
0xf9F4ed2E...100511eA3
0.00364881 ETH
Transfer180097412023-08-28 1:03:59947 days ago1693184639
0xf9F4ed2E...100511eA3
0.00325056 ETH
Transfer180093982023-08-27 23:54:23947 days ago1693180463
0xf9F4ed2E...100511eA3
0.00398949 ETH
Transfer180092052023-08-27 23:15:11947 days ago1693178111
0xf9F4ed2E...100511eA3
0.00756418 ETH
Transfer180091422023-08-27 23:02:23947 days ago1693177343
0xf9F4ed2E...100511eA3
0.00822731 ETH
Transfer180080732023-08-27 19:26:35947 days ago1693164395
0xf9F4ed2E...100511eA3
0.00202695 ETH
Transfer180075432023-08-27 17:39:59947 days ago1693157999
0xf9F4ed2E...100511eA3
0.00360078 ETH
Transfer180073892023-08-27 17:08:59947 days ago1693156139
0xf9F4ed2E...100511eA3
0.00225912 ETH
Transfer180073182023-08-27 16:54:23947 days ago1693155263
0xf9F4ed2E...100511eA3
0.00261959 ETH
Transfer180072422023-08-27 16:38:59947 days ago1693154339
0xf9F4ed2E...100511eA3
0.05282775 ETH
Transfer180072422023-08-27 16:38:59947 days ago1693154339
0xf9F4ed2E...100511eA3
0.00412471 ETH
Transfer180071982023-08-27 16:30:11947 days ago1693153811
0xf9F4ed2E...100511eA3
0.00398982 ETH
Transfer180071862023-08-27 16:27:47947 days ago1693153667
0xf9F4ed2E...100511eA3
0.00426813 ETH
View All Internal Transactions
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
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

API
[{"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 Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
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.