ETH Price: $3,744.86 (-0.06%)
Gas: 6 Gwei

Contract

0xBADD981A34319371481d9F3d2A387c8bDAd9fAD1
 

Overview

ETH Balance

11.84818126 ETH

Eth Value

$44,369.75 (@ $3,744.86/ETH)

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Value
Get Son155592942022-09-18 8:38:35621 days ago1663490315IN
0xBADD981A...bDAd9fAD1
0 ETH0.000057032
Giver To Vitalik121323552021-03-29 5:52:101159 days ago1616997130IN
0xBADD981A...bDAd9fAD1
0 ETH0.0019930881
Withdraw Deposit...115607082020-12-31 8:08:351247 days ago1609402115IN
0xBADD981A...bDAd9fAD1
0 ETH0.0035085482.05786
Get Son115515202020-12-29 22:15:591249 days ago1609280159IN
0xBADD981A...bDAd9fAD1
0 ETH0.0018002464.26000148
Get Son115515192020-12-29 22:15:361249 days ago1609280136IN
0xBADD981A...bDAd9fAD1
0 ETH0.0018002464.26000148
Get Son115073462020-12-23 3:30:321255 days ago1608694232IN
0xBADD981A...bDAd9fAD1
0 ETH0.0017929664
Withdraw Deposit...114874792020-12-20 2:27:121258 days ago1608431232IN
0xBADD981A...bDAd9fAD1
0 ETH0.00591748138.39793
Withdraw Deposit...114369812020-12-12 8:22:151266 days ago1607761335IN
0xBADD981A...bDAd9fAD1
0 ETH0.0006583922.5
Withdraw Deposit...114369742020-12-12 8:19:491266 days ago1607761189IN
0xBADD981A...bDAd9fAD1
0 ETH0.0011588222.00000001
Withdraw Deposit...114369742020-12-12 8:19:491266 days ago1607761189IN
0xBADD981A...bDAd9fAD1
0 ETH0.0009406522.00000001
Withdraw Deposit...114366062020-12-12 7:03:491266 days ago1607756629IN
0xBADD981A...bDAd9fAD1
0 ETH0.0008551420
Withdraw Deposit...114365192020-12-12 6:44:291266 days ago1607755469IN
0xBADD981A...bDAd9fAD1
0 ETH0.0008551420
Withdraw Deposit...114364612020-12-12 6:30:261266 days ago1607754626IN
0xBADD981A...bDAd9fAD1
0 ETH0.0006618521.00000145
Withdraw Deposit...114364602020-12-12 6:30:241266 days ago1607754624IN
0xBADD981A...bDAd9fAD1
0 ETH0.0008978921.00000145
Withdraw Deposit...114364602020-12-12 6:30:241266 days ago1607754624IN
0xBADD981A...bDAd9fAD1
0 ETH0.0013534820.00000145
Withdraw Deposit...114364452020-12-12 6:26:301266 days ago1607754390IN
0xBADD981A...bDAd9fAD1
0 ETH0.0013534820
Withdraw Deposit...114364422020-12-12 6:25:461266 days ago1607754346IN
0xBADD981A...bDAd9fAD1
0 ETH0.0014537334
Withdraw Deposit...114364182020-12-12 6:19:151266 days ago1607753955IN
0xBADD981A...bDAd9fAD1
0 ETH0.0012181318
Withdraw Deposit...114364182020-12-12 6:19:151266 days ago1607753955IN
0xBADD981A...bDAd9fAD1
0 ETH0.0007696218
Withdraw Deposit...114364082020-12-12 6:17:171266 days ago1607753837IN
0xBADD981A...bDAd9fAD1
0 ETH0.0013534820
Withdraw Deposit...114364082020-12-12 6:17:171266 days ago1607753837IN
0xBADD981A...bDAd9fAD1
0 ETH0.0008551420
Get Son113965562020-12-06 2:58:291272 days ago1607223509IN
0xBADD981A...bDAd9fAD1
0 ETH0.0007283926
Get Son113965482020-12-06 2:57:071272 days ago1607223427IN
0xBADD981A...bDAd9fAD1
0 ETH0.0008124329
Withdraw Deposit...113782742020-12-03 7:22:431275 days ago1606980163IN
0xBADD981A...bDAd9fAD1
0 ETH0.0021655632
Withdraw Deposit...113782732020-12-03 7:22:291275 days ago1606980149IN
0xBADD981A...bDAd9fAD1
0 ETH0.0013682232
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To Value
121323552021-03-29 5:52:101159 days ago1616997130
0xBADD981A...bDAd9fAD1
172.386974 ETH
115607082020-12-31 8:08:351247 days ago1609402115
0xBADD981A...bDAd9fAD1
0.8 ETH
114874792020-12-20 2:27:121258 days ago1608431232
0xBADD981A...bDAd9fAD1
1 ETH
114369742020-12-12 8:19:491266 days ago1607761189
0xBADD981A...bDAd9fAD1
5 ETH
114366062020-12-12 7:03:491266 days ago1607756629
0xBADD981A...bDAd9fAD1
5 ETH
114365192020-12-12 6:44:291266 days ago1607755469
0xBADD981A...bDAd9fAD1
5 ETH
114364602020-12-12 6:30:241266 days ago1607754624
0xBADD981A...bDAd9fAD1
5 ETH
114364422020-12-12 6:25:461266 days ago1607754346
0xBADD981A...bDAd9fAD1
5 ETH
114364182020-12-12 6:19:151266 days ago1607753955
0xBADD981A...bDAd9fAD1
5 ETH
114364082020-12-12 6:17:171266 days ago1607753837
0xBADD981A...bDAd9fAD1
5 ETH
113782732020-12-03 7:22:291275 days ago1606980149
0xBADD981A...bDAd9fAD1
3 ETH
113648362020-12-01 5:43:511277 days ago1606801431
0xBADD981A...bDAd9fAD1
2.895 ETH
113588962020-11-30 8:04:521278 days ago1606723492
0xBADD981A...bDAd9fAD1
4.9 ETH
113578512020-11-30 4:16:341278 days ago1606709794
0xBADD981A...bDAd9fAD1
1 ETH
113505952020-11-29 1:27:581279 days ago1606613278
0xBADD981A...bDAd9fAD1
1 ETH
113467902020-11-28 11:44:181280 days ago1606563858
0xBADD981A...bDAd9fAD1
1 ETH
113467272020-11-28 11:29:251280 days ago1606562965
0xBADD981A...bDAd9fAD1
1 ETH
113284192020-11-25 15:52:331283 days ago1606319553
0xBADD981A...bDAd9fAD1
4.9 ETH
113249192020-11-25 2:42:371283 days ago1606272157
0xBADD981A...bDAd9fAD1
0.5 ETH
113187242020-11-24 4:08:151284 days ago1606190895
0xBADD981A...bDAd9fAD1
1 ETH
113181252020-11-24 1:54:431284 days ago1606182883
0xBADD981A...bDAd9fAD1
0.34 ETH
113177772020-11-24 0:42:231284 days ago1606178543
0xBADD981A...bDAd9fAD1
0.1 ETH
113149552020-11-23 14:14:121285 days ago1606140852
0xBADD981A...bDAd9fAD1
0.85 ETH
113148312020-11-23 13:47:441285 days ago1606139264
0xBADD981A...bDAd9fAD1
0.1 ETH
113117452020-11-23 2:18:191285 days ago1606097899
0xBADD981A...bDAd9fAD1
0.88 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Distribute

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2020-09-27
*/

//SPDX-License-Identifier: UNLICENSED
pragma solidity 0.6.12;


interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `sender` to `recipient` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);
}


library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     *
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     *
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts with custom message when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}



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

    function _msgData() internal view virtual returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}


library TransferHelper {
    function safeApprove(address token, address to, uint value) internal {
        // bytes4(keccak256(bytes('approve(address,uint256)')));
        (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0x095ea7b3, to, value));
        require(success && (data.length == 0 || abi.decode(data, (bool))), 'TransferHelper: APPROVE_FAILED');
    }

    function safeTransfer(address token, address to, uint value) internal {
        // bytes4(keccak256(bytes('transfer(address,uint256)')));
        (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0xa9059cbb, to, value));
        require(success && (data.length == 0 || abi.decode(data, (bool))), 'TransferHelper: TRANSFER_FAILED');
    }

    function safeTransferFrom(address token, address from, address to, uint value) internal {
        // bytes4(keccak256(bytes('transferFrom(address,address,uint256)')));
        (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0x23b872dd, from, to, value));
        require(success && (data.length == 0 || abi.decode(data, (bool))), 'TransferHelper: TRANSFER_FROM_FAILED');
    }

    function safeTransferETH(address to, uint value) internal {
        (bool success,) = to.call{value:value}(new bytes(0));
        require(success, 'TransferHelper: ETH_TRANSFER_FAILED');
    }
}



contract Distribute is Context {
    using SafeMath for uint;

    mapping(address => bool) public isParticipate;

    mapping(address => uint256) public giverBalance; 

    struct UserInfo {
        uint256 value;

        uint256 flagBlock;

        uint256 preBlockReward;

        uint256 withdraw;
    }

    mapping(address => UserInfo) userDepositInfo;

    //time params
    uint256 public  getSonEndTime;

    uint256 public  giveSonEndTime;

    uint256 public  depositEndBlock;

    //balance params
    uint256 public getBalance;

    uint256 public stakeBalance;

    uint256 public giveEthBalance;
   
    uint256 public giveVitalikEtherValue;

    //balance to giver
    uint256 private constant PER_GET_REWARD = 2 ether;

    uint256 private constant PER_DEPOSIT_REWARD = 50 ether;  

    uint256 private constant PER_GIVER_REWARD =  150 ether;
    
    //limited value
    uint256 private constant MAX_GIVER_VALUE = 3 ether;

    uint256 private constant MAX_DEPOSIT_VALUE = 5 ether;

    //STAKE_BLOCK must > depositEndBlock
    uint256 private constant STAKE_BLOCK = 288000;

    uint256 public constant GIVE_VITALIK_BLOCK_TIME = 1612022400;

    //address
    address public constant VITALIK_ADDRESS = address(0xAb5801a7D398351b8bE11C439e05C5B3259aeC9B);
    
    address public dev;

    //flag
    bool private isInnit;
 
    uint private unlocked = 1;
 
    IERC20  son;

    event GetSon(address getAddress);
    event DepositeGetSon(address getAddress, uint256 value);
    event WithdrawDepositReward(address user, uint256 value);
    event WithdrawDepositEther(address user, uint256 value);
    event Unlock(address user, address value);
    event GiverGetSon(address getAddress, uint256 giverEtherValue);
    event GiverToVitalik(address _vitalikAddress, uint256 value);
    event TransferDev(address oldDev, address newDev);

    constructor()public {
        dev = msg.sender;
    }

    receive() external payable {

    }

    modifier lock() {
        require(unlocked == 1, 'Son Distribute: LOCKED');
        unlocked = 0;
        _;
        unlocked = 1;
    }
    
    //init son Address;
    function initSon(address sonAddress) public {
        require(!isInnit,"Son Distribute: is already init");

        require(msg.sender == dev);

        son = IERC20(sonAddress);

        getSonEndTime = block.timestamp + 15 days;

        giveSonEndTime = block.timestamp + 15 days;

        depositEndBlock = block.number + 86400;

        require(STAKE_BLOCK.sub(depositEndBlock.sub(block.number)) > 0, "Son Distribute: stake period must > deposit period!");

        uint256 toThisAddress = son.totalSupply().mul(95).div(100);

        require(son.balanceOf(address(this)) == toThisAddress);

        getBalance = toThisAddress.mul(20).div(100);
        stakeBalance = toThisAddress.mul(50).div(100);
        giveEthBalance = toThisAddress.sub(getBalance).sub(stakeBalance);

        isInnit = true;
    }
    

    //airdrop
    function getSon() public lock {

        require(block.timestamp <= getSonEndTime,"Son Distribute: free get Son is End!");
        
        require(getBalance >= PER_GET_REWARD,"Son Distribute: have no enough son to giver!");

        require(!isParticipate[msg.sender],"Son Distribute: Have already taken part in!");
        
        getBalance = getBalance.sub(PER_GET_REWARD);

        isParticipate[msg.sender] = true;

        TransferHelper.safeTransfer(address(son),msg.sender,PER_GET_REWARD);

        emit GetSon(msg.sender);
    }


    function depositGetSon() public payable lock{
        require(msg.value > 100 gwei,"Son Distribute: too small value");

        require(msg.value <= MAX_DEPOSIT_VALUE,"Son Distribute: over max deposit");

        require(block.number < depositEndBlock,"Son Distribute: deposit time is end!");

        require(userDepositInfo[msg.sender].value == 0,"Son Distribute: already deposit");

        uint256 getSonBalance = msg.value.mul(PER_DEPOSIT_REWARD).div(10 ** 18);

        require(stakeBalance >= getSonBalance,"Son Distribute: not enough son to give!");

        stakeBalance = stakeBalance.sub(getSonBalance);

        uint256 preReward = getSonBalance.div(depositEndBlock.sub(block.number));

        userDepositInfo[msg.sender] = UserInfo({value:msg.value,flagBlock: block.number,preBlockReward:preReward,withdraw:0});

        emit DepositeGetSon(_msgSender(),msg.value);
    }

    function checkDepositInfo(address user) public view returns(uint256,uint256,uint256,uint256) {

        return (userDepositInfo[user].value, userDepositInfo[user].flagBlock, userDepositInfo[user].preBlockReward, userDepositInfo[user].withdraw);

    }



    function pendingDepositReward(address user) public view returns(uint256 amount){

        if(block.number >= depositEndBlock){
            
            amount = userDepositInfo[user].value.mul(PER_DEPOSIT_REWARD).div(10 ** 18).sub(userDepositInfo[user].withdraw);
 
        }else{

             amount = block.number.sub(userDepositInfo[user].flagBlock).mul(userDepositInfo[user].preBlockReward).sub(userDepositInfo[user].withdraw);
    
        }
    
    }

    function withdrawDepositReward() public lock{

        require(userDepositInfo[msg.sender].value > 0,"Son Distribute: have no deposit");

        uint256 newWithdraw = pendingDepositReward(msg.sender);

        require(newWithdraw > 0, "Son Distribute: no reward to give");

        userDepositInfo[msg.sender].withdraw = userDepositInfo[msg.sender].withdraw.add(newWithdraw);

        TransferHelper.safeTransfer(address(son),msg.sender,newWithdraw);

        emit WithdrawDepositReward(msg.sender,newWithdraw);
    }


    function withdrawDepositEther() public payable lock {
        
        require(userDepositInfo[msg.sender].value > 0,"Son Distribute: have no deposit");
        
        //check stake finish
        require(block.number.sub(userDepositInfo[msg.sender].flagBlock) >= STAKE_BLOCK,"Son Distribute: still in staking");
        
        //check if already withdraw
        require(userDepositInfo[msg.sender].flagBlock < depositEndBlock,"Son Distribute: already withdraw");

        uint256 sendAmount = userDepositInfo[msg.sender].value;

        userDepositInfo[msg.sender].flagBlock = block.number;

        TransferHelper.safeTransferETH(_msgSender(),sendAmount);

        emit WithdrawDepositEther(msg.sender,sendAmount);
    }


    function giverGetSon() public payable lock {
        require(msg.value > 0,"Son Distribute: no ether!");

        require(block.timestamp <= giveSonEndTime,"Son Distribute: not in the period");
        
        require(giverBalance[msg.sender].add(msg.value) <= MAX_GIVER_VALUE,"Son Distribute: is over MAX_GIVER_VALUE");

        giverBalance[msg.sender] = giverBalance[msg.sender].add(msg.value);

        uint256 getSonBalance = msg.value.mul(PER_GIVER_REWARD).div(10 ** 18);

        require(giveEthBalance >= getSonBalance,"Son Distribute: not enough son to give!");

        giveEthBalance = giveEthBalance.sub(getSonBalance);

        TransferHelper.safeTransfer(address(son),_msgSender(),getSonBalance);

        giveVitalikEtherValue = giveVitalikEtherValue.add(msg.value);

        emit GiverGetSon(_msgSender(),msg.value);
    }


    function giverToVitalik() public lock{

        require(block.timestamp >= GIVE_VITALIK_BLOCK_TIME,"Son Distribute: block timestamp limited!");

        require(giveVitalikEtherValue > 0,"Son Distribute: no ether to give!");

        uint256 toValue = giveVitalikEtherValue;

        giveVitalikEtherValue = 0;

        TransferHelper.safeTransferETH(VITALIK_ADDRESS,toValue);

        emit GiverToVitalik(VITALIK_ADDRESS,toValue);
    }


    function getRemianSon() public  {

        uint256 toValue;

        if (getBalance > 0 && block.timestamp > getSonEndTime) {
            toValue = toValue.add(getBalance);
            getBalance = 0;
            
        }

        if (stakeBalance > 0 && block.number > depositEndBlock) {
            toValue = toValue.add(stakeBalance);
            stakeBalance = 0;  
        }

        if(giveEthBalance > 0 && block.timestamp > giveSonEndTime) {
            toValue = toValue.add(giveEthBalance);
            giveEthBalance = 0;
        }

        require(toValue > 0,"Son Distribute: no value to give back!");

        TransferHelper.safeTransfer(address(son),dev,toValue);
    }


    function transferDev(address _dev) public {
        require(msg.sender == dev,"Son Distribute: not dev!");
        dev = _dev;
        emit TransferDev(msg.sender, dev);
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"getAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"DepositeGetSon","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"getAddress","type":"address"}],"name":"GetSon","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"getAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"giverEtherValue","type":"uint256"}],"name":"GiverGetSon","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_vitalikAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"GiverToVitalik","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldDev","type":"address"},{"indexed":false,"internalType":"address","name":"newDev","type":"address"}],"name":"TransferDev","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"address","name":"value","type":"address"}],"name":"Unlock","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"WithdrawDepositEther","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"WithdrawDepositReward","type":"event"},{"inputs":[],"name":"GIVE_VITALIK_BLOCK_TIME","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"VITALIK_ADDRESS","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"checkDepositInfo","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"depositEndBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"depositGetSon","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"dev","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRemianSon","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getSon","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getSonEndTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"giveEthBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"giveSonEndTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"giveVitalikEtherValue","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"giverBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"giverGetSon","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"giverToVitalik","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sonAddress","type":"address"}],"name":"initSon","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isParticipate","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"pendingDepositReward","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stakeBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_dev","type":"address"}],"name":"transferDev","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawDepositEther","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"withdrawDepositReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526001600b5534801561001557600080fd5b5033600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550612ce3806100666000396000f3fe6080604052600436106101445760003560e01c806391cca3db116100b6578063d4ad860c1161006f578063d4ad860c14610474578063e2b188681461048b578063e52c3c3a146104f2578063ea2e9c53146104fc578063eb03a31a14610561578063ee1e53b4146105c65761014b565b806391cca3db1461037057806393bc9dfe146103b15780639e706e51146103dc578063a338339914610407578063ba5f21ec14610432578063bba41f45146104495761014b565b8063332ca4f211610108578063332ca4f21461027b578063395bb8f6146102cc5780633c377737146102e357806340c30d5f1461030e57806357288199146103185780638a6444521461032f5761014b565b806312065fe014610150578063122e4c3a1461017b578063231c3867146101cc57806327f86652146101d657806329d7b0c5146102505761014b565b3661014b57005b600080fd5b34801561015c57600080fd5b506101656105f1565b6040518082815260200191505060405180910390f35b34801561018757600080fd5b506101ca6004803603602081101561019e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506105f7565b005b6101d46109ff565b005b3480156101e257600080fd5b50610225600480360360208110156101f957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610dbc565b6040518085815260200184815260200183815260200182815260200194505050505060405180910390f35b34801561025c57600080fd5b50610265610edd565b6040518082815260200191505060405180910390f35b34801561028757600080fd5b506102ca6004803603602081101561029e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ee3565b005b3480156102d857600080fd5b506102e1611077565b005b3480156102ef57600080fd5b506102f8611250565b6040518082815260200191505060405180910390f35b610316611256565b005b34801561032457600080fd5b5061032d611654565b005b34801561033b57600080fd5b506103446117a8565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561037c57600080fd5b506103856117c0565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103bd57600080fd5b506103c66117e6565b6040518082815260200191505060405180910390f35b3480156103e857600080fd5b506103f16117ec565b6040518082815260200191505060405180910390f35b34801561041357600080fd5b5061041c6117f2565b6040518082815260200191505060405180910390f35b34801561043e57600080fd5b506104476117f8565b005b34801561045557600080fd5b5061045e611abe565b6040518082815260200191505060405180910390f35b34801561048057600080fd5b50610489611ac6565b005b34801561049757600080fd5b506104da600480360360208110156104ae57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611dac565b60405180821515815260200191505060405180910390f35b6104fa611dcc565b005b34801561050857600080fd5b5061054b6004803603602081101561051f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612225565b6040518082815260200191505060405180910390f35b34801561056d57600080fd5b506105b06004803603602081101561058457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061223d565b6040518082815260200191505060405180910390f35b3480156105d257600080fd5b506105db612420565b6040518082815260200191505060405180910390f35b60065481565b600a60149054906101000a900460ff161561067a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f536f6e20446973747269627574653a20697320616c726561647920696e69740081525060200191505060405180910390fd5b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146106d457600080fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506213c68042016003819055506213c680420160048190555062015180430160058190555060006107656107534360055461242690919063ffffffff16565b6204650061242690919063ffffffff16565b116107bb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526033815260200180612b746033913960400191505060405180910390fd5b60006108866064610878605f600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561082f57600080fd5b505afa158015610843573d6000803e3d6000fd5b505050506040513d602081101561085957600080fd5b810190808051906020019092919050505061247090919063ffffffff16565b6124f690919063ffffffff16565b905080600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561091257600080fd5b505afa158015610926573d6000803e3d6000fd5b505050506040513d602081101561093c57600080fd5b81019080805190602001909291905050501461095757600080fd5b61097e606461097060148461247090919063ffffffff16565b6124f690919063ffffffff16565b6006819055506109ab606461099d60328461247090919063ffffffff16565b6124f690919063ffffffff16565b6007819055506109da6007546109cc6006548461242690919063ffffffff16565b61242690919063ffffffff16565b6008819055506001600a60146101000a81548160ff0219169083151502179055505050565b6001600b5414610a77576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f536f6e20446973747269627574653a204c4f434b45440000000000000000000081525060200191505060405180910390fd5b6000600b819055506000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015411610b37576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f536f6e20446973747269627574653a2068617665206e6f206465706f7369740081525060200191505060405180910390fd5b62046500610b90600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101544361242690919063ffffffff16565b1015610c04576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f536f6e20446973747269627574653a207374696c6c20696e207374616b696e6781525060200191505060405180910390fd5b600554600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015410610cbd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f536f6e20446973747269627574653a20616c726561647920776974686472617781525060200191505060405180910390fd5b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154905043600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010181905550610d5c610d56612540565b82612548565b7f2c32e6ad41765149e642423619af23c33f8dadea1db8baa135528d9101da02dc3382604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1506001600b81905550565b600080600080600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003015493509350935093509193509193565b60095481565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610fa6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f536f6e20446973747269627574653a206e6f742064657621000000000000000081525060200191505060405180910390fd5b80600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f7dc9ba5ab2ffaad7688d96c63b4550214e754efb33506b6eda7000974ef0944633600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a150565b6001600b54146110ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f536f6e20446973747269627574653a204c4f434b45440000000000000000000081525060200191505060405180910390fd5b6000600b819055506360158280421015611154576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612a996028913960400191505060405180910390fd5b6000600954116111af576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612c466021913960400191505060405180910390fd5b6000600954905060006009819055506111dc73ab5801a7d398351b8be11c439e05c5b3259aec9b82612548565b7f5a1cac5dacfa318ec4ac14e4e60d9084a38fe40c75924cca6b4592ccc17cc59d73ab5801a7d398351b8be11c439e05c5b3259aec9b82604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1506001600b81905550565b60055481565b6001600b54146112ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f536f6e20446973747269627574653a204c4f434b45440000000000000000000081525060200191505060405180910390fd5b6000600b819055506000341161134c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f536f6e20446973747269627574653a206e6f206574686572210000000000000081525060200191505060405180910390fd5b6004544211156113a7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612ac16021913960400191505060405180910390fd5b6729a2241af62c000061140234600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126a790919063ffffffff16565b1115611459576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526027815260200180612bd36027913960400191505060405180910390fd5b6114ab34600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126a790919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000611526670de0b6b3a7640000611518680821ab0d44149800003461247090919063ffffffff16565b6124f690919063ffffffff16565b9050806008541015611583576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526027815260200180612b2c6027913960400191505060405180910390fd5b6115988160085461242690919063ffffffff16565b6008819055506115d2600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166115cc612540565b8361272f565b6115e7346009546126a790919063ffffffff16565b6009819055507fcf369f35812a6280cebf25378553a727b1f01b93db20d081820d435b354f4a2e611616612540565b34604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1506001600b81905550565b600080600654118015611668575060035442115b1561168d57611682600654826126a790919063ffffffff16565b905060006006819055505b60006007541180156116a0575060055443115b156116c5576116ba600754826126a790919063ffffffff16565b905060006007819055505b60006008541180156116d8575060045442115b156116fd576116f2600854826126a790919063ffffffff16565b905060006008819055505b60008111611756576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180612b066026913960400191505060405180910390fd5b6117a5600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168361272f565b50565b73ab5801a7d398351b8be11c439e05c5b3259aec9b81565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60075481565b60035481565b60085481565b6001600b5414611870576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f536f6e20446973747269627574653a204c4f434b45440000000000000000000081525060200191505060405180910390fd5b6000600b819055506000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015411611930576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f536f6e20446973747269627574653a2068617665206e6f206465706f7369740081525060200191505060405180910390fd5b600061193b3361223d565b905060008111611996576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612b536021913960400191505060405180910390fd5b6119eb81600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301546126a790919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030181905550611a5e600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16338361272f565b7f0f578d726b37131d78e0b2138ccb5be2db1513afe30940d9b71f66c7cb3f9f3a3382604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1506001600b81905550565b636015828081565b6001600b5414611b3e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f536f6e20446973747269627574653a204c4f434b45440000000000000000000081525060200191505060405180910390fd5b6000600b81905550600354421115611ba1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612ae26024913960400191505060405180910390fd5b671bc16d674ec800006006541015611c04576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180612ba7602c913960400191505060405180910390fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611ca6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180612c1b602b913960400191505060405180910390fd5b611cc3671bc16d674ec8000060065461242690919063ffffffff16565b60068190555060016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611d55600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1633671bc16d674ec8000061272f565b7f400b0a6830f2d9abb99754941972e0d44efeda57030f25ac2d2edcc7ca61946a33604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a16001600b81905550565b60006020528060005260406000206000915054906101000a900460ff1681565b6001600b5414611e44576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f536f6e20446973747269627574653a204c4f434b45440000000000000000000081525060200191505060405180910390fd5b6000600b8190555064174876e8003411611ec6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f536f6e20446973747269627574653a20746f6f20736d616c6c2076616c75650081525060200191505060405180910390fd5b674563918244f40000341115611f44576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f536f6e20446973747269627574653a206f766572206d6178206465706f73697481525060200191505060405180910390fd5b6005544310611f9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612c8a6024913960400191505060405180910390fd5b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015414612056576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f536f6e20446973747269627574653a20616c7265616479206465706f7369740081525060200191505060405180910390fd5b600061208e670de0b6b3a76400006120806802b5e3af16b18800003461247090919063ffffffff16565b6124f690919063ffffffff16565b90508060075410156120eb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526027815260200180612b2c6027913960400191505060405180910390fd5b6121008160075461242690919063ffffffff16565b600781905550600061212f6121204360055461242690919063ffffffff16565b836124f690919063ffffffff16565b905060405180608001604052803481526020014381526020018281526020016000815250600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082015181600001556020820151816001015560408201518160020155606082015181600301559050507f6962fb51fff465b178a62ebbe552460ba383ad6c3e8850d1b60b14bb0d3f024c6121e6612540565b34604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a150506001600b81905550565b60016020528060005260406000206000915090505481565b6000600554431061231b57612314600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030154612306670de0b6b3a76400006122f86802b5e3af16b1880000600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461247090919063ffffffff16565b6124f690919063ffffffff16565b61242690919063ffffffff16565b905061241b565b612418600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003015461240a600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201546123fc600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101544361242690919063ffffffff16565b61247090919063ffffffff16565b61242690919063ffffffff16565b90505b919050565b60045481565b600061246883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612912565b905092915050565b60008083141561248357600090506124f0565b600082840290508284828161249457fe5b04146124eb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612bfa6021913960400191505060405180910390fd5b809150505b92915050565b600061253883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506129d2565b905092915050565b600033905090565b60008273ffffffffffffffffffffffffffffffffffffffff1682600067ffffffffffffffff8111801561257a57600080fd5b506040519080825280601f01601f1916602001820160405280156125ad5781602001600182028036833780820191505090505b506040518082805190602001908083835b602083106125e157805182526020820191506020810190506020830392506125be565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114612643576040519150601f19603f3d011682016040523d82523d6000602084013e612648565b606091505b50509050806126a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180612c676023913960400191505060405180910390fd5b505050565b600080828401905083811015612725576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600060608473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8585604051602401808373ffffffffffffffffffffffffffffffffffffffff168152602001828152602001925050506040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518082805190602001908083835b602083106127f257805182526020820191506020810190506020830392506127cf565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612854576040519150601f19603f3d011682016040523d82523d6000602084013e612859565b606091505b50915091508180156128995750600081511480612898575080806020019051602081101561288657600080fd5b81019080805190602001909291905050505b5b61290b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5472616e7366657248656c7065723a205452414e534645525f4641494c45440081525060200191505060405180910390fd5b5050505050565b60008383111582906129bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612984578082015181840152602081019050612969565b50505050905090810190601f1680156129b15780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b60008083118290612a7e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612a43578082015181840152602081019050612a28565b50505050905090810190601f168015612a705780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581612a8a57fe5b04905080915050939250505056fe536f6e20446973747269627574653a20626c6f636b2074696d657374616d70206c696d6974656421536f6e20446973747269627574653a206e6f7420696e2074686520706572696f64536f6e20446973747269627574653a20667265652067657420536f6e20697320456e6421536f6e20446973747269627574653a206e6f2076616c756520746f2067697665206261636b21536f6e20446973747269627574653a206e6f7420656e6f75676820736f6e20746f206769766521536f6e20446973747269627574653a206e6f2072657761726420746f2067697665536f6e20446973747269627574653a207374616b6520706572696f64206d757374203e206465706f73697420706572696f6421536f6e20446973747269627574653a2068617665206e6f20656e6f75676820736f6e20746f20676976657221536f6e20446973747269627574653a206973206f766572204d41585f47495645525f56414c5545536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77536f6e20446973747269627574653a204861766520616c72656164792074616b656e207061727420696e21536f6e20446973747269627574653a206e6f20657468657220746f2067697665215472616e7366657248656c7065723a204554485f5452414e534645525f4641494c4544536f6e20446973747269627574653a206465706f7369742074696d6520697320656e6421a264697066735822122091ae3350a903a0299ced4e9b2a91ba7b66a4bc3e8b700165c763cbcb861e1efc64736f6c634300060c0033

Deployed Bytecode

0x6080604052600436106101445760003560e01c806391cca3db116100b6578063d4ad860c1161006f578063d4ad860c14610474578063e2b188681461048b578063e52c3c3a146104f2578063ea2e9c53146104fc578063eb03a31a14610561578063ee1e53b4146105c65761014b565b806391cca3db1461037057806393bc9dfe146103b15780639e706e51146103dc578063a338339914610407578063ba5f21ec14610432578063bba41f45146104495761014b565b8063332ca4f211610108578063332ca4f21461027b578063395bb8f6146102cc5780633c377737146102e357806340c30d5f1461030e57806357288199146103185780638a6444521461032f5761014b565b806312065fe014610150578063122e4c3a1461017b578063231c3867146101cc57806327f86652146101d657806329d7b0c5146102505761014b565b3661014b57005b600080fd5b34801561015c57600080fd5b506101656105f1565b6040518082815260200191505060405180910390f35b34801561018757600080fd5b506101ca6004803603602081101561019e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506105f7565b005b6101d46109ff565b005b3480156101e257600080fd5b50610225600480360360208110156101f957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610dbc565b6040518085815260200184815260200183815260200182815260200194505050505060405180910390f35b34801561025c57600080fd5b50610265610edd565b6040518082815260200191505060405180910390f35b34801561028757600080fd5b506102ca6004803603602081101561029e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ee3565b005b3480156102d857600080fd5b506102e1611077565b005b3480156102ef57600080fd5b506102f8611250565b6040518082815260200191505060405180910390f35b610316611256565b005b34801561032457600080fd5b5061032d611654565b005b34801561033b57600080fd5b506103446117a8565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561037c57600080fd5b506103856117c0565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103bd57600080fd5b506103c66117e6565b6040518082815260200191505060405180910390f35b3480156103e857600080fd5b506103f16117ec565b6040518082815260200191505060405180910390f35b34801561041357600080fd5b5061041c6117f2565b6040518082815260200191505060405180910390f35b34801561043e57600080fd5b506104476117f8565b005b34801561045557600080fd5b5061045e611abe565b6040518082815260200191505060405180910390f35b34801561048057600080fd5b50610489611ac6565b005b34801561049757600080fd5b506104da600480360360208110156104ae57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611dac565b60405180821515815260200191505060405180910390f35b6104fa611dcc565b005b34801561050857600080fd5b5061054b6004803603602081101561051f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612225565b6040518082815260200191505060405180910390f35b34801561056d57600080fd5b506105b06004803603602081101561058457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061223d565b6040518082815260200191505060405180910390f35b3480156105d257600080fd5b506105db612420565b6040518082815260200191505060405180910390f35b60065481565b600a60149054906101000a900460ff161561067a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f536f6e20446973747269627574653a20697320616c726561647920696e69740081525060200191505060405180910390fd5b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146106d457600080fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506213c68042016003819055506213c680420160048190555062015180430160058190555060006107656107534360055461242690919063ffffffff16565b6204650061242690919063ffffffff16565b116107bb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526033815260200180612b746033913960400191505060405180910390fd5b60006108866064610878605f600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561082f57600080fd5b505afa158015610843573d6000803e3d6000fd5b505050506040513d602081101561085957600080fd5b810190808051906020019092919050505061247090919063ffffffff16565b6124f690919063ffffffff16565b905080600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561091257600080fd5b505afa158015610926573d6000803e3d6000fd5b505050506040513d602081101561093c57600080fd5b81019080805190602001909291905050501461095757600080fd5b61097e606461097060148461247090919063ffffffff16565b6124f690919063ffffffff16565b6006819055506109ab606461099d60328461247090919063ffffffff16565b6124f690919063ffffffff16565b6007819055506109da6007546109cc6006548461242690919063ffffffff16565b61242690919063ffffffff16565b6008819055506001600a60146101000a81548160ff0219169083151502179055505050565b6001600b5414610a77576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f536f6e20446973747269627574653a204c4f434b45440000000000000000000081525060200191505060405180910390fd5b6000600b819055506000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015411610b37576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f536f6e20446973747269627574653a2068617665206e6f206465706f7369740081525060200191505060405180910390fd5b62046500610b90600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101544361242690919063ffffffff16565b1015610c04576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f536f6e20446973747269627574653a207374696c6c20696e207374616b696e6781525060200191505060405180910390fd5b600554600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015410610cbd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f536f6e20446973747269627574653a20616c726561647920776974686472617781525060200191505060405180910390fd5b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154905043600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010181905550610d5c610d56612540565b82612548565b7f2c32e6ad41765149e642423619af23c33f8dadea1db8baa135528d9101da02dc3382604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1506001600b81905550565b600080600080600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003015493509350935093509193509193565b60095481565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610fa6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f536f6e20446973747269627574653a206e6f742064657621000000000000000081525060200191505060405180910390fd5b80600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f7dc9ba5ab2ffaad7688d96c63b4550214e754efb33506b6eda7000974ef0944633600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a150565b6001600b54146110ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f536f6e20446973747269627574653a204c4f434b45440000000000000000000081525060200191505060405180910390fd5b6000600b819055506360158280421015611154576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612a996028913960400191505060405180910390fd5b6000600954116111af576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612c466021913960400191505060405180910390fd5b6000600954905060006009819055506111dc73ab5801a7d398351b8be11c439e05c5b3259aec9b82612548565b7f5a1cac5dacfa318ec4ac14e4e60d9084a38fe40c75924cca6b4592ccc17cc59d73ab5801a7d398351b8be11c439e05c5b3259aec9b82604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1506001600b81905550565b60055481565b6001600b54146112ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f536f6e20446973747269627574653a204c4f434b45440000000000000000000081525060200191505060405180910390fd5b6000600b819055506000341161134c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f536f6e20446973747269627574653a206e6f206574686572210000000000000081525060200191505060405180910390fd5b6004544211156113a7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612ac16021913960400191505060405180910390fd5b6729a2241af62c000061140234600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126a790919063ffffffff16565b1115611459576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526027815260200180612bd36027913960400191505060405180910390fd5b6114ab34600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126a790919063ffffffff16565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000611526670de0b6b3a7640000611518680821ab0d44149800003461247090919063ffffffff16565b6124f690919063ffffffff16565b9050806008541015611583576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526027815260200180612b2c6027913960400191505060405180910390fd5b6115988160085461242690919063ffffffff16565b6008819055506115d2600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166115cc612540565b8361272f565b6115e7346009546126a790919063ffffffff16565b6009819055507fcf369f35812a6280cebf25378553a727b1f01b93db20d081820d435b354f4a2e611616612540565b34604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1506001600b81905550565b600080600654118015611668575060035442115b1561168d57611682600654826126a790919063ffffffff16565b905060006006819055505b60006007541180156116a0575060055443115b156116c5576116ba600754826126a790919063ffffffff16565b905060006007819055505b60006008541180156116d8575060045442115b156116fd576116f2600854826126a790919063ffffffff16565b905060006008819055505b60008111611756576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180612b066026913960400191505060405180910390fd5b6117a5600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168361272f565b50565b73ab5801a7d398351b8be11c439e05c5b3259aec9b81565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60075481565b60035481565b60085481565b6001600b5414611870576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f536f6e20446973747269627574653a204c4f434b45440000000000000000000081525060200191505060405180910390fd5b6000600b819055506000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015411611930576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f536f6e20446973747269627574653a2068617665206e6f206465706f7369740081525060200191505060405180910390fd5b600061193b3361223d565b905060008111611996576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612b536021913960400191505060405180910390fd5b6119eb81600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301546126a790919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030181905550611a5e600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16338361272f565b7f0f578d726b37131d78e0b2138ccb5be2db1513afe30940d9b71f66c7cb3f9f3a3382604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1506001600b81905550565b636015828081565b6001600b5414611b3e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f536f6e20446973747269627574653a204c4f434b45440000000000000000000081525060200191505060405180910390fd5b6000600b81905550600354421115611ba1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612ae26024913960400191505060405180910390fd5b671bc16d674ec800006006541015611c04576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180612ba7602c913960400191505060405180910390fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611ca6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180612c1b602b913960400191505060405180910390fd5b611cc3671bc16d674ec8000060065461242690919063ffffffff16565b60068190555060016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611d55600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1633671bc16d674ec8000061272f565b7f400b0a6830f2d9abb99754941972e0d44efeda57030f25ac2d2edcc7ca61946a33604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a16001600b81905550565b60006020528060005260406000206000915054906101000a900460ff1681565b6001600b5414611e44576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f536f6e20446973747269627574653a204c4f434b45440000000000000000000081525060200191505060405180910390fd5b6000600b8190555064174876e8003411611ec6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f536f6e20446973747269627574653a20746f6f20736d616c6c2076616c75650081525060200191505060405180910390fd5b674563918244f40000341115611f44576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f536f6e20446973747269627574653a206f766572206d6178206465706f73697481525060200191505060405180910390fd5b6005544310611f9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612c8a6024913960400191505060405180910390fd5b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015414612056576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f536f6e20446973747269627574653a20616c7265616479206465706f7369740081525060200191505060405180910390fd5b600061208e670de0b6b3a76400006120806802b5e3af16b18800003461247090919063ffffffff16565b6124f690919063ffffffff16565b90508060075410156120eb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526027815260200180612b2c6027913960400191505060405180910390fd5b6121008160075461242690919063ffffffff16565b600781905550600061212f6121204360055461242690919063ffffffff16565b836124f690919063ffffffff16565b905060405180608001604052803481526020014381526020018281526020016000815250600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082015181600001556020820151816001015560408201518160020155606082015181600301559050507f6962fb51fff465b178a62ebbe552460ba383ad6c3e8850d1b60b14bb0d3f024c6121e6612540565b34604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a150506001600b81905550565b60016020528060005260406000206000915090505481565b6000600554431061231b57612314600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030154612306670de0b6b3a76400006122f86802b5e3af16b1880000600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461247090919063ffffffff16565b6124f690919063ffffffff16565b61242690919063ffffffff16565b905061241b565b612418600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003015461240a600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201546123fc600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101544361242690919063ffffffff16565b61247090919063ffffffff16565b61242690919063ffffffff16565b90505b919050565b60045481565b600061246883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612912565b905092915050565b60008083141561248357600090506124f0565b600082840290508284828161249457fe5b04146124eb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612bfa6021913960400191505060405180910390fd5b809150505b92915050565b600061253883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506129d2565b905092915050565b600033905090565b60008273ffffffffffffffffffffffffffffffffffffffff1682600067ffffffffffffffff8111801561257a57600080fd5b506040519080825280601f01601f1916602001820160405280156125ad5781602001600182028036833780820191505090505b506040518082805190602001908083835b602083106125e157805182526020820191506020810190506020830392506125be565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114612643576040519150601f19603f3d011682016040523d82523d6000602084013e612648565b606091505b50509050806126a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180612c676023913960400191505060405180910390fd5b505050565b600080828401905083811015612725576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600060608473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8585604051602401808373ffffffffffffffffffffffffffffffffffffffff168152602001828152602001925050506040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518082805190602001908083835b602083106127f257805182526020820191506020810190506020830392506127cf565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612854576040519150601f19603f3d011682016040523d82523d6000602084013e612859565b606091505b50915091508180156128995750600081511480612898575080806020019051602081101561288657600080fd5b81019080805190602001909291905050505b5b61290b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5472616e7366657248656c7065723a205452414e534645525f4641494c45440081525060200191505060405180910390fd5b5050505050565b60008383111582906129bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612984578082015181840152602081019050612969565b50505050905090810190601f1680156129b15780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b60008083118290612a7e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612a43578082015181840152602081019050612a28565b50505050905090810190601f168015612a705780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581612a8a57fe5b04905080915050939250505056fe536f6e20446973747269627574653a20626c6f636b2074696d657374616d70206c696d6974656421536f6e20446973747269627574653a206e6f7420696e2074686520706572696f64536f6e20446973747269627574653a20667265652067657420536f6e20697320456e6421536f6e20446973747269627574653a206e6f2076616c756520746f2067697665206261636b21536f6e20446973747269627574653a206e6f7420656e6f75676820736f6e20746f206769766521536f6e20446973747269627574653a206e6f2072657761726420746f2067697665536f6e20446973747269627574653a207374616b6520706572696f64206d757374203e206465706f73697420706572696f6421536f6e20446973747269627574653a2068617665206e6f20656e6f75676820736f6e20746f20676976657221536f6e20446973747269627574653a206973206f766572204d41585f47495645525f56414c5545536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77536f6e20446973747269627574653a204861766520616c72656164792074616b656e207061727420696e21536f6e20446973747269627574653a206e6f20657468657220746f2067697665215472616e7366657248656c7065723a204554485f5452414e534645525f4641494c4544536f6e20446973747269627574653a206465706f7369742074696d6520697320656e6421a264697066735822122091ae3350a903a0299ced4e9b2a91ba7b66a4bc3e8b700165c763cbcb861e1efc64736f6c634300060c0033

Deployed Bytecode Sourcemap

9206:8829:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9748:25;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11423:833;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15049:744;;;:::i;:::-;;13763:255;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9859:36;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17851:179;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16672:450;;;;;;;;;;;;;:::i;:::-;;9686:31;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15803:859;;;:::i;:::-;;17132:709;;;;;;;;;;;;;:::i;:::-;;10439:93;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;10545:18;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;9782:27;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9609:29;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9818;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14508:531;;;;;;;;;;;;;:::i;:::-;;10355:60;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12285:555;;;;;;;;;;;;;:::i;:::-;;9276:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;12850:905;;;:::i;:::-;;9330:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14030:470;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9647:30;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9748:25;;;;:::o;11423:833::-;11487:7;;;;;;;;;;;11486:8;11478:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11564:3;;;;;;;;;;;11550:17;;:10;:17;;;11542:26;;;;;;11594:10;11581:3;;:24;;;;;;;;;;;;;;;;;;11652:7;11634:15;:25;11618:13;:41;;;;11707:7;11689:15;:25;11672:14;:42;;;;11760:5;11745:12;:20;11727:15;:38;;;;11839:1;11786:50;11802:33;11822:12;11802:15;;:19;;:33;;;;:::i;:::-;10340:6;11786:15;;:50;;;;:::i;:::-;:54;11778:118;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11909:21;11933:34;11963:3;11933:25;11955:2;11933:3;;;;;;;;;;;:15;;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:21;;:25;;;;:::i;:::-;:29;;:34;;;;:::i;:::-;11909:58;;12020:13;11988:3;;;;;;;;;;;:13;;;12010:4;11988:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:45;11980:54;;;;;;12060:30;12086:3;12060:21;12078:2;12060:13;:17;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;12047:10;:43;;;;12116:30;12142:3;12116:21;12134:2;12116:13;:17;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;12101:12;:45;;;;12174:47;12208:12;;12174:29;12192:10;;12174:13;:17;;:29;;;;:::i;:::-;:33;;:47;;;;:::i;:::-;12157:14;:64;;;;12244:4;12234:7;;:14;;;;;;;;;;;;;;;;;;11423:833;;:::o;15049:744::-;11292:1;11280:8;;:13;11272:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11342:1;11331:8;:12;;;;15166:1:::1;15130:15;:27;15146:10;15130:27;;;;;;;;;;;;;;;:33;;;:37;15122:80;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;10340:6;15261:55;15278:15;:27;15294:10;15278:27;;;;;;;;;;;;;;;:37;;;15261:12;:16;;:55;;;;:::i;:::-;:70;;15253:114;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;15473:15;;15433;:27;15449:10;15433:27;;;;;;;;;;;;;;;:37;;;:55;15425:99;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;15537:18;15558:15;:27;15574:10;15558:27;;;;;;;;;;;;;;;:33;;;15537:54;;15644:12;15604:15;:27;15620:10;15604:27;;;;;;;;;;;;;;;:37;;:52;;;;15669:55;15700:12;:10;:12::i;:::-;15713:10;15669:30;:55::i;:::-;15742:43;15763:10;15774;15742:43;;;;;;;;;;;;;;;;;;;;;;;;;;11354:1;11377::::0;11366:8;:12;;;;15049:744::o;13763:255::-;13823:7;13831;13839;13847;13877:15;:21;13893:4;13877:21;;;;;;;;;;;;;;;:27;;;13906:15;:21;13922:4;13906:21;;;;;;;;;;;;;;;:31;;;13939:15;:21;13955:4;13939:21;;;;;;;;;;;;;;;:36;;;13977:15;:21;13993:4;13977:21;;;;;;;;;;;;;;;:30;;;13869:139;;;;;;;;13763:255;;;;;:::o;9859:36::-;;;;:::o;17851:179::-;17926:3;;;;;;;;;;;17912:17;;:10;:17;;;17904:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17974:4;17968:3;;:10;;;;;;;;;;;;;;;;;;17994:28;18006:10;18018:3;;;;;;;;;;;17994:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;17851:179;:::o;16672:450::-;11292:1;11280:8;;:13;11272:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11342:1;11331:8;:12;;;;10405:10:::1;16730:15;:42;;16722:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16861:1;16837:21;;:25;16829:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16912:15;16930:21;;16912:39;;16988:1;16964:21;:25;;;;17002:55;10489:42;17049:7;17002:30;:55::i;:::-;17075:39;10489:42;17106:7;17075:39;;;;;;;;;;;;;;;;;;;;;;;;;;11354:1;11377::::0;11366:8;:12;;;;16672:450::o;9686:31::-;;;;:::o;15803:859::-;11292:1;11280:8;;:13;11272:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11342:1;11331:8;:12;;;;15877:1:::1;15865:9;:13;15857:50;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;15947:14;;15928:15;:33;;15920:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10182:7;16027:39;16056:9;16027:12;:24;16040:10;16027:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;:58;;16019:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16168:39;16197:9;16168:12;:24;16181:10;16168:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;16141:12;:24;16154:10;16141:24;;;;;;;;;;;;;;;:66;;;;16220:21;16244:45;16280:8;16244:31;10096:9;16244;:13;;:31;;;;:::i;:::-;:35;;:45;;;;:::i;:::-;16220:69;;16328:13;16310:14;;:31;;16302:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16414:33;16433:13;16414:14;;:18;;:33;;;;:::i;:::-;16397:14;:50;;;;16460:68;16496:3;;;;;;;;;;;16501:12;:10;:12::i;:::-;16514:13;16460:27;:68::i;:::-;16565:36;16591:9;16565:21;;:25;;:36;;;;:::i;:::-;16541:21;:60;;;;16619:35;16631:12;:10;:12::i;:::-;16644:9;16619:35;;;;;;;;;;;;;;;;;;;;;;;;;;11354:1;11377::::0;11366:8;:12;;;;15803:859::o;17132:709::-;17177:15;17222:1;17209:10;;:14;:49;;;;;17245:13;;17227:15;:31;17209:49;17205:158;;;17285:23;17297:10;;17285:7;:11;;:23;;;;:::i;:::-;17275:33;;17336:1;17323:10;:14;;;;17205:158;17394:1;17379:12;;:16;:50;;;;;17414:15;;17399:12;:30;17379:50;17375:151;;;17456:25;17468:12;;17456:7;:11;;:25;;;;:::i;:::-;17446:35;;17511:1;17496:12;:16;;;;17375:151;17558:1;17541:14;;:18;:54;;;;;17581:14;;17563:15;:32;17541:54;17538:156;;;17622:27;17634:14;;17622:7;:11;;:27;;;;:::i;:::-;17612:37;;17681:1;17664:14;:18;;;;17538:156;17724:1;17714:7;:11;17706:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17780:53;17816:3;;;;;;;;;;;17821;;;;;;;;;;;17825:7;17780:27;:53::i;:::-;17132:709;:::o;10439:93::-;10489:42;10439:93;:::o;10545:18::-;;;;;;;;;;;;;:::o;9782:27::-;;;;:::o;9609:29::-;;;;:::o;9818:::-;;;;:::o;14508:531::-;11292:1;11280:8;;:13;11272:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11342:1;11331:8;:12;;;;14609:1:::1;14573:15;:27;14589:10;14573:27;;;;;;;;;;;;;;;:33;;;:37;14565:80;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;14658:19;14680:32;14701:10;14680:20;:32::i;:::-;14658:54;;14747:1;14733:11;:15;14725:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14838:53;14879:11;14838:15;:27;14854:10;14838:27;;;;;;;;;;;;;;;:36;;;:40;;:53;;;;:::i;:::-;14799:15;:27;14815:10;14799:27;;;;;;;;;;;;;;;:36;;:92;;;;14904:64;14940:3;;;;;;;;;;;14945:10;14956:11;14904:27;:64::i;:::-;14986:45;15008:10;15019:11;14986:45;;;;;;;;;;;;;;;;;;;;;;;;;;11354:1;11377::::0;11366:8;:12;;;;14508:531::o;10355:60::-;10405:10;10355:60;:::o;12285:555::-;11292:1;11280:8;;:13;11272:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11342:1;11331:8;:12;;;;12355:13:::1;;12336:15;:32;;12328:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9970:7;12437:10;;:28;;12429:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12535:13;:25:::0;12549:10:::1;12535:25;;;;;;;;;;;;;;;;;;;;;;;;;12534:26;12526:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12641:30;9970:7;12641:10;;:14;;:30;;;;:::i;:::-;12628:10;:43;;;;12712:4;12684:13;:25:::0;12698:10:::1;12684:25;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;12729:67;12765:3;;;;;;;;;;;12770:10;9970:7;12729:27;:67::i;:::-;12814:18;12821:10;12814:18;;;;;;;;;;;;;;;;;;;;11377:1:::0;11366:8;:12;;;;12285:555::o;9276:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;12850:905::-;11292:1;11280:8;;:13;11272:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11342:1;11331:8;:12;;;;12925:8:::1;12913:9;:20;12905:63;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;10243:7;12989:9;:30;;12981:74;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;13091:15;;13076:12;:30;13068:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13204:1;13167:15;:27;13183:10;13167:27;;;;;;;;;;;;;;;:33;;;:38;13159:81;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;13253:21;13277:47;13315:8;13277:33;10032:8;13277:9;:13;;:33;;;;:::i;:::-;:37;;:47;;;;:::i;:::-;13253:71;;13361:13;13345:12;;:29;;13337:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13445:31;13462:13;13445:12;;:16;;:31;;;;:::i;:::-;13430:12;:46;;;;13489:17;13509:52;13527:33;13547:12;13527:15;;:19;;:33;;;;:::i;:::-;13509:13;:17;;:52;;;;:::i;:::-;13489:72;;13604:87;;;;;;;;13620:9;13604:87;;;;13641:12;13604:87;;;;13669:9;13604:87;;;;13688:1;13604:87;;::::0;13574:15:::1;:27;13590:10;13574:27;;;;;;;;;;;;;;;:117;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13709:38;13724:12;:10;:12::i;:::-;13737:9;13709:38;;;;;;;;;;;;;;;;;;;;;;;;;;11354:1;;11377::::0;11366:8;:12;;;;12850:905::o;9330:47::-;;;;;;;;;;;;;;;;;:::o;14030:470::-;14094:14;14141:15;;14125:12;:31;14122:365;;14195:101;14265:15;:21;14281:4;14265:21;;;;;;;;;;;;;;;:30;;;14195:65;14251:8;14195:51;10032:8;14195:15;:21;14211:4;14195:21;;;;;;;;;;;;;;;:27;;;:31;;:51;;;;:::i;:::-;:55;;:65;;;;:::i;:::-;:69;;:101;;;;:::i;:::-;14186:110;;14122:365;;;14342:127;14438:15;:21;14454:4;14438:21;;;;;;;;;;;;;;;:30;;;14342:91;14396:15;:21;14412:4;14396:21;;;;;;;;;;;;;;;:36;;;14342:49;14359:15;:21;14375:4;14359:21;;;;;;;;;;;;;;;:31;;;14342:12;:16;;:49;;;;:::i;:::-;:53;;:91;;;;:::i;:::-;:95;;:127;;;;:::i;:::-;14333:136;;14122:365;14030:470;;;:::o;9647:30::-;;;;:::o;3436:136::-;3494:7;3521:43;3525:1;3528;3521:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;3514:50;;3436:136;;;;:::o;4326:471::-;4384:7;4634:1;4629;:6;4625:47;;;4659:1;4652:8;;;;4625:47;4684:9;4700:1;4696;:5;4684:17;;4729:1;4724;4720;:5;;;;;;:10;4712:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4788:1;4781:8;;;4326:471;;;;;:::o;5273:132::-;5331:7;5358:39;5362:1;5365;5358:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;5351:46;;5273:132;;;;:::o;7469:106::-;7522:15;7557:10;7550:17;;7469:106;:::o;9000:195::-;9070:12;9087:2;:7;;9101:5;9118:1;9108:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9087:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9069:52;;;9140:7;9132:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9000:195;;;:::o;2972:181::-;3030:7;3050:9;3066:1;3062;:5;3050:17;;3091:1;3086;:6;;3078:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3144:1;3137:8;;;2972:181;;;;:::o;8221:361::-;8370:12;8384:17;8405:5;:10;;8439;8451:2;8455:5;8416:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8405:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8369:93;;;;8481:7;:57;;;;;8508:1;8493:4;:11;:16;:44;;;;8524:4;8513:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8493:44;8481:57;8473:101;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8221:361;;;;;:::o;3875:192::-;3961:7;3994:1;3989;:6;;3997:12;3981:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4021:9;4037:1;4033;:5;4021:17;;4058:1;4051:8;;;3875:192;;;;;:::o;5901:278::-;5987:7;6019:1;6015;:5;6022:12;6007:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6046:9;6062:1;6058;:5;;;;;;6046:17;;6170:1;6163:8;;;5901:278;;;;;:::o

Swarm Source

ipfs://91ae3350a903a0299ced4e9b2a91ba7b66a4bc3e8b700165c763cbcb861e1efc

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.