ETH Price: $3,320.87 (+0.79%)
Gas: 3.09 Gwei
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve214018922024-12-14 16:17:4742 days ago1734193067IN
0x21174Ec0...eEe19bEEF
0 ETH0.0005714612.1047336
Approve213295912024-12-04 14:00:2352 days ago1733320823IN
0x21174Ec0...eEe19bEEF
0 ETH0.0011323724.01648043
Approve213213292024-12-03 10:17:5953 days ago1733221079IN
0x21174Ec0...eEe19bEEF
0 ETH0.0008825918.82912904
Approve213026902024-11-30 19:50:2356 days ago1732996223IN
0x21174Ec0...eEe19bEEF
0 ETH0.0007334115.53512607
Transfer213019822024-11-30 17:27:5956 days ago1732987679IN
0x21174Ec0...eEe19bEEF
0 ETH0.0013837920.90417019
Approve212823342024-11-27 23:22:2359 days ago1732749743IN
0x21174Ec0...eEe19bEEF
0 ETH0.0008187317.36445733
Approve212696642024-11-26 4:53:5960 days ago1732596839IN
0x21174Ec0...eEe19bEEF
0 ETH0.000253755.40659581
Approve212555182024-11-24 5:28:4762 days ago1732426127IN
0x21174Ec0...eEe19bEEF
0 ETH0.000420888.91978944
Approve212200372024-11-19 6:38:5967 days ago1731998339IN
0x21174Ec0...eEe19bEEF
0 ETH0.0004883210.35690526
Approve212106202024-11-17 23:09:1169 days ago1731884951IN
0x21174Ec0...eEe19bEEF
0 ETH0.000253710.20275699
Approve211903012024-11-15 3:06:3571 days ago1731639995IN
0x21174Ec0...eEe19bEEF
0 ETH0.0007277415.50570334
Approve211540562024-11-10 1:43:2377 days ago1731203003IN
0x21174Ec0...eEe19bEEF
0 ETH0.0005247111.12873802
Transfer211525512024-11-09 20:41:3577 days ago1731184895IN
0x21174Ec0...eEe19bEEF
0 ETH0.000554698.37941254
Approve211407962024-11-08 5:21:1178 days ago1731043271IN
0x21174Ec0...eEe19bEEF
0 ETH0.00043529.23015301
Approve211401032024-11-08 3:01:4778 days ago1731034907IN
0x21174Ec0...eEe19bEEF
0 ETH0.0006384313.52677934
Approve211359282024-11-07 12:59:2379 days ago1730984363IN
0x21174Ec0...eEe19bEEF
0 ETH0.0013093427.73458795
Approve211317652024-11-06 23:02:3580 days ago1730934155IN
0x21174Ec0...eEe19bEEF
0 ETH0.001102823.38937805
Approve211117872024-11-04 4:07:1182 days ago1730693231IN
0x21174Ec0...eEe19bEEF
0 ETH0.000232574.92632038
Approve211062302024-11-03 9:30:4783 days ago1730626247IN
0x21174Ec0...eEe19bEEF
0 ETH0.000255235.41327363
Approve210976262024-11-02 4:38:5984 days ago1730522339IN
0x21174Ec0...eEe19bEEF
0 ETH0.000243325.19114522
Approve210919132024-11-01 9:30:4785 days ago1730453447IN
0x21174Ec0...eEe19bEEF
0 ETH0.000271815.76058098
Approve210915842024-11-01 8:24:5985 days ago1730449499IN
0x21174Ec0...eEe19bEEF
0 ETH0.000443369.39609586
Approve210903342024-11-01 4:13:5985 days ago1730434439IN
0x21174Ec0...eEe19bEEF
0 ETH0.000292276.2273565
Approve210746022024-10-29 23:32:3588 days ago1730244755IN
0x21174Ec0...eEe19bEEF
0 ETH0.000353447.49616642
Approve210741092024-10-29 21:53:4788 days ago1730238827IN
0x21174Ec0...eEe19bEEF
0 ETH0.000403028.53892147
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
210529402024-10-26 22:59:5991 days ago1729983599
0x21174Ec0...eEe19bEEF
0.1863297 ETH
210529402024-10-26 22:59:5991 days ago1729983599
0x21174Ec0...eEe19bEEF
0.1863297 ETH
210517122024-10-26 18:53:3591 days ago1729968815
0x21174Ec0...eEe19bEEF
0.12800309 ETH
210517122024-10-26 18:53:3591 days ago1729968815
0x21174Ec0...eEe19bEEF
0.12800309 ETH
210516792024-10-26 18:46:5991 days ago1729968419
0x21174Ec0...eEe19bEEF
0.0447899 ETH
210516792024-10-26 18:46:5991 days ago1729968419
0x21174Ec0...eEe19bEEF
0.0447899 ETH
210516792024-10-26 18:46:5991 days ago1729968419
0x21174Ec0...eEe19bEEF
0.01888719 ETH
210516792024-10-26 18:46:5991 days ago1729968419
0x21174Ec0...eEe19bEEF
0.01888719 ETH
210516752024-10-26 18:46:1191 days ago1729968371
0x21174Ec0...eEe19bEEF
0.04338123 ETH
210516752024-10-26 18:46:1191 days ago1729968371
0x21174Ec0...eEe19bEEF
0.04338123 ETH
210516742024-10-26 18:45:5991 days ago1729968359
0x21174Ec0...eEe19bEEF
0.01763162 ETH
210516742024-10-26 18:45:5991 days ago1729968359
0x21174Ec0...eEe19bEEF
0.01763162 ETH
210516732024-10-26 18:45:4791 days ago1729968347
0x21174Ec0...eEe19bEEF
0.03701415 ETH
210516732024-10-26 18:45:4791 days ago1729968347
0x21174Ec0...eEe19bEEF
0.03701415 ETH
210516532024-10-26 18:41:4791 days ago1729968107
0x21174Ec0...eEe19bEEF
0.11100129 ETH
210516532024-10-26 18:41:4791 days ago1729968107
0x21174Ec0...eEe19bEEF
0.11100129 ETH
210516502024-10-26 18:41:1191 days ago1729968071
0x21174Ec0...eEe19bEEF
0.19360748 ETH
210516502024-10-26 18:41:1191 days ago1729968071
0x21174Ec0...eEe19bEEF
0.19360748 ETH
210516472024-10-26 18:40:3591 days ago1729968035
0x21174Ec0...eEe19bEEF
0.01902471 ETH
210516472024-10-26 18:40:3591 days ago1729968035
0x21174Ec0...eEe19bEEF
0.01902471 ETH
210516322024-10-26 18:37:3591 days ago1729967855
0x21174Ec0...eEe19bEEF
0.01254536 ETH
210516322024-10-26 18:37:3591 days ago1729967855
0x21174Ec0...eEe19bEEF
0.01254536 ETH
210516322024-10-26 18:37:3591 days ago1729967855
0x21174Ec0...eEe19bEEF
0.13963579 ETH
210516322024-10-26 18:37:3591 days ago1729967855
0x21174Ec0...eEe19bEEF
0.13963579 ETH
210516312024-10-26 18:37:1191 days ago1729967831
0x21174Ec0...eEe19bEEF
0.04221298 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
GOLDEN

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
No with 200 runs

Other Settings:
paris EvmVersion
File 1 of 1 : Contract.sol
/**

*/

// SPDX-License-Identifier: UNLICENSE

/*
X Twitter: https://x.com/GoldenGBoyETH
Telegram: https://t.me/goldengoodboy_portal
Website : https://www.goldengoodboy.xyz/

*/
pragma solidity 0.8.26;

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

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

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

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

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

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

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

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

}

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

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

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

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

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

}

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

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

contract GOLDEN is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    address payable private _taxWallet;

    uint256 private _initialBuyTax=23;
    uint256 private _initialSellTax=25;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;
    uint256 private _reduceBuyTaxAt=20;
    uint256 private _reduceSellTaxAt=23;
    uint256 private _preventSwapBefore=25;
    uint256 private _transferTax=70;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 420690000000000 * 10**_decimals;
    string private constant _name = unicode"Golden Good Boy";
    string private constant _symbol = unicode"GOLDEN";
    uint256 public _maxTxAmount = 8413800000000 * 10**_decimals;
    uint256 public _maxWalletSize = 8413800000000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 4206900000000  * 10**_decimals;
    uint256 public _maxTaxSwap= 4206900000000  * 10**_decimals;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    uint256 private sellCount = 0;
    uint256 private lastSellBlock = 0;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    event TransferTaxUpdated(uint _tax);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

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

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

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

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

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

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

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

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

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

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

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

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);

            if(_buyCount==0){
                taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
            }
            if(_buyCount>0){
                taxAmount = amount.mul(_transferTax).div(100);
            }

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
                _buyCount++;
            }

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

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold && _buyCount > _preventSwapBefore) {
                if (block.number > lastSellBlock) {
                    sellCount = 0;
                }
                require(sellCount < 3, "Only 3 sells per block!");
                swapTokensForEth(min(amount, min(contractTokenBalance, _maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
                sellCount++;
                lastSellBlock = block.number;
            }
        }

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


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

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

    function GoldenRemoveLimit() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function GoldenRemoveTransfer() external onlyOwner{
        _transferTax = 0;
        emit TransferTaxUpdated(0);
    }

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

    function addBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function delBots(address[] memory notbot) public onlyOwner {
      for (uint i = 0; i < notbot.length; i++) {
          bots[notbot[i]] = false;
      }
    }

    function isBot(address a) public view returns (bool){
      return bots[a];
    }

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

    function GoldenNewTax(uint256 _newFee) external{
        require(_msgSender()==_taxWallet);
        require(_newFee<=_finalBuyTax && _newFee<=_finalSellTax);
        _finalBuyTax=_newFee;
        _finalSellTax=_newFee;
    }

    receive() external payable {}

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

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

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":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_tax","type":"uint256"}],"name":"TransferTaxUpdated","type":"event"},{"inputs":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"GoldenNewTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"GoldenRemoveLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"GoldenRemoveTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"GoldenSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"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":"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"}]

608060405260176006556019600755600060085560006009556014600a556017600b556019600c556046600d556000600e556009600a61003f91906105ca565b6507a6fd8f6a006100509190610615565b600f556009600a61006191906105ca565b6507a6fd8f6a006100729190610615565b6010556009600a61008391906105ca565b6503d37ec7b5006100949190610615565b6011556009600a6100a591906105ca565b6503d37ec7b5006100b69190610615565b6012556000601460156101000a81548160ff0219169083151502179055506000601460166101000a81548160ff02191690831515021790555060006015556000601655600061010961042060201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35073aca0af03ab898a5f656cb5556745358d1362c8b9600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a61020a91906105ca565b66017e9d8602b40061021c9190610615565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060016003600061027361042860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6103f491906105ca565b66017e9d8602b4006104069190610615565b6040516104139190610666565b60405180910390a3610681565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156104d7578086048111156104b3576104b2610451565b5b60018516156104c25780820291505b80810290506104d085610480565b9450610497565b94509492505050565b6000826104f057600190506105ac565b816104fe57600090506105ac565b8160018114610514576002811461051e5761054d565b60019150506105ac565b60ff8411156105305761052f610451565b5b8360020a91508482111561054757610546610451565b5b506105ac565b5060208310610133831016604e8410600b84101617156105825782820a90508381111561057d5761057c610451565b5b6105ac565b61058f848484600161048d565b925090508184048111156105a6576105a5610451565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b60006105d5826105b3565b91506105e0836105bd565b925061060d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846104e0565b905092915050565b6000610620826105b3565b915061062b836105b3565b9250828202610639816105b3565b915082820484148315176106505761064f610451565b5b5092915050565b610660816105b3565b82525050565b600060208201905061067b6000830184610657565b92915050565b6136b3806106906000396000f3fe6080604052600436106101445760003560e01c80637d1db4a5116100b6578063a9059cbb1161006f578063a9059cbb14610421578063bf474bed1461045e578063d34628cc14610489578063d4b97055146104b2578063dd62ed3e146104c9578063ebc5f853146105065761014b565b80637d1db4a5146103475780638a8c523c146103725780638da5cb5b146103895780638f9a55c0146103b457806390f42b4d146103df57806395d89b41146103f65761014b565b806323b872dd1161010857806323b872dd14610225578063313ce5671461026257806331c2d8471461028d5780633bbac579146102b657806370a08231146102f3578063715018a6146103305761014b565b806306fdde0314610150578063095ea7b31461017b5780630faee56f146101b857806318160ddd146101e35780631f081f8f1461020e5761014b565b3661014b57005b600080fd5b34801561015c57600080fd5b5061016561052f565b60405161017291906125bc565b60405180910390f35b34801561018757600080fd5b506101a2600480360381019061019d9190612686565b61056c565b6040516101af91906126e1565b60405180910390f35b3480156101c457600080fd5b506101cd61058a565b6040516101da919061270b565b60405180910390f35b3480156101ef57600080fd5b506101f8610590565b604051610205919061270b565b60405180910390f35b34801561021a57600080fd5b506102236105b7565b005b34801561023157600080fd5b5061024c60048036038101906102479190612726565b61066c565b60405161025991906126e1565b60405180910390f35b34801561026e57600080fd5b50610277610745565b6040516102849190612795565b60405180910390f35b34801561029957600080fd5b506102b460048036038101906102af91906128f8565b61074e565b005b3480156102c257600080fd5b506102dd60048036038101906102d89190612941565b610872565b6040516102ea91906126e1565b60405180910390f35b3480156102ff57600080fd5b5061031a60048036038101906103159190612941565b6108c8565b604051610327919061270b565b60405180910390f35b34801561033c57600080fd5b50610345610911565b005b34801561035357600080fd5b5061035c610a64565b604051610369919061270b565b60405180910390f35b34801561037e57600080fd5b50610387610a6a565b005b34801561039557600080fd5b5061039e610fa2565b6040516103ab919061297d565b60405180910390f35b3480156103c057600080fd5b506103c9610fcb565b6040516103d6919061270b565b60405180910390f35b3480156103eb57600080fd5b506103f4610fd1565b005b34801561040257600080fd5b5061040b61110a565b60405161041891906125bc565b60405180910390f35b34801561042d57600080fd5b5061044860048036038101906104439190612686565b611147565b60405161045591906126e1565b60405180910390f35b34801561046a57600080fd5b50610473611165565b604051610480919061270b565b60405180910390f35b34801561049557600080fd5b506104b060048036038101906104ab91906128f8565b61116b565b005b3480156104be57600080fd5b506104c761128f565b005b3480156104d557600080fd5b506104f060048036038101906104eb9190612998565b611366565b6040516104fd919061270b565b60405180910390f35b34801561051257600080fd5b5061052d600480360381019061052891906129d8565b6113ed565b005b60606040518060400160405280600f81526020017f476f6c64656e20476f6f6420426f790000000000000000000000000000000000815250905090565b600061058061057961147c565b8484611484565b6001905092915050565b60125481565b60006009600a6105a09190612b67565b66017e9d8602b4006105b29190612bb2565b905090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166105f861147c565b73ffffffffffffffffffffffffffffffffffffffff161461061857600080fd5b6000610623306108c8565b90506000811180156106415750601460169054906101000a900460ff165b156106505761064f8161164d565b5b6000479050600081111561066857610667816118c6565b5b5050565b6000610679848484611932565b61073a8461068561147c565b6107358560405180606001604052806028815260200161365660289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106eb61147c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122e09092919063ffffffff16565b611484565b600190509392505050565b60006009905090565b61075661147c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107da90612c40565b60405180910390fd5b60005b815181101561086e5760006004600084848151811061080857610807612c60565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806001019150506107e6565b5050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61091961147c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099d90612c40565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600f5481565b610a7261147c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af690612c40565b60405180910390fd5b60148054906101000a900460ff1615610b4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4490612cdb565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610bee30601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610bd79190612b67565b66017e9d8602b400610be99190612bb2565b611484565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c7f9190612d10565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d2c9190612d10565b6040518363ffffffff1660e01b8152600401610d49929190612d3d565b6020604051808303816000875af1158015610d68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d8c9190612d10565b601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610e15306108c8565b600080610e20610fa2565b426040518863ffffffff1660e01b8152600401610e4296959493929190612dab565b60606040518083038185885af1158015610e60573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610e859190612e21565b505050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610f27929190612e74565b6020604051808303816000875af1158015610f46573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f6a9190612ec9565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b610fd961147c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611066576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105d90612c40565b60405180910390fd5b6009600a6110749190612b67565b66017e9d8602b4006110869190612bb2565b600f819055506009600a61109a9190612b67565b66017e9d8602b4006110ac9190612bb2565b6010819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a6110e19190612b67565b66017e9d8602b4006110f39190612bb2565b604051611100919061270b565b60405180910390a1565b60606040518060400160405280600681526020017f474f4c44454e0000000000000000000000000000000000000000000000000000815250905090565b600061115b61115461147c565b8484611932565b6001905092915050565b60115481565b61117361147c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611200576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f790612c40565b60405180910390fd5b60005b815181101561128b5760016004600084848151811061122557611224612c60565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080600101915050611203565b5050565b61129761147c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611324576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131b90612c40565b60405180910390fd5b6000600d819055507fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de3600060405161135c9190612ef6565b60405180910390a1565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661142e61147c565b73ffffffffffffffffffffffffffffffffffffffff161461144e57600080fd5b600854811115801561146257506009548111155b61146b57600080fd5b806008819055508060098190555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ea90612f83565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611562576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155990613015565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611640919061270b565b60405180910390a3505050565b6001601460156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611685576116846127b5565b5b6040519080825280602002602001820160405280156116b35781602001602082028036833780820191505090505b50905030816000815181106116cb576116ca612c60565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611772573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117969190612d10565b816001815181106117aa576117a9612c60565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061181130601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611484565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016118759594939291906130f3565b600060405180830381600087803b15801561188f57600080fd5b505af11580156118a3573d6000803e3d6000fd5b50505050506000601460156101000a81548160ff02191690831515021790555050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561192e573d6000803e3d6000fd5b5050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036119a1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611998906131bf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0790613251565b60405180910390fd5b60008111611a53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4a906132e3565b60405180910390fd5b6000611a5d610fa2565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611acb5750611a9b610fa2565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561202357600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611b745750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611b7d57600080fd5b6000600e5403611bc657611bc36064611bb5600a54600e5411611ba257600654611ba6565b6008545b8561234490919063ffffffff16565b6123be90919063ffffffff16565b90505b6000600e541115611bfc57611bf96064611beb600d548561234490919063ffffffff16565b6123be90919063ffffffff16565b90505b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611ca75750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611cfd5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611df657600f54821115611d47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3e9061334f565b60405180910390fd5b60105482611d54856108c8565b611d5e919061336f565b1115611d9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d96906133ef565b60405180910390fd5b611ddb6064611dcd600a54600e5411611dba57600654611dbe565b6008545b8561234490919063ffffffff16565b6123be90919063ffffffff16565b9050600e6000815480929190611df09061340f565b91905055505b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611e7f57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611ec357611ec06064611eb2600b54600e5411611e9f57600754611ea3565b6009545b8561234490919063ffffffff16565b6123be90919063ffffffff16565b90505b6000611ece306108c8565b9050601460159054906101000a900460ff16158015611f3a5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611f525750601460169054906101000a900460ff165b8015611f5f575060115481115b8015611f6e5750600c54600e54115b1561202157601654431115611f865760006015819055505b600360155410611fcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc2906134a3565b60405180910390fd5b611fe8611fe384611fde84601254612408565b612408565b61164d565b6000479050600081111561200057611fff476118c6565b5b601560008154809291906120139061340f565b919050555043601681905550505b505b60008111156121275761207e81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461242190919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161211e919061270b565b60405180910390a35b61217982600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461247f90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506122206121d2828461247f90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461242190919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6122c5848661247f90919063ffffffff16565b6040516122d2919061270b565b60405180910390a350505050565b6000838311158290612328576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161231f91906125bc565b60405180910390fd5b506000838561233791906134c3565b9050809150509392505050565b600080830361235657600090506123b8565b600082846123649190612bb2565b90508284826123739190613526565b146123b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123aa906135c9565b60405180910390fd5b809150505b92915050565b600061240083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506124c9565b905092915050565b60008183116124175782612419565b815b905092915050565b6000808284612430919061336f565b905083811015612475576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161246c90613635565b60405180910390fd5b8091505092915050565b60006124c183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506122e0565b905092915050565b60008083118290612510576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161250791906125bc565b60405180910390fd5b506000838561251f9190613526565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561256657808201518184015260208101905061254b565b60008484015250505050565b6000601f19601f8301169050919050565b600061258e8261252c565b6125988185612537565b93506125a8818560208601612548565b6125b181612572565b840191505092915050565b600060208201905081810360008301526125d68184612583565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061261d826125f2565b9050919050565b61262d81612612565b811461263857600080fd5b50565b60008135905061264a81612624565b92915050565b6000819050919050565b61266381612650565b811461266e57600080fd5b50565b6000813590506126808161265a565b92915050565b6000806040838503121561269d5761269c6125e8565b5b60006126ab8582860161263b565b92505060206126bc85828601612671565b9150509250929050565b60008115159050919050565b6126db816126c6565b82525050565b60006020820190506126f660008301846126d2565b92915050565b61270581612650565b82525050565b600060208201905061272060008301846126fc565b92915050565b60008060006060848603121561273f5761273e6125e8565b5b600061274d8682870161263b565b935050602061275e8682870161263b565b925050604061276f86828701612671565b9150509250925092565b600060ff82169050919050565b61278f81612779565b82525050565b60006020820190506127aa6000830184612786565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6127ed82612572565b810181811067ffffffffffffffff8211171561280c5761280b6127b5565b5b80604052505050565b600061281f6125de565b905061282b82826127e4565b919050565b600067ffffffffffffffff82111561284b5761284a6127b5565b5b602082029050602081019050919050565b600080fd5b600061287461286f84612830565b612815565b905080838252602082019050602084028301858111156128975761289661285c565b5b835b818110156128c057806128ac888261263b565b845260208401935050602081019050612899565b5050509392505050565b600082601f8301126128df576128de6127b0565b5b81356128ef848260208601612861565b91505092915050565b60006020828403121561290e5761290d6125e8565b5b600082013567ffffffffffffffff81111561292c5761292b6125ed565b5b612938848285016128ca565b91505092915050565b600060208284031215612957576129566125e8565b5b60006129658482850161263b565b91505092915050565b61297781612612565b82525050565b6000602082019050612992600083018461296e565b92915050565b600080604083850312156129af576129ae6125e8565b5b60006129bd8582860161263b565b92505060206129ce8582860161263b565b9150509250929050565b6000602082840312156129ee576129ed6125e8565b5b60006129fc84828501612671565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612a8b57808604811115612a6757612a66612a05565b5b6001851615612a765780820291505b8081029050612a8485612a34565b9450612a4b565b94509492505050565b600082612aa45760019050612b60565b81612ab25760009050612b60565b8160018114612ac85760028114612ad257612b01565b6001915050612b60565b60ff841115612ae457612ae3612a05565b5b8360020a915084821115612afb57612afa612a05565b5b50612b60565b5060208310610133831016604e8410600b8410161715612b365782820a905083811115612b3157612b30612a05565b5b612b60565b612b438484846001612a41565b92509050818404811115612b5a57612b59612a05565b5b81810290505b9392505050565b6000612b7282612650565b9150612b7d83612779565b9250612baa7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612a94565b905092915050565b6000612bbd82612650565b9150612bc883612650565b9250828202612bd681612650565b91508282048414831517612bed57612bec612a05565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612c2a602083612537565b9150612c3582612bf4565b602082019050919050565b60006020820190508181036000830152612c5981612c1d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612cc5601783612537565b9150612cd082612c8f565b602082019050919050565b60006020820190508181036000830152612cf481612cb8565b9050919050565b600081519050612d0a81612624565b92915050565b600060208284031215612d2657612d256125e8565b5b6000612d3484828501612cfb565b91505092915050565b6000604082019050612d52600083018561296e565b612d5f602083018461296e565b9392505050565b6000819050919050565b6000819050919050565b6000612d95612d90612d8b84612d66565b612d70565b612650565b9050919050565b612da581612d7a565b82525050565b600060c082019050612dc0600083018961296e565b612dcd60208301886126fc565b612dda6040830187612d9c565b612de76060830186612d9c565b612df4608083018561296e565b612e0160a08301846126fc565b979650505050505050565b600081519050612e1b8161265a565b92915050565b600080600060608486031215612e3a57612e396125e8565b5b6000612e4886828701612e0c565b9350506020612e5986828701612e0c565b9250506040612e6a86828701612e0c565b9150509250925092565b6000604082019050612e89600083018561296e565b612e9660208301846126fc565b9392505050565b612ea6816126c6565b8114612eb157600080fd5b50565b600081519050612ec381612e9d565b92915050565b600060208284031215612edf57612ede6125e8565b5b6000612eed84828501612eb4565b91505092915050565b6000602082019050612f0b6000830184612d9c565b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612f6d602483612537565b9150612f7882612f11565b604082019050919050565b60006020820190508181036000830152612f9c81612f60565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612fff602283612537565b915061300a82612fa3565b604082019050919050565b6000602082019050818103600083015261302e81612ff2565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61306a81612612565b82525050565b600061307c8383613061565b60208301905092915050565b6000602082019050919050565b60006130a082613035565b6130aa8185613040565b93506130b583613051565b8060005b838110156130e65781516130cd8882613070565b97506130d883613088565b9250506001810190506130b9565b5085935050505092915050565b600060a08201905061310860008301886126fc565b6131156020830187612d9c565b81810360408301526131278186613095565b9050613136606083018561296e565b61314360808301846126fc565b9695505050505050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006131a9602583612537565b91506131b48261314d565b604082019050919050565b600060208201905081810360008301526131d88161319c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061323b602383612537565b9150613246826131df565b604082019050919050565b6000602082019050818103600083015261326a8161322e565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006132cd602983612537565b91506132d882613271565b604082019050919050565b600060208201905081810360008301526132fc816132c0565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000613339601983612537565b915061334482613303565b602082019050919050565b600060208201905081810360008301526133688161332c565b9050919050565b600061337a82612650565b915061338583612650565b925082820190508082111561339d5761339c612a05565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b60006133d9601a83612537565b91506133e4826133a3565b602082019050919050565b60006020820190508181036000830152613408816133cc565b9050919050565b600061341a82612650565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361344c5761344b612a05565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b21000000000000000000600082015250565b600061348d601783612537565b915061349882613457565b602082019050919050565b600060208201905081810360008301526134bc81613480565b9050919050565b60006134ce82612650565b91506134d983612650565b92508282039050818111156134f1576134f0612a05565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061353182612650565b915061353c83612650565b92508261354c5761354b6134f7565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006135b3602183612537565b91506135be82613557565b604082019050919050565b600060208201905081810360008301526135e2816135a6565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061361f601b83612537565b915061362a826135e9565b602082019050919050565b6000602082019050818103600083015261364e81613612565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212207407a3fd8cfda914a7676d5eb13acb0e9e6032d8f1f9713dc5b13220efef5e1764736f6c634300081a0033

Deployed Bytecode

0x6080604052600436106101445760003560e01c80637d1db4a5116100b6578063a9059cbb1161006f578063a9059cbb14610421578063bf474bed1461045e578063d34628cc14610489578063d4b97055146104b2578063dd62ed3e146104c9578063ebc5f853146105065761014b565b80637d1db4a5146103475780638a8c523c146103725780638da5cb5b146103895780638f9a55c0146103b457806390f42b4d146103df57806395d89b41146103f65761014b565b806323b872dd1161010857806323b872dd14610225578063313ce5671461026257806331c2d8471461028d5780633bbac579146102b657806370a08231146102f3578063715018a6146103305761014b565b806306fdde0314610150578063095ea7b31461017b5780630faee56f146101b857806318160ddd146101e35780631f081f8f1461020e5761014b565b3661014b57005b600080fd5b34801561015c57600080fd5b5061016561052f565b60405161017291906125bc565b60405180910390f35b34801561018757600080fd5b506101a2600480360381019061019d9190612686565b61056c565b6040516101af91906126e1565b60405180910390f35b3480156101c457600080fd5b506101cd61058a565b6040516101da919061270b565b60405180910390f35b3480156101ef57600080fd5b506101f8610590565b604051610205919061270b565b60405180910390f35b34801561021a57600080fd5b506102236105b7565b005b34801561023157600080fd5b5061024c60048036038101906102479190612726565b61066c565b60405161025991906126e1565b60405180910390f35b34801561026e57600080fd5b50610277610745565b6040516102849190612795565b60405180910390f35b34801561029957600080fd5b506102b460048036038101906102af91906128f8565b61074e565b005b3480156102c257600080fd5b506102dd60048036038101906102d89190612941565b610872565b6040516102ea91906126e1565b60405180910390f35b3480156102ff57600080fd5b5061031a60048036038101906103159190612941565b6108c8565b604051610327919061270b565b60405180910390f35b34801561033c57600080fd5b50610345610911565b005b34801561035357600080fd5b5061035c610a64565b604051610369919061270b565b60405180910390f35b34801561037e57600080fd5b50610387610a6a565b005b34801561039557600080fd5b5061039e610fa2565b6040516103ab919061297d565b60405180910390f35b3480156103c057600080fd5b506103c9610fcb565b6040516103d6919061270b565b60405180910390f35b3480156103eb57600080fd5b506103f4610fd1565b005b34801561040257600080fd5b5061040b61110a565b60405161041891906125bc565b60405180910390f35b34801561042d57600080fd5b5061044860048036038101906104439190612686565b611147565b60405161045591906126e1565b60405180910390f35b34801561046a57600080fd5b50610473611165565b604051610480919061270b565b60405180910390f35b34801561049557600080fd5b506104b060048036038101906104ab91906128f8565b61116b565b005b3480156104be57600080fd5b506104c761128f565b005b3480156104d557600080fd5b506104f060048036038101906104eb9190612998565b611366565b6040516104fd919061270b565b60405180910390f35b34801561051257600080fd5b5061052d600480360381019061052891906129d8565b6113ed565b005b60606040518060400160405280600f81526020017f476f6c64656e20476f6f6420426f790000000000000000000000000000000000815250905090565b600061058061057961147c565b8484611484565b6001905092915050565b60125481565b60006009600a6105a09190612b67565b66017e9d8602b4006105b29190612bb2565b905090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166105f861147c565b73ffffffffffffffffffffffffffffffffffffffff161461061857600080fd5b6000610623306108c8565b90506000811180156106415750601460169054906101000a900460ff165b156106505761064f8161164d565b5b6000479050600081111561066857610667816118c6565b5b5050565b6000610679848484611932565b61073a8461068561147c565b6107358560405180606001604052806028815260200161365660289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106eb61147c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122e09092919063ffffffff16565b611484565b600190509392505050565b60006009905090565b61075661147c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107da90612c40565b60405180910390fd5b60005b815181101561086e5760006004600084848151811061080857610807612c60565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806001019150506107e6565b5050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61091961147c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099d90612c40565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600f5481565b610a7261147c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af690612c40565b60405180910390fd5b60148054906101000a900460ff1615610b4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4490612cdb565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610bee30601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610bd79190612b67565b66017e9d8602b400610be99190612bb2565b611484565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c7f9190612d10565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d2c9190612d10565b6040518363ffffffff1660e01b8152600401610d49929190612d3d565b6020604051808303816000875af1158015610d68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d8c9190612d10565b601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610e15306108c8565b600080610e20610fa2565b426040518863ffffffff1660e01b8152600401610e4296959493929190612dab565b60606040518083038185885af1158015610e60573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610e859190612e21565b505050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610f27929190612e74565b6020604051808303816000875af1158015610f46573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f6a9190612ec9565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b610fd961147c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611066576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105d90612c40565b60405180910390fd5b6009600a6110749190612b67565b66017e9d8602b4006110869190612bb2565b600f819055506009600a61109a9190612b67565b66017e9d8602b4006110ac9190612bb2565b6010819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a6110e19190612b67565b66017e9d8602b4006110f39190612bb2565b604051611100919061270b565b60405180910390a1565b60606040518060400160405280600681526020017f474f4c44454e0000000000000000000000000000000000000000000000000000815250905090565b600061115b61115461147c565b8484611932565b6001905092915050565b60115481565b61117361147c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611200576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f790612c40565b60405180910390fd5b60005b815181101561128b5760016004600084848151811061122557611224612c60565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080600101915050611203565b5050565b61129761147c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611324576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131b90612c40565b60405180910390fd5b6000600d819055507fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de3600060405161135c9190612ef6565b60405180910390a1565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661142e61147c565b73ffffffffffffffffffffffffffffffffffffffff161461144e57600080fd5b600854811115801561146257506009548111155b61146b57600080fd5b806008819055508060098190555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ea90612f83565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611562576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155990613015565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611640919061270b565b60405180910390a3505050565b6001601460156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611685576116846127b5565b5b6040519080825280602002602001820160405280156116b35781602001602082028036833780820191505090505b50905030816000815181106116cb576116ca612c60565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611772573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117969190612d10565b816001815181106117aa576117a9612c60565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061181130601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611484565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016118759594939291906130f3565b600060405180830381600087803b15801561188f57600080fd5b505af11580156118a3573d6000803e3d6000fd5b50505050506000601460156101000a81548160ff02191690831515021790555050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561192e573d6000803e3d6000fd5b5050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036119a1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611998906131bf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0790613251565b60405180910390fd5b60008111611a53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4a906132e3565b60405180910390fd5b6000611a5d610fa2565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611acb5750611a9b610fa2565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561202357600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611b745750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611b7d57600080fd5b6000600e5403611bc657611bc36064611bb5600a54600e5411611ba257600654611ba6565b6008545b8561234490919063ffffffff16565b6123be90919063ffffffff16565b90505b6000600e541115611bfc57611bf96064611beb600d548561234490919063ffffffff16565b6123be90919063ffffffff16565b90505b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611ca75750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611cfd5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611df657600f54821115611d47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3e9061334f565b60405180910390fd5b60105482611d54856108c8565b611d5e919061336f565b1115611d9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d96906133ef565b60405180910390fd5b611ddb6064611dcd600a54600e5411611dba57600654611dbe565b6008545b8561234490919063ffffffff16565b6123be90919063ffffffff16565b9050600e6000815480929190611df09061340f565b91905055505b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611e7f57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611ec357611ec06064611eb2600b54600e5411611e9f57600754611ea3565b6009545b8561234490919063ffffffff16565b6123be90919063ffffffff16565b90505b6000611ece306108c8565b9050601460159054906101000a900460ff16158015611f3a5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611f525750601460169054906101000a900460ff165b8015611f5f575060115481115b8015611f6e5750600c54600e54115b1561202157601654431115611f865760006015819055505b600360155410611fcb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc2906134a3565b60405180910390fd5b611fe8611fe384611fde84601254612408565b612408565b61164d565b6000479050600081111561200057611fff476118c6565b5b601560008154809291906120139061340f565b919050555043601681905550505b505b60008111156121275761207e81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461242190919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161211e919061270b565b60405180910390a35b61217982600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461247f90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506122206121d2828461247f90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461242190919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6122c5848661247f90919063ffffffff16565b6040516122d2919061270b565b60405180910390a350505050565b6000838311158290612328576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161231f91906125bc565b60405180910390fd5b506000838561233791906134c3565b9050809150509392505050565b600080830361235657600090506123b8565b600082846123649190612bb2565b90508284826123739190613526565b146123b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123aa906135c9565b60405180910390fd5b809150505b92915050565b600061240083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506124c9565b905092915050565b60008183116124175782612419565b815b905092915050565b6000808284612430919061336f565b905083811015612475576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161246c90613635565b60405180910390fd5b8091505092915050565b60006124c183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506122e0565b905092915050565b60008083118290612510576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161250791906125bc565b60405180910390fd5b506000838561251f9190613526565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561256657808201518184015260208101905061254b565b60008484015250505050565b6000601f19601f8301169050919050565b600061258e8261252c565b6125988185612537565b93506125a8818560208601612548565b6125b181612572565b840191505092915050565b600060208201905081810360008301526125d68184612583565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061261d826125f2565b9050919050565b61262d81612612565b811461263857600080fd5b50565b60008135905061264a81612624565b92915050565b6000819050919050565b61266381612650565b811461266e57600080fd5b50565b6000813590506126808161265a565b92915050565b6000806040838503121561269d5761269c6125e8565b5b60006126ab8582860161263b565b92505060206126bc85828601612671565b9150509250929050565b60008115159050919050565b6126db816126c6565b82525050565b60006020820190506126f660008301846126d2565b92915050565b61270581612650565b82525050565b600060208201905061272060008301846126fc565b92915050565b60008060006060848603121561273f5761273e6125e8565b5b600061274d8682870161263b565b935050602061275e8682870161263b565b925050604061276f86828701612671565b9150509250925092565b600060ff82169050919050565b61278f81612779565b82525050565b60006020820190506127aa6000830184612786565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6127ed82612572565b810181811067ffffffffffffffff8211171561280c5761280b6127b5565b5b80604052505050565b600061281f6125de565b905061282b82826127e4565b919050565b600067ffffffffffffffff82111561284b5761284a6127b5565b5b602082029050602081019050919050565b600080fd5b600061287461286f84612830565b612815565b905080838252602082019050602084028301858111156128975761289661285c565b5b835b818110156128c057806128ac888261263b565b845260208401935050602081019050612899565b5050509392505050565b600082601f8301126128df576128de6127b0565b5b81356128ef848260208601612861565b91505092915050565b60006020828403121561290e5761290d6125e8565b5b600082013567ffffffffffffffff81111561292c5761292b6125ed565b5b612938848285016128ca565b91505092915050565b600060208284031215612957576129566125e8565b5b60006129658482850161263b565b91505092915050565b61297781612612565b82525050565b6000602082019050612992600083018461296e565b92915050565b600080604083850312156129af576129ae6125e8565b5b60006129bd8582860161263b565b92505060206129ce8582860161263b565b9150509250929050565b6000602082840312156129ee576129ed6125e8565b5b60006129fc84828501612671565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612a8b57808604811115612a6757612a66612a05565b5b6001851615612a765780820291505b8081029050612a8485612a34565b9450612a4b565b94509492505050565b600082612aa45760019050612b60565b81612ab25760009050612b60565b8160018114612ac85760028114612ad257612b01565b6001915050612b60565b60ff841115612ae457612ae3612a05565b5b8360020a915084821115612afb57612afa612a05565b5b50612b60565b5060208310610133831016604e8410600b8410161715612b365782820a905083811115612b3157612b30612a05565b5b612b60565b612b438484846001612a41565b92509050818404811115612b5a57612b59612a05565b5b81810290505b9392505050565b6000612b7282612650565b9150612b7d83612779565b9250612baa7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612a94565b905092915050565b6000612bbd82612650565b9150612bc883612650565b9250828202612bd681612650565b91508282048414831517612bed57612bec612a05565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612c2a602083612537565b9150612c3582612bf4565b602082019050919050565b60006020820190508181036000830152612c5981612c1d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612cc5601783612537565b9150612cd082612c8f565b602082019050919050565b60006020820190508181036000830152612cf481612cb8565b9050919050565b600081519050612d0a81612624565b92915050565b600060208284031215612d2657612d256125e8565b5b6000612d3484828501612cfb565b91505092915050565b6000604082019050612d52600083018561296e565b612d5f602083018461296e565b9392505050565b6000819050919050565b6000819050919050565b6000612d95612d90612d8b84612d66565b612d70565b612650565b9050919050565b612da581612d7a565b82525050565b600060c082019050612dc0600083018961296e565b612dcd60208301886126fc565b612dda6040830187612d9c565b612de76060830186612d9c565b612df4608083018561296e565b612e0160a08301846126fc565b979650505050505050565b600081519050612e1b8161265a565b92915050565b600080600060608486031215612e3a57612e396125e8565b5b6000612e4886828701612e0c565b9350506020612e5986828701612e0c565b9250506040612e6a86828701612e0c565b9150509250925092565b6000604082019050612e89600083018561296e565b612e9660208301846126fc565b9392505050565b612ea6816126c6565b8114612eb157600080fd5b50565b600081519050612ec381612e9d565b92915050565b600060208284031215612edf57612ede6125e8565b5b6000612eed84828501612eb4565b91505092915050565b6000602082019050612f0b6000830184612d9c565b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612f6d602483612537565b9150612f7882612f11565b604082019050919050565b60006020820190508181036000830152612f9c81612f60565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612fff602283612537565b915061300a82612fa3565b604082019050919050565b6000602082019050818103600083015261302e81612ff2565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61306a81612612565b82525050565b600061307c8383613061565b60208301905092915050565b6000602082019050919050565b60006130a082613035565b6130aa8185613040565b93506130b583613051565b8060005b838110156130e65781516130cd8882613070565b97506130d883613088565b9250506001810190506130b9565b5085935050505092915050565b600060a08201905061310860008301886126fc565b6131156020830187612d9c565b81810360408301526131278186613095565b9050613136606083018561296e565b61314360808301846126fc565b9695505050505050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006131a9602583612537565b91506131b48261314d565b604082019050919050565b600060208201905081810360008301526131d88161319c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061323b602383612537565b9150613246826131df565b604082019050919050565b6000602082019050818103600083015261326a8161322e565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006132cd602983612537565b91506132d882613271565b604082019050919050565b600060208201905081810360008301526132fc816132c0565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000613339601983612537565b915061334482613303565b602082019050919050565b600060208201905081810360008301526133688161332c565b9050919050565b600061337a82612650565b915061338583612650565b925082820190508082111561339d5761339c612a05565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b60006133d9601a83612537565b91506133e4826133a3565b602082019050919050565b60006020820190508181036000830152613408816133cc565b9050919050565b600061341a82612650565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361344c5761344b612a05565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b21000000000000000000600082015250565b600061348d601783612537565b915061349882613457565b602082019050919050565b600060208201905081810360008301526134bc81613480565b9050919050565b60006134ce82612650565b91506134d983612650565b92508282039050818111156134f1576134f0612a05565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061353182612650565b915061353c83612650565b92508261354c5761354b6134f7565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006135b3602183612537565b91506135be82613557565b604082019050919050565b600060208201905081810360008301526135e2816135a6565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061361f601b83612537565b915061362a826135e9565b602082019050919050565b6000602082019050818103600083015261364e81613612565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212207407a3fd8cfda914a7676d5eb13acb0e9e6032d8f1f9713dc5b13220efef5e1764736f6c634300081a0033

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.