ETH Price: $3,143.78 (+1.00%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

TokenTracker

Sebra AI (BRAIN) (@$0.0029)

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve217183342025-01-27 20:45:352 days ago1738010735IN
Sebra AI: BRAIN Token
0 ETH0.0005248411.13654386
Approve217108662025-01-26 19:46:233 days ago1737920783IN
Sebra AI: BRAIN Token
0 ETH0.00034897.40512971
Approve216716062025-01-21 8:15:238 days ago1737447323IN
Sebra AI: BRAIN Token
0 ETH0.000203598.17521465
Approve216628782025-01-20 3:00:599 days ago1737342059IN
Sebra AI: BRAIN Token
0 ETH0.0015097732.04377366
Approve216520152025-01-18 14:37:2311 days ago1737211043IN
Sebra AI: BRAIN Token
0 ETH0.0006443113.67499709
Approve216465932025-01-17 20:26:3512 days ago1737145595IN
Sebra AI: BRAIN Token
0 ETH0.0005184611.06031604
Approve216408982025-01-17 1:21:5913 days ago1737076919IN
Sebra AI: BRAIN Token
0 ETH0.000259065.4971397
Approve216059842025-01-12 4:21:2317 days ago1736655683IN
Sebra AI: BRAIN Token
0 ETH0.000079041.67773977
Approve215834652025-01-09 0:52:5921 days ago1736383979IN
Sebra AI: BRAIN Token
0 ETH0.000205174.37690241
Approve215583902025-01-05 12:51:1124 days ago1736081471IN
Sebra AI: BRAIN Token
0 ETH0.000409458.7348056
Approve215506352025-01-04 10:52:3525 days ago1735987955IN
Sebra AI: BRAIN Token
0 ETH0.000142335.72900582
Transfer215504532025-01-04 10:15:3525 days ago1735985735IN
Sebra AI: BRAIN Token
0 ETH0.000358166.65620377
Approve215503852025-01-04 10:01:5925 days ago1735984919IN
Sebra AI: BRAIN Token
0 ETH0.000166596.1923228
Approve215503762025-01-04 10:00:1125 days ago1735984811IN
Sebra AI: BRAIN Token
0 ETH0.000163926.09282491
Approve215503662025-01-04 9:58:1125 days ago1735984691IN
Sebra AI: BRAIN Token
0 ETH0.000171936.39068679
Approve215503162025-01-04 9:48:1125 days ago1735984091IN
Sebra AI: BRAIN Token
0 ETH0.000324896.94157149
Transfer215414622025-01-03 4:07:2326 days ago1735877243IN
Sebra AI: BRAIN Token
0 ETH0.00047886.73078142
Approve215272222025-01-01 4:27:1128 days ago1735705631IN
Sebra AI: BRAIN Token
0 ETH0.000205864.368222
Approve215256952024-12-31 23:20:3529 days ago1735687235IN
Sebra AI: BRAIN Token
0 ETH0.000304186.45442379
Approve215244392024-12-31 19:08:2329 days ago1735672103IN
Sebra AI: BRAIN Token
0 ETH0.000311146.60217108
Approve215244292024-12-31 19:06:2329 days ago1735671983IN
Sebra AI: BRAIN Token
0 ETH0.000316516.70742602
Approve215124812024-12-30 3:02:4730 days ago1735527767IN
Sebra AI: BRAIN Token
0 ETH0.000098423.96169574
Approve215044842024-12-29 0:16:3532 days ago1735431395IN
Sebra AI: BRAIN Token
0 ETH0.000190234.03138903
Approve214854652024-12-26 8:32:2334 days ago1735201943IN
Sebra AI: BRAIN Token
0 ETH0.0006735314.2917058
Approve214828082024-12-25 23:36:4735 days ago1735169807IN
Sebra AI: BRAIN Token
0 ETH0.000256955.45220751
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
216520152025-01-18 14:37:2311 days ago1737211043
Sebra AI: BRAIN Token
0.13846389 ETH
216520152025-01-18 14:37:2311 days ago1737211043
Sebra AI: BRAIN Token
0.10573991 ETH
215268462025-01-01 3:11:3528 days ago1735701095
Sebra AI: BRAIN Token
0.01179 ETH
215256972024-12-31 23:20:5929 days ago1735687259
Sebra AI: BRAIN Token
0.00569409 ETH
215244412024-12-31 19:08:4729 days ago1735672127
Sebra AI: BRAIN Token
0.00336348 ETH
214460492024-12-20 20:14:1140 days ago1734725651
Sebra AI: BRAIN Token
0.00823732 ETH
213987582024-12-14 5:47:2346 days ago1734155243
Sebra AI: BRAIN Token
0.00363906 ETH
213182022024-12-02 23:48:3558 days ago1733183315
Sebra AI: BRAIN Token
0.0705757 ETH
213182022024-12-02 23:48:3558 days ago1733183315
Sebra AI: BRAIN Token
0.0705757 ETH
213178182024-12-02 22:30:4758 days ago1733178647
Sebra AI: BRAIN Token
0.17654766 ETH
213178182024-12-02 22:30:4758 days ago1733178647
Sebra AI: BRAIN Token
0.17654766 ETH
213176952024-12-02 22:05:5958 days ago1733177159
Sebra AI: BRAIN Token
0.36402762 ETH
213176952024-12-02 22:05:5958 days ago1733177159
Sebra AI: BRAIN Token
0.36402762 ETH
213176812024-12-02 22:02:5958 days ago1733176979
Sebra AI: BRAIN Token
0.38263281 ETH
213176812024-12-02 22:02:5958 days ago1733176979
Sebra AI: BRAIN Token
0.38263281 ETH
213176172024-12-02 21:50:1158 days ago1733176211
Sebra AI: BRAIN Token
0.1191811 ETH
213176172024-12-02 21:50:1158 days ago1733176211
Sebra AI: BRAIN Token
0.1191811 ETH
213175722024-12-02 21:41:1158 days ago1733175671
Sebra AI: BRAIN Token
0.17227178 ETH
213175722024-12-02 21:41:1158 days ago1733175671
Sebra AI: BRAIN Token
0.17227178 ETH
213175402024-12-02 21:34:4758 days ago1733175287
Sebra AI: BRAIN Token
0.51072675 ETH
213175402024-12-02 21:34:4758 days ago1733175287
Sebra AI: BRAIN Token
0.51072675 ETH
213175192024-12-02 21:30:3558 days ago1733175035
Sebra AI: BRAIN Token
1.25597847 ETH
213175192024-12-02 21:30:3558 days ago1733175035
Sebra AI: BRAIN Token
1.25597847 ETH
213175152024-12-02 21:29:4758 days ago1733174987
Sebra AI: BRAIN Token
4.25105992 ETH
213175152024-12-02 21:29:4758 days ago1733174987
Sebra AI: BRAIN Token
4.25105992 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
SebraAI

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
File 1 of 1 : Sebra.sol
/**
 *Submitted for verification at Etherscan.io on 2024-06-04
*/

// SPDX-License-Identifier: MIT

/** 

.d8888b.           888                                    d8888 8888888
d88P  Y88b          888                                   d88888   888  
Y88b.               888                                  d88P888   888  
 "Y888b.    .d88b.  88888b.  888d888  8888b.            d88P 888   888  
    "Y88b. d8P  Y8b 888 "88b 888P"       "88b          d88P  888   888  
      "888 88888888 888  888 888     .d888888         d88P   888   888  
Y88b  d88P Y8b.     888 d88P 888     888  888        d8888888888   888  
 "Y8888P"   "Y8888  88888P"  888     "Y888888       d88P     888 8888888


Let’s use some $BRAIN.

Socials:

Web - sebra.ai
X - x.com/sebraai
TG - t.me/sebra_ai


*/


pragma solidity 0.8.26;

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 SebraAI 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 => bool) private bots;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = true;
    address payable private _taxWallet;

    uint256 private _initialBuyTax=30;
    uint256 private _initialSellTax=35;
    uint256 private _finalBuyTax=5;
    uint256 private _finalSellTax=5;
    uint256 private _reduceBuyTaxAt=25;
    uint256 private _reduceSellTaxAt=30;
    uint256 private _preventSwapBefore=30;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 10000000 * 10**_decimals;
    string private constant _name = unicode"Sebra AI";
    string private constant _symbol = unicode"BRAIN";
    uint256 public _maxTxAmount = 300000 * 10**_decimals;
    uint256 public _maxWalletSize = 300000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 100000 * 10**_decimals;
    uint256 public _maxTaxSwap= 500000 * 10**_decimals;

    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() external {
        require(_msgSender()==_taxWallet);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
   
    }

    function withdrawStuckETH() external onlyOwner {
        payable(_taxWallet).transfer(address(this).balance);
    }

    function withdrawStuckERC20(IERC20 token) external onlyOwner {
        token.transfer(_taxWallet, token.balanceOf(address(this)));
    }

}

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":[],"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"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"}],"name":"withdrawStuckERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600160065f6101000a81548160ff021916908315150217905550601e600755602360085560056009556005600a556019600b55601e600c55601e600d555f600e556009600a61005391906105c3565b620493e0610061919061060d565b600f556009600a61007291906105c3565b620493e0610080919061060d565b6010556009600a61009191906105c3565b620186a061009f919061060d565b6011556009600a6100b091906105c3565b6207a1206100be919061060d565b6012555f601460156101000a81548160ff0219169083151502179055505f601460166101000a81548160ff021916908315150217905550348015610100575f80fd5b505f61011061042460201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506101ba61042460201b60201c565b600660016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a61020891906105c3565b62989680610216919061060d565b60015f61022761042460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f61027761042b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506103a061042460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6103fc91906105c3565b6298968061040a919061060d565b604051610417919061065d565b60405180910390a3610676565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156104d4578086048111156104b0576104af610452565b5b60018516156104bf5780820291505b80810290506104cd8561047f565b9450610494565b94509492505050565b5f826104ec57600190506105a7565b816104f9575f90506105a7565b816001811461050f576002811461051957610548565b60019150506105a7565b60ff84111561052b5761052a610452565b5b8360020a91508482111561054257610541610452565b5b506105a7565b5060208310610133831016604e8410600b841016171561057d5782820a90508381111561057857610577610452565b5b6105a7565b61058a848484600161048b565b925090508184048111156105a1576105a0610452565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6105cd826105ae565b91506105d8836105b7565b92506106057fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846104dd565b905092915050565b5f610617826105ae565b9150610622836105ae565b9250828202610630816105ae565b9150828204841483151761064757610646610452565b5b5092915050565b610657816105ae565b82525050565b5f6020820190506106705f83018461064e565b92915050565b61333d806106835f395ff3fe60806040526004361061012d575f3560e01c8063751039fc116100aa578063a9059cbb1161006e578063a9059cbb146103a6578063bf474bed146103e2578063c876d0b91461040c578063c9567bf914610436578063dd62ed3e1461044c578063f5648a4f1461048857610134565b8063751039fc146102e85780637d1db4a5146102fe5780638da5cb5b146103285780638f9a55c01461035257806395d89b411461037c57610134565b8063313ce567116100f1578063313ce5671461022e5780633963510b1461025857806351bc3c851461028057806370a0823114610296578063715018a6146102d257610134565b806306fdde0314610138578063095ea7b3146101625780630faee56f1461019e57806318160ddd146101c857806323b872dd146101f257610134565b3661013457005b5f80fd5b348015610143575f80fd5b5061014c61049e565b6040516101599190612325565b60405180910390f35b34801561016d575f80fd5b50610188600480360381019061018391906123d6565b6104db565b604051610195919061242e565b60405180910390f35b3480156101a9575f80fd5b506101b26104f8565b6040516101bf9190612456565b60405180910390f35b3480156101d3575f80fd5b506101dc6104fe565b6040516101e99190612456565b60405180910390f35b3480156101fd575f80fd5b506102186004803603810190610213919061246f565b610520565b604051610225919061242e565b60405180910390f35b348015610239575f80fd5b506102426105f4565b60405161024f91906124da565b60405180910390f35b348015610263575f80fd5b5061027e6004803603810190610279919061252e565b6105fc565b005b34801561028b575f80fd5b506102946107a8565b005b3480156102a1575f80fd5b506102bc60048036038101906102b79190612559565b610840565b6040516102c99190612456565b60405180910390f35b3480156102dd575f80fd5b506102e6610886565b005b3480156102f3575f80fd5b506102fc6109d4565b005b348015610309575f80fd5b50610312610b19565b60405161031f9190612456565b60405180910390f35b348015610333575f80fd5b5061033c610b1f565b6040516103499190612593565b60405180910390f35b34801561035d575f80fd5b50610366610b46565b6040516103739190612456565b60405180910390f35b348015610387575f80fd5b50610390610b4c565b60405161039d9190612325565b60405180910390f35b3480156103b1575f80fd5b506103cc60048036038101906103c791906123d6565b610b89565b6040516103d9919061242e565b60405180910390f35b3480156103ed575f80fd5b506103f6610ba6565b6040516104039190612456565b60405180910390f35b348015610417575f80fd5b50610420610bac565b60405161042d919061242e565b60405180910390f35b348015610441575f80fd5b5061044a610bbe565b005b348015610457575f80fd5b50610472600480360381019061046d91906125ac565b6110dc565b60405161047f9190612456565b60405180910390f35b348015610493575f80fd5b5061049c61115e565b005b60606040518060400160405280600881526020017f5365627261204149000000000000000000000000000000000000000000000000815250905090565b5f6104ee6104e761125a565b8484611261565b6001905092915050565b60125481565b5f6009600a61050d9190612746565b6298968061051b9190612790565b905090565b5f61052c848484611424565b6105e98461053861125a565b6105e4856040518060600160405280602881526020016132e06028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61059b61125a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611da09092919063ffffffff16565b611261565b600190509392505050565b5f6009905090565b61060461125a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610690576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106879061281b565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016107089190612593565b602060405180830381865afa158015610723573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610747919061284d565b6040518363ffffffff1660e01b81526004016107649291906128d3565b6020604051808303815f875af1158015610780573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107a49190612924565b5050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107e961125a565b73ffffffffffffffffffffffffffffffffffffffff1614610808575f80fd5b5f61081230610840565b90505f8111156108265761082581611e02565b5b5f4790505f81111561083c5761083b8161206d565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61088e61125a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461091a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109119061281b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6109dc61125a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5f9061281b565b60405180910390fd5b6009600a610a769190612746565b62989680610a849190612790565b600f819055506009600a610a989190612746565b62989680610aa69190612790565b6010819055505f60065f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610af49190612746565b62989680610b029190612790565b604051610b0f9190612456565b60405180910390a1565b600f5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600581526020017f425241494e000000000000000000000000000000000000000000000000000000815250905090565b5f610b9c610b9561125a565b8484611424565b6001905092915050565b60115481565b60065f9054906101000a900460ff1681565b610bc661125a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c499061281b565b60405180910390fd5b60148054906101000a900460ff1615610ca0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9790612999565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d3b3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610d289190612746565b62989680610d369190612790565b611261565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610da5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dc991906129cb565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e4f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e7391906129cb565b6040518363ffffffff1660e01b8152600401610e909291906129f6565b6020604051808303815f875af1158015610eac573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ed091906129cb565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610f5730610840565b5f80610f61610b1f565b426040518863ffffffff1660e01b8152600401610f8396959493929190612a56565b60606040518083038185885af1158015610f9f573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610fc49190612ab5565b50505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611064929190612b05565b6020604051808303815f875af1158015611080573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110a49190612924565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61116661125a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e99061281b565b60405180910390fd5b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015611257573d5f803e3d5ffd5b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c690612b9c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361133d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133490612c2a565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114179190612456565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611492576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148990612cb8565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611500576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f790612d46565b60405180910390fd5b5f8111611542576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153990612dd4565b60405180910390fd5b5f61154b610b1f565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156115b95750611589610b1f565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611af0576115fa60646115ec600b54600e54116115d9576007546115dd565b6009545b856120d690919063ffffffff16565b61214d90919063ffffffff16565b905060065f9054906101000a900460ff16156117825760135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156116ba575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611781574360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541061173e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173590612e88565b60405180910390fd5b4360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561182b575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561187e575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561193857600f548211156118c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118bf90612ef0565b60405180910390fd5b601054826118d585610840565b6118df9190612f0e565b1115611920576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191790612f8b565b60405180910390fd5b600e5f81548092919061193290612fa9565b91905055505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156119c057503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611a0457611a0160646119f3600c54600e54116119e0576008546119e4565b600a545b856120d690919063ffffffff16565b61214d90919063ffffffff16565b90505b5f611a0e30610840565b9050601460159054906101000a900460ff16158015611a79575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611a915750601460169054906101000a900460ff165b8015611a9e575060115481115b8015611aad5750600d54600e54115b15611aee57611acf611aca84611ac584601254612196565b612196565b611e02565b5f47905066b1a2bc2ec50000811115611aec57611aeb4761206d565b5b505b505b5f811115611bef57611b488160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121ae90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611be69190612456565b60405180910390a35b611c3f8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461220b90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611ce2611c96828461220b90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121ae90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611d85848661220b90919063ffffffff16565b604051611d929190612456565b60405180910390a350505050565b5f838311158290611de7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dde9190612325565b60405180910390fd5b505f8385611df59190612ff0565b9050809150509392505050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611e3957611e38613023565b5b604051908082528060200260200182016040528015611e675781602001602082028036833780820191505090505b50905030815f81518110611e7e57611e7d613050565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f22573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f4691906129cb565b81600181518110611f5a57611f59613050565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611fc03060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611261565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612022959493929190613134565b5f604051808303815f87803b158015612039575f80fd5b505af115801561204b573d5f803e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156120d2573d5f803e3d5ffd5b5050565b5f8083036120e6575f9050612147565b5f82846120f39190612790565b905082848261210291906131b9565b14612142576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213990613259565b60405180910390fd5b809150505b92915050565b5f61218e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612254565b905092915050565b5f8183116121a457826121a6565b815b905092915050565b5f8082846121bc9190612f0e565b905083811015612201576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121f8906132c1565b60405180910390fd5b8091505092915050565b5f61224c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611da0565b905092915050565b5f808311829061229a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122919190612325565b60405180910390fd5b505f83856122a891906131b9565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6122f7826122b5565b61230181856122bf565b93506123118185602086016122cf565b61231a816122dd565b840191505092915050565b5f6020820190508181035f83015261233d81846122ed565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61237282612349565b9050919050565b61238281612368565b811461238c575f80fd5b50565b5f8135905061239d81612379565b92915050565b5f819050919050565b6123b5816123a3565b81146123bf575f80fd5b50565b5f813590506123d0816123ac565b92915050565b5f80604083850312156123ec576123eb612345565b5b5f6123f98582860161238f565b925050602061240a858286016123c2565b9150509250929050565b5f8115159050919050565b61242881612414565b82525050565b5f6020820190506124415f83018461241f565b92915050565b612450816123a3565b82525050565b5f6020820190506124695f830184612447565b92915050565b5f805f6060848603121561248657612485612345565b5b5f6124938682870161238f565b93505060206124a48682870161238f565b92505060406124b5868287016123c2565b9150509250925092565b5f60ff82169050919050565b6124d4816124bf565b82525050565b5f6020820190506124ed5f8301846124cb565b92915050565b5f6124fd82612368565b9050919050565b61250d816124f3565b8114612517575f80fd5b50565b5f8135905061252881612504565b92915050565b5f6020828403121561254357612542612345565b5b5f6125508482850161251a565b91505092915050565b5f6020828403121561256e5761256d612345565b5b5f61257b8482850161238f565b91505092915050565b61258d81612368565b82525050565b5f6020820190506125a65f830184612584565b92915050565b5f80604083850312156125c2576125c1612345565b5b5f6125cf8582860161238f565b92505060206125e08582860161238f565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561266c57808604811115612648576126476125ea565b5b60018516156126575780820291505b808102905061266585612617565b945061262c565b94509492505050565b5f82612684576001905061273f565b81612691575f905061273f565b81600181146126a757600281146126b1576126e0565b600191505061273f565b60ff8411156126c3576126c26125ea565b5b8360020a9150848211156126da576126d96125ea565b5b5061273f565b5060208310610133831016604e8410600b84101617156127155782820a9050838111156127105761270f6125ea565b5b61273f565b6127228484846001612623565b92509050818404811115612739576127386125ea565b5b81810290505b9392505050565b5f612750826123a3565b915061275b836124bf565b92506127887fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612675565b905092915050565b5f61279a826123a3565b91506127a5836123a3565b92508282026127b3816123a3565b915082820484148315176127ca576127c96125ea565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6128056020836122bf565b9150612810826127d1565b602082019050919050565b5f6020820190508181035f830152612832816127f9565b9050919050565b5f81519050612847816123ac565b92915050565b5f6020828403121561286257612861612345565b5b5f61286f84828501612839565b91505092915050565b5f819050919050565b5f61289b61289661289184612349565b612878565b612349565b9050919050565b5f6128ac82612881565b9050919050565b5f6128bd826128a2565b9050919050565b6128cd816128b3565b82525050565b5f6040820190506128e65f8301856128c4565b6128f36020830184612447565b9392505050565b61290381612414565b811461290d575f80fd5b50565b5f8151905061291e816128fa565b92915050565b5f6020828403121561293957612938612345565b5b5f61294684828501612910565b91505092915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6129836017836122bf565b915061298e8261294f565b602082019050919050565b5f6020820190508181035f8301526129b081612977565b9050919050565b5f815190506129c581612379565b92915050565b5f602082840312156129e0576129df612345565b5b5f6129ed848285016129b7565b91505092915050565b5f604082019050612a095f830185612584565b612a166020830184612584565b9392505050565b5f819050919050565b5f612a40612a3b612a3684612a1d565b612878565b6123a3565b9050919050565b612a5081612a26565b82525050565b5f60c082019050612a695f830189612584565b612a766020830188612447565b612a836040830187612a47565b612a906060830186612a47565b612a9d6080830185612584565b612aaa60a0830184612447565b979650505050505050565b5f805f60608486031215612acc57612acb612345565b5b5f612ad986828701612839565b9350506020612aea86828701612839565b9250506040612afb86828701612839565b9150509250925092565b5f604082019050612b185f830185612584565b612b256020830184612447565b9392505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612b866024836122bf565b9150612b9182612b2c565b604082019050919050565b5f6020820190508181035f830152612bb381612b7a565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612c146022836122bf565b9150612c1f82612bba565b604082019050919050565b5f6020820190508181035f830152612c4181612c08565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612ca26025836122bf565b9150612cad82612c48565b604082019050919050565b5f6020820190508181035f830152612ccf81612c96565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612d306023836122bf565b9150612d3b82612cd6565b604082019050919050565b5f6020820190508181035f830152612d5d81612d24565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612dbe6029836122bf565b9150612dc982612d64565b604082019050919050565b5f6020820190508181035f830152612deb81612db2565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c5f8201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b5f612e726049836122bf565b9150612e7d82612df2565b606082019050919050565b5f6020820190508181035f830152612e9f81612e66565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612eda6019836122bf565b9150612ee582612ea6565b602082019050919050565b5f6020820190508181035f830152612f0781612ece565b9050919050565b5f612f18826123a3565b9150612f23836123a3565b9250828201905080821115612f3b57612f3a6125ea565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612f75601a836122bf565b9150612f8082612f41565b602082019050919050565b5f6020820190508181035f830152612fa281612f69565b9050919050565b5f612fb3826123a3565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612fe557612fe46125ea565b5b600182019050919050565b5f612ffa826123a3565b9150613005836123a3565b925082820390508181111561301d5761301c6125ea565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6130af81612368565b82525050565b5f6130c083836130a6565b60208301905092915050565b5f602082019050919050565b5f6130e28261307d565b6130ec8185613087565b93506130f783613097565b805f5b8381101561312757815161310e88826130b5565b9750613119836130cc565b9250506001810190506130fa565b5085935050505092915050565b5f60a0820190506131475f830188612447565b6131546020830187612a47565b818103604083015261316681866130d8565b90506131756060830185612584565b6131826080830184612447565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6131c3826123a3565b91506131ce836123a3565b9250826131de576131dd61318c565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6132436021836122bf565b915061324e826131e9565b604082019050919050565b5f6020820190508181035f83015261327081613237565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6132ab601b836122bf565b91506132b682613277565b602082019050919050565b5f6020820190508181035f8301526132d88161329f565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220bca5935432cb7ce05957c25594448a24fd937f994b7c7212d4d1d8fbc8600d0564736f6c634300081a0033

Deployed Bytecode

0x60806040526004361061012d575f3560e01c8063751039fc116100aa578063a9059cbb1161006e578063a9059cbb146103a6578063bf474bed146103e2578063c876d0b91461040c578063c9567bf914610436578063dd62ed3e1461044c578063f5648a4f1461048857610134565b8063751039fc146102e85780637d1db4a5146102fe5780638da5cb5b146103285780638f9a55c01461035257806395d89b411461037c57610134565b8063313ce567116100f1578063313ce5671461022e5780633963510b1461025857806351bc3c851461028057806370a0823114610296578063715018a6146102d257610134565b806306fdde0314610138578063095ea7b3146101625780630faee56f1461019e57806318160ddd146101c857806323b872dd146101f257610134565b3661013457005b5f80fd5b348015610143575f80fd5b5061014c61049e565b6040516101599190612325565b60405180910390f35b34801561016d575f80fd5b50610188600480360381019061018391906123d6565b6104db565b604051610195919061242e565b60405180910390f35b3480156101a9575f80fd5b506101b26104f8565b6040516101bf9190612456565b60405180910390f35b3480156101d3575f80fd5b506101dc6104fe565b6040516101e99190612456565b60405180910390f35b3480156101fd575f80fd5b506102186004803603810190610213919061246f565b610520565b604051610225919061242e565b60405180910390f35b348015610239575f80fd5b506102426105f4565b60405161024f91906124da565b60405180910390f35b348015610263575f80fd5b5061027e6004803603810190610279919061252e565b6105fc565b005b34801561028b575f80fd5b506102946107a8565b005b3480156102a1575f80fd5b506102bc60048036038101906102b79190612559565b610840565b6040516102c99190612456565b60405180910390f35b3480156102dd575f80fd5b506102e6610886565b005b3480156102f3575f80fd5b506102fc6109d4565b005b348015610309575f80fd5b50610312610b19565b60405161031f9190612456565b60405180910390f35b348015610333575f80fd5b5061033c610b1f565b6040516103499190612593565b60405180910390f35b34801561035d575f80fd5b50610366610b46565b6040516103739190612456565b60405180910390f35b348015610387575f80fd5b50610390610b4c565b60405161039d9190612325565b60405180910390f35b3480156103b1575f80fd5b506103cc60048036038101906103c791906123d6565b610b89565b6040516103d9919061242e565b60405180910390f35b3480156103ed575f80fd5b506103f6610ba6565b6040516104039190612456565b60405180910390f35b348015610417575f80fd5b50610420610bac565b60405161042d919061242e565b60405180910390f35b348015610441575f80fd5b5061044a610bbe565b005b348015610457575f80fd5b50610472600480360381019061046d91906125ac565b6110dc565b60405161047f9190612456565b60405180910390f35b348015610493575f80fd5b5061049c61115e565b005b60606040518060400160405280600881526020017f5365627261204149000000000000000000000000000000000000000000000000815250905090565b5f6104ee6104e761125a565b8484611261565b6001905092915050565b60125481565b5f6009600a61050d9190612746565b6298968061051b9190612790565b905090565b5f61052c848484611424565b6105e98461053861125a565b6105e4856040518060600160405280602881526020016132e06028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61059b61125a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611da09092919063ffffffff16565b611261565b600190509392505050565b5f6009905090565b61060461125a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610690576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106879061281b565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016107089190612593565b602060405180830381865afa158015610723573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610747919061284d565b6040518363ffffffff1660e01b81526004016107649291906128d3565b6020604051808303815f875af1158015610780573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107a49190612924565b5050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107e961125a565b73ffffffffffffffffffffffffffffffffffffffff1614610808575f80fd5b5f61081230610840565b90505f8111156108265761082581611e02565b5b5f4790505f81111561083c5761083b8161206d565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61088e61125a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461091a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109119061281b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6109dc61125a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5f9061281b565b60405180910390fd5b6009600a610a769190612746565b62989680610a849190612790565b600f819055506009600a610a989190612746565b62989680610aa69190612790565b6010819055505f60065f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610af49190612746565b62989680610b029190612790565b604051610b0f9190612456565b60405180910390a1565b600f5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600581526020017f425241494e000000000000000000000000000000000000000000000000000000815250905090565b5f610b9c610b9561125a565b8484611424565b6001905092915050565b60115481565b60065f9054906101000a900460ff1681565b610bc661125a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c499061281b565b60405180910390fd5b60148054906101000a900460ff1615610ca0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9790612999565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d3b3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610d289190612746565b62989680610d369190612790565b611261565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610da5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dc991906129cb565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e4f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e7391906129cb565b6040518363ffffffff1660e01b8152600401610e909291906129f6565b6020604051808303815f875af1158015610eac573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ed091906129cb565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610f5730610840565b5f80610f61610b1f565b426040518863ffffffff1660e01b8152600401610f8396959493929190612a56565b60606040518083038185885af1158015610f9f573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610fc49190612ab5565b50505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611064929190612b05565b6020604051808303815f875af1158015611080573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110a49190612924565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61116661125a565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e99061281b565b60405180910390fd5b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015611257573d5f803e3d5ffd5b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c690612b9c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361133d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133490612c2a565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114179190612456565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611492576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148990612cb8565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611500576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f790612d46565b60405180910390fd5b5f8111611542576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153990612dd4565b60405180910390fd5b5f61154b610b1f565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156115b95750611589610b1f565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611af0576115fa60646115ec600b54600e54116115d9576007546115dd565b6009545b856120d690919063ffffffff16565b61214d90919063ffffffff16565b905060065f9054906101000a900460ff16156117825760135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156116ba575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611781574360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541061173e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173590612e88565b60405180910390fd5b4360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561182b575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561187e575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561193857600f548211156118c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118bf90612ef0565b60405180910390fd5b601054826118d585610840565b6118df9190612f0e565b1115611920576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191790612f8b565b60405180910390fd5b600e5f81548092919061193290612fa9565b91905055505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156119c057503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611a0457611a0160646119f3600c54600e54116119e0576008546119e4565b600a545b856120d690919063ffffffff16565b61214d90919063ffffffff16565b90505b5f611a0e30610840565b9050601460159054906101000a900460ff16158015611a79575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611a915750601460169054906101000a900460ff165b8015611a9e575060115481115b8015611aad5750600d54600e54115b15611aee57611acf611aca84611ac584601254612196565b612196565b611e02565b5f47905066b1a2bc2ec50000811115611aec57611aeb4761206d565b5b505b505b5f811115611bef57611b488160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121ae90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611be69190612456565b60405180910390a35b611c3f8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461220b90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611ce2611c96828461220b90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121ae90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611d85848661220b90919063ffffffff16565b604051611d929190612456565b60405180910390a350505050565b5f838311158290611de7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dde9190612325565b60405180910390fd5b505f8385611df59190612ff0565b9050809150509392505050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611e3957611e38613023565b5b604051908082528060200260200182016040528015611e675781602001602082028036833780820191505090505b50905030815f81518110611e7e57611e7d613050565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f22573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f4691906129cb565b81600181518110611f5a57611f59613050565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611fc03060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611261565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612022959493929190613134565b5f604051808303815f87803b158015612039575f80fd5b505af115801561204b573d5f803e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156120d2573d5f803e3d5ffd5b5050565b5f8083036120e6575f9050612147565b5f82846120f39190612790565b905082848261210291906131b9565b14612142576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213990613259565b60405180910390fd5b809150505b92915050565b5f61218e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612254565b905092915050565b5f8183116121a457826121a6565b815b905092915050565b5f8082846121bc9190612f0e565b905083811015612201576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121f8906132c1565b60405180910390fd5b8091505092915050565b5f61224c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611da0565b905092915050565b5f808311829061229a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122919190612325565b60405180910390fd5b505f83856122a891906131b9565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6122f7826122b5565b61230181856122bf565b93506123118185602086016122cf565b61231a816122dd565b840191505092915050565b5f6020820190508181035f83015261233d81846122ed565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61237282612349565b9050919050565b61238281612368565b811461238c575f80fd5b50565b5f8135905061239d81612379565b92915050565b5f819050919050565b6123b5816123a3565b81146123bf575f80fd5b50565b5f813590506123d0816123ac565b92915050565b5f80604083850312156123ec576123eb612345565b5b5f6123f98582860161238f565b925050602061240a858286016123c2565b9150509250929050565b5f8115159050919050565b61242881612414565b82525050565b5f6020820190506124415f83018461241f565b92915050565b612450816123a3565b82525050565b5f6020820190506124695f830184612447565b92915050565b5f805f6060848603121561248657612485612345565b5b5f6124938682870161238f565b93505060206124a48682870161238f565b92505060406124b5868287016123c2565b9150509250925092565b5f60ff82169050919050565b6124d4816124bf565b82525050565b5f6020820190506124ed5f8301846124cb565b92915050565b5f6124fd82612368565b9050919050565b61250d816124f3565b8114612517575f80fd5b50565b5f8135905061252881612504565b92915050565b5f6020828403121561254357612542612345565b5b5f6125508482850161251a565b91505092915050565b5f6020828403121561256e5761256d612345565b5b5f61257b8482850161238f565b91505092915050565b61258d81612368565b82525050565b5f6020820190506125a65f830184612584565b92915050565b5f80604083850312156125c2576125c1612345565b5b5f6125cf8582860161238f565b92505060206125e08582860161238f565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561266c57808604811115612648576126476125ea565b5b60018516156126575780820291505b808102905061266585612617565b945061262c565b94509492505050565b5f82612684576001905061273f565b81612691575f905061273f565b81600181146126a757600281146126b1576126e0565b600191505061273f565b60ff8411156126c3576126c26125ea565b5b8360020a9150848211156126da576126d96125ea565b5b5061273f565b5060208310610133831016604e8410600b84101617156127155782820a9050838111156127105761270f6125ea565b5b61273f565b6127228484846001612623565b92509050818404811115612739576127386125ea565b5b81810290505b9392505050565b5f612750826123a3565b915061275b836124bf565b92506127887fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612675565b905092915050565b5f61279a826123a3565b91506127a5836123a3565b92508282026127b3816123a3565b915082820484148315176127ca576127c96125ea565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6128056020836122bf565b9150612810826127d1565b602082019050919050565b5f6020820190508181035f830152612832816127f9565b9050919050565b5f81519050612847816123ac565b92915050565b5f6020828403121561286257612861612345565b5b5f61286f84828501612839565b91505092915050565b5f819050919050565b5f61289b61289661289184612349565b612878565b612349565b9050919050565b5f6128ac82612881565b9050919050565b5f6128bd826128a2565b9050919050565b6128cd816128b3565b82525050565b5f6040820190506128e65f8301856128c4565b6128f36020830184612447565b9392505050565b61290381612414565b811461290d575f80fd5b50565b5f8151905061291e816128fa565b92915050565b5f6020828403121561293957612938612345565b5b5f61294684828501612910565b91505092915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6129836017836122bf565b915061298e8261294f565b602082019050919050565b5f6020820190508181035f8301526129b081612977565b9050919050565b5f815190506129c581612379565b92915050565b5f602082840312156129e0576129df612345565b5b5f6129ed848285016129b7565b91505092915050565b5f604082019050612a095f830185612584565b612a166020830184612584565b9392505050565b5f819050919050565b5f612a40612a3b612a3684612a1d565b612878565b6123a3565b9050919050565b612a5081612a26565b82525050565b5f60c082019050612a695f830189612584565b612a766020830188612447565b612a836040830187612a47565b612a906060830186612a47565b612a9d6080830185612584565b612aaa60a0830184612447565b979650505050505050565b5f805f60608486031215612acc57612acb612345565b5b5f612ad986828701612839565b9350506020612aea86828701612839565b9250506040612afb86828701612839565b9150509250925092565b5f604082019050612b185f830185612584565b612b256020830184612447565b9392505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612b866024836122bf565b9150612b9182612b2c565b604082019050919050565b5f6020820190508181035f830152612bb381612b7a565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612c146022836122bf565b9150612c1f82612bba565b604082019050919050565b5f6020820190508181035f830152612c4181612c08565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612ca26025836122bf565b9150612cad82612c48565b604082019050919050565b5f6020820190508181035f830152612ccf81612c96565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612d306023836122bf565b9150612d3b82612cd6565b604082019050919050565b5f6020820190508181035f830152612d5d81612d24565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612dbe6029836122bf565b9150612dc982612d64565b604082019050919050565b5f6020820190508181035f830152612deb81612db2565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c5f8201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b5f612e726049836122bf565b9150612e7d82612df2565b606082019050919050565b5f6020820190508181035f830152612e9f81612e66565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612eda6019836122bf565b9150612ee582612ea6565b602082019050919050565b5f6020820190508181035f830152612f0781612ece565b9050919050565b5f612f18826123a3565b9150612f23836123a3565b9250828201905080821115612f3b57612f3a6125ea565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612f75601a836122bf565b9150612f8082612f41565b602082019050919050565b5f6020820190508181035f830152612fa281612f69565b9050919050565b5f612fb3826123a3565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612fe557612fe46125ea565b5b600182019050919050565b5f612ffa826123a3565b9150613005836123a3565b925082820390508181111561301d5761301c6125ea565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6130af81612368565b82525050565b5f6130c083836130a6565b60208301905092915050565b5f602082019050919050565b5f6130e28261307d565b6130ec8185613087565b93506130f783613097565b805f5b8381101561312757815161310e88826130b5565b9750613119836130cc565b9250506001810190506130fa565b5085935050505092915050565b5f60a0820190506131475f830188612447565b6131546020830187612a47565b818103604083015261316681866130d8565b90506131756060830185612584565b6131826080830184612447565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6131c3826123a3565b91506131ce836123a3565b9250826131de576131dd61318c565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6132436021836122bf565b915061324e826131e9565b604082019050919050565b5f6020820190508181035f83015261327081613237565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6132ab601b836122bf565b91506132b682613277565b602082019050919050565b5f6020820190508181035f8301526132d88161329f565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220bca5935432cb7ce05957c25594448a24fd937f994b7c7212d4d1d8fbc8600d0564736f6c634300081a0033

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

OVERVIEW

Sebra AI is crafting a new way to share your unique ideas, experiences, and worldviews with the help of custom chatbots. Public bots, private bots, unlockable content.

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.