ETH Price: $1,891.86 (+1.45%)
Gas: 35 Gwei
 
Transaction Hash
Method
Block
From
To
Value
Sell173540282023-05-28 0:43:235 days 11 hrs ago1685234603IN
0x8D5CA9...D7270865
0 ETH0.0036119737.86017254
Sell173347752023-05-25 7:47:118 days 4 hrs ago1685000831IN
0x8D5CA9...D7270865
0 ETH0.0023410229.89236911
Sell172209552023-05-09 5:56:2324 days 6 hrs ago1683611783IN
0x8D5CA9...D7270865
0 ETH0.004357255.64544764
Sell172101702023-05-07 17:33:2325 days 19 hrs ago1683480803IN
0x8D5CA9...D7270865
0 ETH0.01221588156.00786237
Stake End171588352023-04-30 12:22:4733 days 14 mins ago1682857367IN
0x8D5CA9...D7270865
0 ETH0.093746537.21434446
Sell171560142023-04-30 2:52:1133 days 9 hrs ago1682823131IN
0x8D5CA9...D7270865
0 ETH0.0027081634.58574713
Sell171481722023-04-29 0:24:3534 days 12 hrs ago1682727875IN
0x8D5CA9...D7270865
0 ETH0.003763739.48287029
Stake End171481602023-04-29 0:22:1134 days 12 hrs ago1682727731IN
0x8D5CA9...D7270865
0 ETH0.0299998636.50662042
Sell171438462023-04-28 9:50:5935 days 2 hrs ago1682675459IN
0x8D5CA9...D7270865
0 ETH0.0028274836.10399557
Stake End171437432023-04-28 9:29:5935 days 3 hrs ago1682674199IN
0x8D5CA9...D7270865
0 ETH0.0192261342.10320111
Sell168974002023-03-24 12:36:2370 days ago1679661383IN
0x8D5CA9...D7270865
0 ETH0.0022545528.79274873
Sell168800642023-03-22 2:08:4772 days 10 hrs ago1679450927IN
0x8D5CA9...D7270865
0 ETH0.0013040716.65168838
Sell168733352023-03-21 3:25:4773 days 9 hrs ago1679369147IN
0x8D5CA9...D7270865
0 ETH0.0015691816.44589446
Stake End168733322023-03-21 3:25:1173 days 9 hrs ago1679369111IN
0x8D5CA9...D7270865
0 ETH0.0427928816.62118992
Sell168371982023-03-16 1:38:3578 days 10 hrs ago1678930715IN
0x8D5CA9...D7270865
0 ETH0.0015947720.36359859
Sell167406472023-03-02 11:40:5992 days 55 mins ago1677757259IN
0x8D5CA9...D7270865
0 ETH0.0019509720.44983372
Sell167177672023-02-27 6:32:1195 days 6 hrs ago1677479531IN
0x8D5CA9...D7270865
0 ETH0.0014954419.09531208
Sell167054032023-02-25 12:49:5996 days 23 hrs ago1677329399IN
0x8D5CA9...D7270865
0 ETH0.0021573722.61039362
Set Hex Staking166811032023-02-22 2:43:35100 days 9 hrs ago1677033815IN
0x8D5CA9...D7270865
0 ETH0.0008830830.5989751
Sell166810312023-02-22 2:28:23100 days 10 hrs ago1677032903IN
0x8D5CA9...D7270865
0 ETH0.0022707829
Sell166728002023-02-20 22:42:59101 days 13 hrs ago1676932979IN
0x8D5CA9...D7270865
0 ETH0.0031981840.83739862
Sell166712192023-02-20 17:23:59101 days 19 hrs ago1676913839IN
0x8D5CA9...D7270865
0 ETH0.0035647245.51771918
Sell166711912023-02-20 17:18:23101 days 19 hrs ago1676913503IN
0x8D5CA9...D7270865
0 ETH0.00362140
Sell166695782023-02-20 11:52:35102 days 44 mins ago1676893955IN
0x8D5CA9...D7270865
0 ETH0.0017682322.57503528
Stake End166695742023-02-20 11:51:47102 days 45 mins ago1676893907IN
0x8D5CA9...D7270865
0 ETH0.0591683222.99887358
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
HRS

Compiler Version
v0.4.26+commit.4563c3fc

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2020-02-22
*/

pragma solidity ^0.4.26;

library SafeMath {
  function mul(uint256 a, uint256 b) internal pure returns (uint256 c) {
    if (a == 0) {
      return 0;
    }
    c = a * b;
    assert(c / a == b);
    return c;
  }

  function div(uint256 a, uint256 b) internal pure returns (uint256) {
    return a / b;
  }

  function sub(uint256 a, uint256 b) internal pure returns (uint256) {
    assert(b <= a);
    return a - b;
  }

  function add(uint256 a, uint256 b) internal pure returns (uint256 c) {
    c = a + b;
    assert(c >= a);
    return c;
  }
}

contract EXCH {
    function distribute(uint256 _amount) public returns (uint256);
}

contract TOKEN {
    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);
    function stakeStart(uint256 newStakedHearts, uint256 newStakedDays) external;
    function stakeEnd(uint256 stakeIndex, uint40 stakeIdParam) external;
    function stakeCount(address stakerAddr) external view returns (uint256);
    function stakeLists(address owner, uint256 stakeIndex) external view returns (uint40, uint72, uint72, uint16, uint16, uint16, bool);
    function currentDay() external view returns (uint256);
}

contract Ownable {
  address public owner;

  constructor() public {
    owner = address(0xAeFeB36820bd832038E8e4F73eDbD5f48D3b4E50);
  }

  modifier onlyOwner() {
    require(msg.sender == owner);
    _;
  }
}

contract HRS is Ownable {
    using SafeMath for uint256;

    uint ACTIVATION_TIME = 1582416000;

    modifier isActivated {
        require(now >= ACTIVATION_TIME);

        if (now <= (ACTIVATION_TIME + 2 minutes)) {
            require(tx.gasprice <= 0.1 szabo);
        }
        _;
    }

    modifier onlyTokenHolders() {
        require(myTokens(true) > 0);
        _;
    }

    modifier isStakeActivated {
        require(stakeActivated == true);
        _;
    }

    event onDistribute(
        address indexed customerAddress,
        uint256 tokens
    );

    event Transfer(
        address indexed from,
        address indexed to,
        uint256 tokens
    );

    event onTokenPurchase(
        address indexed customerAddress,
        uint256 incomingHEX,
        uint256 tokensMinted,
        uint256 timestamp
    );

    event onTokenSell(
        address indexed customerAddress,
        uint256 tokensBurned,
        uint256 hexEarned,
        uint256 timestamp
    );

    event onTokenAppreciation(
        uint256 tokenPrice,
        uint256 timestamp
    );

    event onStakeStart(
        address indexed customerAddress,
        uint256 uniqueID,
        uint256 currentTokens,
        uint256 timestamp
    );

    event onStakeEnd(
        address indexed customerAddress,
        uint256 uniqueID,
        uint256 returnAmount,
        uint256 difference,
        uint256 timestamp
    );

    string public name = "HEXRISE";
    string public symbol = "HEX3";
    uint8 constant public decimals = 8;
    uint256 constant internal magnitude = 1e8;

    uint8 constant internal transferFee = 1;
    uint8 constant internal buyInFee = 4;
    uint8 constant internal sellOutFee = 4;
    uint8 constant internal devFee = 1;
    uint8 constant internal hexTewFee = 1;

    mapping(address => uint256) private tokenBalanceLedger;
    mapping(address => uint256) public lockedHexBalanceLedger;

    struct Stats {
       uint256 deposits;
       uint256 withdrawals;
       uint256 staked;
       uint256 activeStakes;
    }

    mapping(address => Stats) public playerStats;

    uint256 public totalStakeBalance = 0;
    uint256 public totalPlayer = 0;
    uint256 public totalDonation = 0;
    uint256 public totalFundReceived = 0;
    uint256 public totalFundCollected = 0; 

    uint256 private tokenSupply = 0;
    uint256 private contractValue = 0;
    uint256 private tokenPrice = 100000000;

    EXCH exchange;
    TOKEN erc20;

    struct StakeStore {
      uint40 stakeID;
      uint256 hexAmount;
      uint72 stakeShares;
      uint16 lockedDay;
      uint16 stakedDays;
      uint16 unlockedDay;
      bool started;
      bool ended;
    }

    bool stakeActivated = true;
    mapping(address => mapping(uint256 => StakeStore)) public stakeLists;

    constructor() public {
        exchange = EXCH(address(0xD495cC8C7c29c7fA3E027a5759561Ab68C363609));
        erc20 = TOKEN(address(0x2b591e99afE9f32eAA6214f7B7629768c40Eeb39));
    }

    function() payable public {
        revert();
    }

    function checkAndTransferHEX(uint256 _amount) private {
        require(erc20.transferFrom(msg.sender, address(this), _amount) == true, "transfer must succeed");
    }

    function appreciateTokenPrice(uint256 _amount) isActivated public {
        require(_amount > 0, "must be a positive value");
        checkAndTransferHEX(_amount);
        contractValue = contractValue.add(_amount);
        totalDonation += _amount;

        if (tokenSupply > magnitude) {
            tokenPrice = (contractValue.mul(magnitude)) / tokenSupply;
        }

        emit onDistribute(msg.sender, _amount);
        emit onTokenAppreciation(tokenPrice, now);
    }

    function payFund() public {
        uint256 _hexToPay = totalFundCollected.sub(totalFundReceived);
        require(_hexToPay > 0);
        totalFundReceived = totalFundReceived.add(_hexToPay);
        erc20.approve(exchange, _hexToPay);
        exchange.distribute(_hexToPay);
    }

    function buy(uint256 _amount) public returns (uint256) {
        checkAndTransferHEX(_amount);
        return purchaseTokens(msg.sender, _amount);
    }

    function buyFor(uint256 _amount, address _customerAddress) public returns (uint256) {
        checkAndTransferHEX(_amount);
        return purchaseTokens(_customerAddress, _amount);
    }

    function _purchaseTokens(address _customerAddress, uint256 _incomingHEX) private returns(uint256) {
        uint256 _amountOfTokens = (_incomingHEX.mul(magnitude)) / tokenPrice;

        require(_amountOfTokens > 0 && _amountOfTokens.add(tokenSupply) > tokenSupply);

        tokenBalanceLedger[_customerAddress] =  tokenBalanceLedger[_customerAddress].add(_amountOfTokens);
        tokenSupply = tokenSupply.add(_amountOfTokens);

        emit Transfer(address(0), _customerAddress, _amountOfTokens);

        return _amountOfTokens;
    }

    function purchaseTokens(address _customerAddress, uint256 _incomingHEX) private isActivated returns (uint256) {
        if (playerStats[_customerAddress].deposits == 0) {
            totalPlayer++;
        }

        playerStats[_customerAddress].deposits += _incomingHEX;

        require(_incomingHEX > 0);

        uint256 _devFee = _incomingHEX.mul(devFee).div(100);
        uint256 _hexTewFee = _incomingHEX.mul(hexTewFee).div(100);
        uint256 _fee = _incomingHEX.mul(buyInFee).div(100);

        _purchaseTokens(owner, _devFee);
        totalFundCollected = totalFundCollected.add(_hexTewFee);

        uint256 _amountOfTokens = _purchaseTokens(_customerAddress, _incomingHEX.sub(_fee).sub(_devFee).sub(_hexTewFee));
            
        contractValue = contractValue.add(_incomingHEX.sub(_hexTewFee));

        if (hexToSendFund() >= 10000e8) {
            payFund();
        }

        if (tokenSupply > magnitude) {
            tokenPrice = (contractValue.mul(magnitude)) / tokenSupply;
        }

        emit onTokenPurchase(_customerAddress, _incomingHEX, _amountOfTokens, now);
        emit onTokenAppreciation(tokenPrice, now);

        return _amountOfTokens;
    }

    function sell(uint256 _amountOfTokens) isActivated onlyTokenHolders public {
        address _customerAddress = msg.sender;
        uint256 _lockedToken = (lockedHexBalanceLedger[_customerAddress].mul(magnitude)) / tokenPrice;

        require(_amountOfTokens > 0 && _amountOfTokens <= tokenBalanceLedger[_customerAddress].sub(_lockedToken));

        uint256 _hex = _amountOfTokens.mul(tokenPrice).div(magnitude);
        uint256 _fee = _hex.mul(sellOutFee).div(100);

        tokenSupply = tokenSupply.sub(_amountOfTokens);
        tokenBalanceLedger[_customerAddress] = tokenBalanceLedger[_customerAddress].sub(_amountOfTokens);

        _hex = _hex.sub(_fee);

        contractValue = contractValue.sub(_hex);

        if (tokenSupply > magnitude) {
            tokenPrice = (contractValue.mul(magnitude)) / tokenSupply;
        }

        erc20.transfer(_customerAddress, _hex);
        playerStats[_customerAddress].withdrawals += _hex;

        emit Transfer(_customerAddress, address(0), _amountOfTokens);
        emit onTokenSell(_customerAddress, _amountOfTokens, _hex, now);
        emit onTokenAppreciation(tokenPrice, now);
    }

    function transfer(address _toAddress, uint256 _amountOfTokens) isActivated onlyTokenHolders external returns (bool) {
        address _customerAddress = msg.sender;
        uint256 _lockedToken = (lockedHexBalanceLedger[_customerAddress].mul(magnitude)) / tokenPrice;

        require(_amountOfTokens > 0 && _amountOfTokens <= tokenBalanceLedger[_customerAddress].sub(_lockedToken));

        uint256 _tokenFee = _amountOfTokens.mul(transferFee).div(100);
        uint256 _taxedTokens = _amountOfTokens.sub(_tokenFee);

        tokenBalanceLedger[_customerAddress] = tokenBalanceLedger[_customerAddress].sub(_amountOfTokens);
        tokenBalanceLedger[_toAddress] = tokenBalanceLedger[_toAddress].add(_taxedTokens);

        tokenSupply = tokenSupply.sub(_tokenFee);

        if (tokenSupply>magnitude)
        {
            tokenPrice = (contractValue.mul(magnitude)) / tokenSupply;
        }

        emit Transfer(_customerAddress, address(0), _tokenFee);
        emit Transfer(_customerAddress, _toAddress, _taxedTokens);
        emit onTokenAppreciation(tokenPrice, now);

        return true;
    }

    function stakeStart(uint256 _amount, uint256 _days) public isStakeActivated {
        require(_amount <= 4722366482869645213695);
        require(hexBalanceOfNoFee(msg.sender, true) >= _amount);

        erc20.stakeStart(_amount, _days); // revert or succeed

        uint256 _stakeIndex;
        uint40 _stakeID;
        uint72 _stakeShares;
        uint16 _lockedDay;
        uint16 _stakedDays;

        _stakeIndex = erc20.stakeCount(address(this));
        _stakeIndex = SafeMath.sub(_stakeIndex, 1);

        (_stakeID,,_stakeShares,_lockedDay,_stakedDays,,) = erc20.stakeLists(address(this), _stakeIndex);

        uint256 _uniqueID =  uint256(keccak256(abi.encodePacked(_stakeID, _stakeShares))); // unique enough
        require(stakeLists[msg.sender][_uniqueID].started == false); // still check for collision
        stakeLists[msg.sender][_uniqueID].started = true;

        stakeLists[msg.sender][_uniqueID] = StakeStore(_stakeID, _amount, _stakeShares, _lockedDay, _stakedDays, uint16(0), true, false);

        totalStakeBalance = SafeMath.add(totalStakeBalance, _amount);

        playerStats[msg.sender].activeStakes += 1;
        playerStats[msg.sender].staked += _amount;

        lockedHexBalanceLedger[msg.sender] = SafeMath.add(lockedHexBalanceLedger[msg.sender], _amount);

        emit onStakeStart(msg.sender, _uniqueID, calculateTokensReceived(_amount, false), now);
    }

    function _stakeEnd(uint256 _stakeIndex, uint40 _stakeIdParam, uint256 _uniqueID) public view returns (uint16){
        uint40 _stakeID;
        uint72 _stakedHearts;
        uint72 _stakeShares;
        uint16 _lockedDay;
        uint16 _stakedDays;
        uint16 _unlockedDay;

        (_stakeID,_stakedHearts,_stakeShares,_lockedDay,_stakedDays,_unlockedDay,) = erc20.stakeLists(address(this), _stakeIndex);
        require(stakeLists[msg.sender][_uniqueID].started == true && stakeLists[msg.sender][_uniqueID].ended == false);
        require(stakeLists[msg.sender][_uniqueID].stakeID == _stakeIdParam && _stakeIdParam == _stakeID);
        require(stakeLists[msg.sender][_uniqueID].hexAmount == uint256(_stakedHearts));
        require(stakeLists[msg.sender][_uniqueID].stakeShares == _stakeShares);
        require(stakeLists[msg.sender][_uniqueID].lockedDay == _lockedDay);
        require(stakeLists[msg.sender][_uniqueID].stakedDays == _stakedDays);

        return _unlockedDay;
    }

    function stakeEnd(uint256 _stakeIndex, uint40 _stakeIdParam, uint256 _uniqueID) public {
        uint16 _unlockedDay = _stakeEnd(_stakeIndex, _stakeIdParam, _uniqueID);

        if (_unlockedDay == 0){
            stakeLists[msg.sender][_uniqueID].unlockedDay = uint16(erc20.currentDay()); // no penalty/penalty/reward
        } else {
            stakeLists[msg.sender][_uniqueID].unlockedDay = _unlockedDay;
        }

        uint256 _balance = erc20.balanceOf(address(this));

        erc20.stakeEnd(_stakeIndex, _stakeIdParam); // revert or 0 or less or equal or more hex returned.
        stakeLists[msg.sender][_uniqueID].ended = true;

        uint256 _amount = SafeMath.sub(erc20.balanceOf(address(this)), _balance);
        uint256 _stakedAmount = stakeLists[msg.sender][_uniqueID].hexAmount;
        uint256 _difference;

        if (_amount <= _stakedAmount) {
            _difference = SafeMath.sub(_stakedAmount, _amount);
            contractValue = contractValue.sub(_difference);
            _difference = (_difference.mul(magnitude)) / tokenPrice;
            tokenSupply = SafeMath.sub(tokenSupply, _difference);
            tokenBalanceLedger[msg.sender] = SafeMath.sub(tokenBalanceLedger[msg.sender], _difference);
            emit Transfer(msg.sender, address(0), _difference);
        } else if (_amount > _stakedAmount) {
            _difference = SafeMath.sub(_amount, _stakedAmount);
            _difference = purchaseTokens(msg.sender, _difference);
        }

        totalStakeBalance = SafeMath.sub(totalStakeBalance, _stakedAmount);
        playerStats[msg.sender].activeStakes -= 1;

        lockedHexBalanceLedger[msg.sender] = SafeMath.sub(lockedHexBalanceLedger[msg.sender], _stakedAmount);

        emit onStakeEnd(msg.sender, _uniqueID, _amount, _difference, now);
    }

    function setName(string _name) onlyOwner public
    {
        name = _name;
    }

    function setSymbol(string _symbol) onlyOwner public
    {
        symbol = _symbol;
    }

    function setHexStaking(bool _stakeActivated) onlyOwner public
    {
        stakeActivated = _stakeActivated;
    }

    function totalHexBalance() public view returns (uint256) {
        return erc20.balanceOf(address(this));
    }

    function totalSupply() public view returns(uint256) {
        return tokenSupply;
    }

    function myTokens(bool _stakeable) public view returns (uint256) {
        address _customerAddress = msg.sender;
        return balanceOf(_customerAddress, _stakeable);
    }

    function balanceOf(address _customerAddress, bool _stakeable) public view returns (uint256) {
        if (_stakeable == false) {
            return tokenBalanceLedger[_customerAddress];
        }
        else if (_stakeable == true) {
            uint256 _lockedToken = (lockedHexBalanceLedger[_customerAddress].mul(magnitude)) / tokenPrice;
            return (tokenBalanceLedger[_customerAddress].sub(_lockedToken));
        }
    }

    function sellPrice(bool _includeFees) public view returns (uint256) {
        uint256 _fee = 0;

        if (_includeFees) {
            _fee = tokenPrice.mul(sellOutFee).div(100);
        }

        return (tokenPrice.sub(_fee));
    }

    function buyPrice(bool _includeFees) public view returns(uint256) {
        uint256 _fee = 0;
        uint256 _devFee = 0;
        uint256 _hexTewFee = 0;

        if (_includeFees) {
            _fee = tokenPrice.mul(buyInFee).div(100);
            _devFee = tokenPrice.mul(devFee).div(100);
            _hexTewFee = tokenPrice.mul(hexTewFee).div(100);            
        }

        return (tokenPrice.add(_fee).add(_devFee).add(_hexTewFee));
    }

    function calculateTokensReceived(uint256 _hexToSpend, bool _includeFees) public view returns (uint256) {
        uint256 _fee = 0;
        uint256 _devFee = 0;
        uint256 _hexTewFee = 0;

        if (_includeFees) {
            _fee = _hexToSpend.mul(buyInFee).div(100);
            _devFee = _hexToSpend.mul(devFee).div(100);
            _hexTewFee = _hexToSpend.mul(hexTewFee).div(100);     
        }

        uint256 _taxedHEX = _hexToSpend.sub(_fee).sub(_devFee).sub(_hexTewFee);
        uint256 _amountOfTokens = (_taxedHEX.mul(magnitude)) / tokenPrice;

        return _amountOfTokens;
    }

    function hexBalanceOf(address _customerAddress, bool _stakeable) public view returns(uint256) {
        uint256 _price = sellPrice(true);
        uint256 _balance = balanceOf(_customerAddress, _stakeable);
        uint256 _value = (_balance.mul(_price)) / magnitude;

        return _value;
    }

    function hexBalanceOfNoFee(address _customerAddress, bool _stakeable) public view returns(uint256) {
        uint256 _price = sellPrice(false);
        uint256 _balance = balanceOf(_customerAddress, _stakeable);
        uint256 _value = (_balance.mul(_price)) / magnitude;

        return _value;
    }

    function hexToSendFund() public view returns(uint256) {
        return totalFundCollected.sub(totalFundReceived);
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[{"name":"_includeFees","type":"bool"}],"name":"sellPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalHexBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalFundReceived","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"}],"name":"appreciateTokenPrice","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"lockedHexBalanceLedger","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"uint256"}],"name":"stakeLists","outputs":[{"name":"stakeID","type":"uint40"},{"name":"hexAmount","type":"uint256"},{"name":"stakeShares","type":"uint72"},{"name":"lockedDay","type":"uint16"},{"name":"stakedDays","type":"uint16"},{"name":"unlockedDay","type":"uint16"},{"name":"started","type":"bool"},{"name":"ended","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalStakeBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalFundCollected","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_hexToSpend","type":"uint256"},{"name":"_includeFees","type":"bool"}],"name":"calculateTokensReceived","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_stakeActivated","type":"bool"}],"name":"setHexStaking","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"},{"name":"_days","type":"uint256"}],"name":"stakeStart","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_stakeable","type":"bool"}],"name":"myTokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_includeFees","type":"bool"}],"name":"buyPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_customerAddress","type":"address"},{"name":"_stakeable","type":"bool"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"payFund","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_customerAddress","type":"address"},{"name":"_stakeable","type":"bool"}],"name":"hexBalanceOfNoFee","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"},{"name":"_customerAddress","type":"address"}],"name":"buyFor","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_toAddress","type":"address"},{"name":"_amountOfTokens","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_stakeIndex","type":"uint256"},{"name":"_stakeIdParam","type":"uint40"},{"name":"_uniqueID","type":"uint256"}],"name":"_stakeEnd","outputs":[{"name":"","type":"uint16"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_symbol","type":"string"}],"name":"setSymbol","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"string"}],"name":"setName","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalPlayer","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"playerStats","outputs":[{"name":"deposits","type":"uint256"},{"name":"withdrawals","type":"uint256"},{"name":"staked","type":"uint256"},{"name":"activeStakes","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"}],"name":"buy","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_amountOfTokens","type":"uint256"}],"name":"sell","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_customerAddress","type":"address"},{"name":"_stakeable","type":"bool"}],"name":"hexBalanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalDonation","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"hexToSendFund","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_stakeIndex","type":"uint256"},{"name":"_stakeIdParam","type":"uint40"},{"name":"_uniqueID","type":"uint256"}],"name":"stakeEnd","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"onDistribute","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"incomingHEX","type":"uint256"},{"indexed":false,"name":"tokensMinted","type":"uint256"},{"indexed":false,"name":"timestamp","type":"uint256"}],"name":"onTokenPurchase","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"tokensBurned","type":"uint256"},{"indexed":false,"name":"hexEarned","type":"uint256"},{"indexed":false,"name":"timestamp","type":"uint256"}],"name":"onTokenSell","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"tokenPrice","type":"uint256"},{"indexed":false,"name":"timestamp","type":"uint256"}],"name":"onTokenAppreciation","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"uniqueID","type":"uint256"},{"indexed":false,"name":"currentTokens","type":"uint256"},{"indexed":false,"name":"timestamp","type":"uint256"}],"name":"onStakeStart","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"uniqueID","type":"uint256"},{"indexed":false,"name":"returnAmount","type":"uint256"},{"indexed":false,"name":"difference","type":"uint256"},{"indexed":false,"name":"timestamp","type":"uint256"}],"name":"onStakeEnd","type":"event"}]

635e51c08060015560c0604052600760808190527f484558524953450000000000000000000000000000000000000000000000000060a09081526200004891600291906200015c565b506040805180820190915260048082527f484558330000000000000000000000000000000000000000000000000000000060209092019182526200008f916003916200015c565b506000600781905560088190556009819055600a819055600b819055600c819055600d556305f5e100600e556010805460a060020a60ff02191674010000000000000000000000000000000000000000179055348015620000ef57600080fd5b5060008054600160a060020a031990811673aefeb36820bd832038e8e4f73edbd5f48d3b4e5017909155600f8054821673d495cc8c7c29c7fa3e027a5759561ab68c36360917905560108054909116732b591e99afe9f32eaa6214f7b7629768c40eeb3917905562000201565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200019f57805160ff1916838001178555620001cf565b82800160010185558215620001cf579182015b82811115620001cf578251825591602001919060010190620001b2565b50620001dd929150620001e1565b5090565b620001fe91905b80821115620001dd5760008155600101620001e8565b90565b6128a380620002116000396000f3006080604052600436106101ab5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166305a3f88581146101b057806306fdde03146101dc5780630b9c51b114610266578063171b846f1461027b57806318160ddd1461029057806320b48517146102a557806321c7f162146102bf5780632607443b146102e0578063313ce5671461036157806334949cc11461038c57806334ecfbb8146103a1578063386b3d90146103b65780634b82cab7146103d357806352a438b8146103ed57806362cc2cfe14610408578063667e460614610422578063772865e21461043c5780638974372d146104625780638da5cb5b1461047757806395d89b41146104a85780639cdb88f9146104bd578063a3a8573a146104e3578063a9059cbb14610507578063b60126551461053f578063b84c82461461057b578063c47f0027146105d4578063c494a0801461062d578063cdafbbb614610642578063d96a094a14610689578063e4849b32146106a1578063e7fa534e146106b9578063ee2ac05f146106df578063ee80daf4146106f4578063feed18ff14610709575b600080fd5b3480156101bc57600080fd5b506101ca600435151561072e565b60408051918252519081900360200190f35b3480156101e857600080fd5b506101f161077b565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561022b578181015183820152602001610213565b50505050905090810190601f1680156102585780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561027257600080fd5b506101ca610806565b34801561028757600080fd5b506101ca61089d565b34801561029c57600080fd5b506101ca6108a3565b3480156102b157600080fd5b506102bd6004356108a9565b005b3480156102cb57600080fd5b506101ca600160a060020a0360043516610a05565b3480156102ec57600080fd5b50610304600160a060020a0360043516602435610a17565b6040805164ffffffffff9099168952602089019790975268ffffffffffffffffff9095168787015261ffff9384166060880152918316608087015290911660a0850152151560c0840152151560e083015251908190036101000190f35b34801561036d57600080fd5b50610376610abd565b6040805160ff9092168252519081900360200190f35b34801561039857600080fd5b506101ca610ac2565b3480156103ad57600080fd5b506101ca610ac8565b3480156103c257600080fd5b506101ca6004356024351515610ace565b3480156103df57600080fd5b506102bd6004351515610b76565b3480156103f957600080fd5b506102bd600435602435610bcd565b34801561041457600080fd5b506101ca60043515156111b1565b34801561042e57600080fd5b506101ca60043515156111be565b34801561044857600080fd5b506101ca600160a060020a03600435166024351515611255565b34801561046e57600080fd5b506102bd6112fb565b34801561048357600080fd5b5061048c61146d565b60408051600160a060020a039092168252519081900360200190f35b3480156104b457600080fd5b506101f161147c565b3480156104c957600080fd5b506101ca600160a060020a036004351660243515156114d7565b3480156104ef57600080fd5b506101ca600435600160a060020a036024351661151e565b34801561051357600080fd5b5061052b600160a060020a036004351660243561153c565b604080519115158252519081900360200190f35b34801561054b57600080fd5b5061056460043564ffffffffff6024351660443561178e565b6040805161ffff9092168252519081900360200190f35b34801561058757600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526102bd943694929360249392840191908190840183828082843750949750611a6c9650505050505050565b3480156105e057600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526102bd943694929360249392840191908190840183828082843750949750611a9a9650505050505050565b34801561063957600080fd5b506101ca611ac4565b34801561064e57600080fd5b50610663600160a060020a0360043516611aca565b604080519485526020850193909352838301919091526060830152519081900360800190f35b34801561069557600080fd5b506101ca600435611af1565b3480156106ad57600080fd5b506102bd600435611b06565b3480156106c557600080fd5b506101ca600160a060020a03600435166024351515611e17565b3480156106eb57600080fd5b506101ca611e27565b34801561070057600080fd5b506101ca611e2d565b34801561071557600080fd5b506102bd60043564ffffffffff60243516604435611e4b565b600080821561076157600e5461075e9060649061075290600463ffffffff61233a16565b9063ffffffff61236316565b90505b600e54610774908263ffffffff61237816565b9392505050565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156107fe5780601f106107d3576101008083540402835291602001916107fe565b820191906000526020600020905b8154815290600101906020018083116107e157829003601f168201915b505050505081565b601054604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600092600160a060020a0316916370a0823191602480830192602092919082900301818787803b15801561086b57600080fd5b505af115801561087f573d6000803e3d6000fd5b505050506040513d602081101561089557600080fd5b505190505b90565b600a5481565b600c5490565b6001544210156108b857600080fd5b60015460780142116108d65764174876e8003a11156108d657600080fd5b6000811161094557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f6d757374206265206120706f7369746976652076616c75650000000000000000604482015290519081900360640190fd5b61094e8161238a565b600d54610961908263ffffffff61249c16565b600d556009805482019055600c546305f5e10010156109a257600c54600d54610994906305f5e10063ffffffff61233a16565b81151561099d57fe5b04600e555b60408051828152905133917fd14b763af9e91e53a0578778058d700fec4f12297440083843749bb37d806064919081900360200190a2600e546040805191825242602083015280516000805160206128388339815191529281900390910190a150565b60056020526000908152604090205481565b601160209081526000928352604080842090915290825290208054600182015460029092015464ffffffffff909116919068ffffffffffffffffff81169061ffff690100000000000000000082048116916b01000000000000000000000081048216916d01000000000000000000000000008204169060ff6f01000000000000000000000000000000820481169170010000000000000000000000000000000090041688565b600881565b60075481565b600b5481565b600080808080808615610b2457610af160646107528a600463ffffffff61233a16565b9450610b0960646107528a600163ffffffff61233a16565b9350610b2160646107528a600163ffffffff61233a16565b92505b610b4683610b3a86818c8a63ffffffff61237816565b9063ffffffff61237816565b600e54909250610b60836305f5e10063ffffffff61233a16565b811515610b6957fe5b0498975050505050505050565b600054600160a060020a03163314610b8d57600080fd5b60108054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b600080600080600080601060149054906101000a900460ff16151560011515141515610bf857600080fd5b68ffffffffffffffffff881115610c0e57600080fd5b87610c1a3360016114d7565b1015610c2557600080fd5b601054604080517f52a438b8000000000000000000000000000000000000000000000000000000008152600481018b9052602481018a90529051600160a060020a03909216916352a438b89160448082019260009290919082900301818387803b158015610c9257600080fd5b505af1158015610ca6573d6000803e3d6000fd5b5050601054604080517f33060d900000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a0390921693506333060d9092506024808201926020929091908290030181600087803b158015610d1057600080fd5b505af1158015610d24573d6000803e3d6000fd5b505050506040513d6020811015610d3a57600080fd5b50519550610d49866001612378565b601054604080517f2607443b000000000000000000000000000000000000000000000000000000008152306004820152602481018490529051929850600160a060020a0390911691632607443b9160448082019260e0929091908290030181600087803b158015610db957600080fd5b505af1158015610dcd573d6000803e3d6000fd5b505050506040513d60e0811015610de357600080fd5b508051604080830151606084015160809094015182517b0100000000000000000000000000000000000000000000000000000064ffffffffff8616026020828101919091527701000000000000000000000000000000000000000000000068ffffffffffffffffff85160260258301528451600e818403018152602e909201948590528151959b509299509497509550909182918401908083835b60208310610e9d5780518252601f199092019160209182019101610e7e565b51815160209384036101000a600019018019909216911617905260408051929094018290039091203360009081526011835284812082825290925292902060020154919450506f01000000000000000000000000000000900460ff16159150610f07905057600080fd5b60016011600033600160a060020a0316600160a060020a031681526020019081526020016000206000838152602001908152602001600020600201600f6101000a81548160ff021916908315150217905550610100604051908101604052808664ffffffffff1681526020018981526020018568ffffffffffffffffff1681526020018461ffff1681526020018361ffff168152602001600061ffff168152602001600115158152602001600015158152506011600033600160a060020a0316600160a060020a03168152602001908152602001600020600083815260200190815260200160002060008201518160000160006101000a81548164ffffffffff021916908364ffffffffff1602179055506020820151816001015560408201518160020160006101000a81548168ffffffffffffffffff021916908368ffffffffffffffffff16021790555060608201518160020160096101000a81548161ffff021916908361ffff160217905550608082015181600201600b6101000a81548161ffff021916908361ffff16021790555060a082015181600201600d6101000a81548161ffff021916908361ffff16021790555060c082015181600201600f6101000a81548160ff02191690831515021790555060e08201518160020160106101000a81548160ff02191690831515021790555090505061110b6007548961249c565b600755336000908152600660209081526040808320600381018054600101905560020180548c0190556005909152902054611146908961249c565b33600081815260056020526040812092909255907fa1b3ce42ae14b20db76f482a3801388c971b15477c77c380941e9f2e6c088731908390611189908c90610ace565b6040805192835260208301919091524282820152519081900360600190a25050505050505050565b6000336107748184611255565b6000808080841561122357600e546111e49060649061075290600463ffffffff61233a16565b600e549093506112029060649061075290600163ffffffff61233a16565b600e549092506112209060649061075290600163ffffffff61233a16565b90505b61124c816112408461124087600e5461249c90919063ffffffff16565b9063ffffffff61249c16565b95945050505050565b60008082151561127f57600160a060020a03841660009081526004602052604090205491506112f4565b600183151514156112f457600e54600160a060020a0385166000908152600560205260409020546112ba906305f5e10063ffffffff61233a16565b8115156112c357fe5b600160a060020a03861660009081526004602052604090205491900491506112f1908263ffffffff61237816565b91505b5092915050565b6000611314600a54600b5461237890919063ffffffff16565b90506000811161132357600080fd5b600a54611336908263ffffffff61249c16565b600a55601054600f54604080517f095ea7b3000000000000000000000000000000000000000000000000000000008152600160a060020a039283166004820152602481018590529051919092169163095ea7b39160448083019260209291908290030181600087803b1580156113ab57600080fd5b505af11580156113bf573d6000803e3d6000fd5b505050506040513d60208110156113d557600080fd5b5050600f54604080517f91c05b0b000000000000000000000000000000000000000000000000000000008152600481018490529051600160a060020a03909216916391c05b0b916024808201926020929091908290030181600087803b15801561143e57600080fd5b505af1158015611452573d6000803e3d6000fd5b505050506040513d602081101561146857600080fd5b505050565b600054600160a060020a031681565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156107fe5780601f106107d3576101008083540402835291602001916107fe565b6000806000806114e7600061072e565b92506114f38686611255565b91506305f5e10061150a838563ffffffff61233a16565b81151561151357fe5b049695505050505050565b60006115298361238a565b61153382846124a9565b90505b92915050565b6000806000806000600154421015151561155557600080fd5b60015460780142116115735764174876e8003a111561157357600080fd5b600061157f60016111b1565b1161158957600080fd5b600e54336000818152600560205260409020549095506115b3906305f5e10063ffffffff61233a16565b8115156115bc57fe5b0492506000861180156115f75750600160a060020a0384166000908152600460205260409020546115f3908463ffffffff61237816565b8611155b151561160257600080fd5b611618606461075288600163ffffffff61233a16565b915061162a868363ffffffff61237816565b600160a060020a038516600090815260046020526040902054909150611656908763ffffffff61237816565b600160a060020a03808616600090815260046020526040808220939093559089168152205461168b908263ffffffff61249c16565b600160a060020a038816600090815260046020526040902055600c546116b7908363ffffffff61237816565b600c8190556305f5e10010156116ef57600c54600d546116e1906305f5e10063ffffffff61233a16565b8115156116ea57fe5b04600e555b604080518381529051600091600160a060020a038716916000805160206128588339815191529181900360200190a386600160a060020a031684600160a060020a0316600080516020612858833981519152836040518082815260200191505060405180910390a3600e546040805191825242602083015280516000805160206128388339815191529281900390910190a15060019695505050505050565b601054604080517f2607443b000000000000000000000000000000000000000000000000000000008152306004820152602481018690529051600092839283928392839283928392600160a060020a031691632607443b9160448083019260e092919082900301818787803b15801561180657600080fd5b505af115801561181a573d6000803e3d6000fd5b505050506040513d60e081101561183057600080fd5b810190808051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919050505050809650819750829850839950849a50859b505050505050506011600033600160a060020a0316600160a060020a031681526020019081526020016000206000898152602001908152602001600020600201600f9054906101000a900460ff1615156001151514801561192257503360009081526011602090815260408083208b8452909152902060020154700100000000000000000000000000000000900460ff16155b151561192d57600080fd5b3360009081526011602090815260408083208b845290915290205464ffffffffff8a8116911614801561196d57508564ffffffffff168964ffffffffff16145b151561197857600080fd5b3360009081526011602090815260408083208b845290915290206001015468ffffffffffffffffff8616146119ac57600080fd5b3360009081526011602090815260408083208b845290915290206002015468ffffffffffffffffff8581169116146119e357600080fd5b3360009081526011602090815260408083208b845290915290206002015461ffff84811669010000000000000000009092041614611a2057600080fd5b3360009081526011602090815260408083208b845290915290206002015461ffff8381166b0100000000000000000000009092041614611a5f57600080fd5b9998505050505050505050565b600054600160a060020a03163314611a8357600080fd5b8051611a9690600390602084019061279f565b5050565b600054600160a060020a03163314611ab157600080fd5b8051611a9690600290602084019061279f565b60085481565b60066020526000908152604090208054600182015460028301546003909301549192909184565b6000611afc8261238a565b61153633836124a9565b6000806000806001544210151515611b1d57600080fd5b6001546078014211611b3b5764174876e8003a1115611b3b57600080fd5b6000611b4760016111b1565b11611b5157600080fd5b600e5433600081815260056020526040902054909550611b7b906305f5e10063ffffffff61233a16565b811515611b8457fe5b049250600085118015611bbf5750600160a060020a038416600090815260046020526040902054611bbb908463ffffffff61237816565b8511155b1515611bca57600080fd5b611be76305f5e100610752600e548861233a90919063ffffffff16565b9150611bff606461075284600463ffffffff61233a16565b600c54909150611c15908663ffffffff61237816565b600c55600160a060020a038416600090815260046020526040902054611c41908663ffffffff61237816565b600160a060020a038516600090815260046020526040902055611c6a828263ffffffff61237816565b600d54909250611c80908363ffffffff61237816565b600d55600c546305f5e1001015611cb957600c54600d54611cab906305f5e10063ffffffff61233a16565b811515611cb457fe5b04600e555b601054604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a038781166004830152602482018690529151919092169163a9059cbb9160448083019260209291908290030181600087803b158015611d2857600080fd5b505af1158015611d3c573d6000803e3d6000fd5b505050506040513d6020811015611d5257600080fd5b5050600160a060020a038416600081815260066020908152604080832060010180548701905580518981529051929392600080516020612858833981519152929181900390910190a3604080518681526020810184905242818301529051600160a060020a038616917f723391258f051422e0be75f0bbcc5c94947b440ae6162c87b3efb5fecde315e5919081900360600190a2600e546040805191825242602083015280516000805160206128388339815191529281900390910190a15050505050565b6000806000806114e7600161072e565b60095481565b6000611e46600a54600b5461237890919063ffffffff16565b905090565b6000806000806000611e5e88888861178e565b945061ffff85161515611f5757601060009054906101000a9004600160a060020a0316600160a060020a0316635c9302c96040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015611ed757600080fd5b505af1158015611eeb573d6000803e3d6000fd5b505050506040513d6020811015611f0157600080fd5b50513360009081526011602090815260408083208a84529091529020600201805461ffff9092166d0100000000000000000000000000026effff0000000000000000000000000019909216919091179055611fa1565b336000908152601160209081526040808320898452909152902060020180546effff0000000000000000000000000019166d010000000000000000000000000061ffff8816021790555b601054604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b15801561200757600080fd5b505af115801561201b573d6000803e3d6000fd5b505050506040513d602081101561203157600080fd5b5051601054604080517f343009a2000000000000000000000000000000000000000000000000000000008152600481018c905264ffffffffff8b1660248201529051929650600160a060020a039091169163343009a29160448082019260009290919082900301818387803b1580156120a957600080fd5b505af11580156120bd573d6000803e3d6000fd5b50503360009081526011602090815260408083208b84528252808320600201805470ff00000000000000000000000000000000191670010000000000000000000000000000000017905560105481517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152915161219f9650600160a060020a039190911694506370a0823193602480840194938390030190829087803b15801561216d57600080fd5b505af1158015612181573d6000803e3d6000fd5b505050506040513d602081101561219757600080fd5b505185612378565b3360009081526011602090815260408083208a84529091529020600101549093509150818311612275576121d38284612378565b600d549091506121e9908263ffffffff61237816565b600d55600e54612203826305f5e10063ffffffff61233a16565b81151561220c57fe5b04905061221b600c5482612378565b600c55336000908152600460205260409020546122389082612378565b33600081815260046020908152604080832094909455835185815293519193600080516020612858833981519152929081900390910190a3612296565b81831115612296576122878383612378565b905061229333826124a9565b90505b6122a260075483612378565b600755336000908152600660209081526040808320600301805460001901905560059091529020546122d49083612378565b336000818152600560209081526040918290209390935580518981529283018690528281018490524260608401525190917f3cfedd205f4a938d3e671ceda6c16675f20d3c7aa1bf7190f572afd767dba248919081900360800190a25050505050505050565b600082151561234b57506000611536565b5081810281838281151561235b57fe5b041461153657fe5b6000818381151561237057fe5b049392505050565b60008282111561238457fe5b50900390565b601054604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018490529051600160a060020a03909216916323b872dd916064808201926020929091908290030181600087803b1580156123fd57600080fd5b505af1158015612411573d6000803e3d6000fd5b505050506040513d602081101561242757600080fd5b5051151560011461249957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f7472616e73666572206d75737420737563636565640000000000000000000000604482015290519081900360640190fd5b50565b8181018281101561153657fe5b600080600080600060015442101515156124c257600080fd5b60015460780142116124e05764174876e8003a11156124e057600080fd5b600160a060020a0387166000908152600660205260409020541515612509576008805460010190555b600160a060020a0387166000908152600660205260408120805488019055861161253257600080fd5b612548606461075288600163ffffffff61233a16565b9350612560606461075288600163ffffffff61233a16565b9250612578606461075288600463ffffffff61233a16565b60005490925061259190600160a060020a0316856126be565b50600b546125a5908463ffffffff61249c16565b600b556125c7876125c285610b3a88818c8963ffffffff61237816565b6126be565b90506125eb6125dc878563ffffffff61237816565b600d549063ffffffff61249c16565b600d5564e8d4a510006125fc611e2d565b10612609576126096112fb565b6305f5e100600c54111561263f57600c54600d54612631906305f5e10063ffffffff61233a16565b81151561263a57fe5b04600e555b604080518781526020810183905242818301529051600160a060020a038916917f810900bb33e423094372279f779b623ab22b73472a8a91fce3c018129c205019919081900360600190a2600e546040805191825242602083015280516000805160206128388339815191529281900390910190a19695505050505050565b600e5460009081906126da846305f5e10063ffffffff61233a16565b8115156126e357fe5b0490506000811180156127065750600c54612704828263ffffffff61249c16565b115b151561271157600080fd5b600160a060020a03841660009081526004602052604090205461273a908263ffffffff61249c16565b600160a060020a038516600090815260046020526040902055600c54612766908263ffffffff61249c16565b600c55604080518281529051600160a060020a038616916000916000805160206128588339815191529181900360200190a39392505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106127e057805160ff191683800117855561280d565b8280016001018555821561280d579182015b8281111561280d5782518255916020019190600101906127f2565b5061281992915061281d565b5090565b61089a91905b80821115612819576000815560010161282356000d257a4fe7c6968563ed5ac588cf5b4ddb95868eb9b8fe412c2000cb6f2843acddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820f12424168afbdea4a3c620fe797778cbbc88a78473ecac9131e22173da2668fd0029

Deployed ByteCode Sourcemap

1842:16172:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4986:8;;;15916:244;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;15916:244:0;;;;;;;;;;;;;;;;;;;;;;;3341:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3341:30:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3341:30:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15062:113;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15062:113:0;;;;4163:36;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4163:36:0;;;;15183:89;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15183:89:0;;;;5187:488;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5187:488:0;;;;;;;3787:57;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3787:57:0;-1:-1:-1;;;;;3787:57:0;;;;;4679:68;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4679:68:0;-1:-1:-1;;;;;4679:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3414:34;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3414:34:0;;;;;;;;;;;;;;;;;;;;;;;4044:36;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4044:36:0;;;;4206:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4206:37:0;;;;16638:618;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;16638:618:0;;;;;;;;;14936:118;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;14936:118:0;;;;;;;10437:1429;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10437:1429:0;;;;;;;15280:178;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;15280:178:0;;;;;;;16168:462;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;16168:462:0;;;;;;;15466:442;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;15466:442:0;-1:-1:-1;;;;;15466:442:0;;;;;;;;;5683:288;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5683:288:0;;;;1639:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1639:20:0;;;;;;;;-1:-1:-1;;;;;1639:20:0;;;;;;;;;;;;;;3378:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3378:29:0;;;;17574:308;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;17574:308:0;-1:-1:-1;;;;;17574:308:0;;;;;;;;;6142:190;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6142:190:0;;;-1:-1:-1;;;;;6142:190:0;;;;;9300:1129;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9300:1129:0;-1:-1:-1;;;;;9300:1129:0;;;;;;;;;;;;;;;;;;;;;;;;;11874:1011;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11874:1011:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14836:92;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;14836:92:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14836:92:0;;-1:-1:-1;14836:92:0;;-1:-1:-1;;;;;;;14836:92:0;14744:84;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;14744:84:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14744:84:0;;-1:-1:-1;14744:84:0;;-1:-1:-1;;;;;;;14744:84:0;4087:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4087:30:0;;;;3991:44;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3991:44:0;-1:-1:-1;;;;;3991:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5979:155;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5979:155:0;;;;;8124:1168;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8124:1168:0;;;;;17264:302;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;17264:302:0;-1:-1:-1;;;;;17264:302:0;;;;;;;;;4124:32;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4124:32:0;;;;17890:121;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17890:121:0;;;;12893:1843;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;12893:1843:0;;;;;;;;;;;15916:244;15975:7;;16024:87;;;;16064:10;;:35;;16095:3;;16064:26;;3631:1;16064:26;:14;:26;:::i;:::-;:30;:35;:30;:35;:::i;:::-;16057:42;;16024:87;16131:10;;:20;;16146:4;16131:20;:14;:20;:::i;:::-;16123:29;15916:244;-1:-1:-1;;;15916:244:0:o;3341:30::-;;;;;;;;;;;;;;-1:-1:-1;;3341:30:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;15062:113::-;15137:5;;:30;;;;;;15161:4;15137:30;;;;;;15110:7;;-1:-1:-1;;;;;15137:5:0;;:15;;:30;;;;;;;;;;;;;;15110:7;15137:5;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;15137:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15137:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15137:30:0;;-1:-1:-1;15062:113:0;;:::o;4163:36::-;;;;:::o;15183:89::-;15253:11;;15183:89;:::o;5187:488::-;1997:15;;1990:3;:22;;1982:31;;;;;;2038:15;;2056:9;2038:27;2030:3;:36;2026:102;;2106:9;2091:11;:24;;2083:33;;;;;;5282:1;5272:11;;5264:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5323:28;5343:7;5323:19;:28::i;:::-;5378:13;;:26;;5396:7;5378:26;:17;:26;:::i;:::-;5362:13;:42;5415:13;:24;;;;;;5456:11;;3493:3;-1:-1:-1;5452:113:0;;;5542:11;;5510:13;;:28;;3493:3;5510:28;:17;:28;:::i;:::-;5509:44;;;;;;;;5496:10;:57;5452:113;5582:33;;;;;;;;5595:10;;5582:33;;;;;;;;;;5651:10;;5631:36;;;;;;5663:3;5631:36;;;;;;-1:-1:-1;;;;;;;;;;;5631:36:0;;;;;;;;;5187:488;:::o;3787:57::-;;;;;;;;;;;;;:::o;4679:68::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3414:34::-;3447:1;3414:34;:::o;4044:36::-;;;;:::o;4206:37::-;;;;:::o;16638:618::-;16732:7;;;;;;16844:211;;;;16884:34;16914:3;16884:25;:11;3586:1;16884:25;:15;:25;:::i;:34::-;16877:41;-1:-1:-1;16943:32:0;16971:3;16943:23;:11;3672:1;16943:23;:15;:23;:::i;:32::-;16933:42;-1:-1:-1;17003:35:0;17034:3;17003:26;:11;3716:1;17003:26;:15;:26;:::i;:35::-;16990:48;;16844:211;17087:50;17126:10;17087:34;17113:7;17087:34;:11;17103:4;17087:21;:15;:21;:::i;:::-;:25;:34;:25;:34;:::i;:50::-;17203:10;;17067:70;;-1:-1:-1;17175:24:0;17067:70;3493:3;17175:24;:13;:24;:::i;:::-;17174:39;;;;;;;;;16638:618;-1:-1:-1;;;;;;;;16638:618:0:o;14936:118::-;1815:5;;-1:-1:-1;;;;;1815:5:0;1801:10;:19;1793:28;;;;;;15014:14;:32;;;;;;;-1:-1:-1;;15014:32:0;;;;;;;;;14936:118::o;10437:1429::-;10711:19;10741:15;10767:19;10797:17;10825:18;11076:17;2294:14;;;;;;;;;;;:22;;2312:4;2294:22;;;2286:31;;;;;;;;10543:22;10532:33;;;10524:42;;;;;;10624:7;10585:35;10603:10;10615:4;10585:17;:35::i;:::-;:46;;10577:55;;;;;;10645:5;;:32;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10645:5:0;;;;:16;;:32;;;;;:5;;:32;;;;;;;;:5;;:32;;;5:2:-1;;;;30:1;27;20:12;5:2;10645:32:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;10870:5:0;;:31;;;;;;10895:4;10870:31;;;;;;-1:-1:-1;;;;;10870:5:0;;;;-1:-1:-1;10870:16:0;;-1:-1:-1;10870:31:0;;;;;;;;;;;;;;;:5;;:31;;;5:2:-1;;;;30:1;27;20:12;5:2;10870:31:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10870:31:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10870:31:0;;-1:-1:-1;10926:28:0;10870:31;10952:1;10926:12;:28::i;:::-;11019:5;;:44;;;;;;11044:4;11019:44;;;;;;;;;;;;10912:42;;-1:-1:-1;;;;;;11019:5:0;;;;:16;;:44;;;;;;;;;;;;;;;:5;;:44;;;5:2:-1;;;;30:1;27;20:12;5:2;11019:44:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11019:44:0;;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;11019:44:0;;;;;;;;;;;;;;;;11115:40;;;;;;;11019:44;11115:40;;;;;;;;;;;;;;;;;;22:32:-1;26:21;;;22:32;6:49;;11115:40:0;;;;;;;;11105:51;;11019:44;;-1:-1:-1;11019:44:0;;-1:-1:-1;11019:44:0;;-1:-1:-1;11019:44:0;-1:-1:-1;11115:40:0;;;;11105:51;;;;11115:40;11105:51;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;11105:51:0;;;;;;;;;;;;;11204:10;-1:-1:-1;11193:22:0;;;:10;:22;;;;;:33;;;;;;;;;:41;;;11105:51;;-1:-1:-1;;11193:41:0;;;;;:50;;-1:-1:-1;11185:59:0;;-1:-1:-1;11185:59:0;;;;;11328:4;11284:10;:22;11295:10;-1:-1:-1;;;;;11284:22:0;-1:-1:-1;;;;;11284:22:0;;;;;;;;;;;;:33;11307:9;11284:33;;;;;;;;;;;:41;;;:48;;;;;;;;;;;;;;;;;;11381:92;;;;;;;;;11392:8;11381:92;;;;;;11402:7;11381:92;;;;11411:12;11381:92;;;;;;11425:10;11381:92;;;;;;11437:11;11381:92;;;;;;11457:1;11381:92;;;;;;11461:4;11381:92;;;;;;11467:5;11381:92;;;;;11345:10;:22;11356:10;-1:-1:-1;;;;;11345:22:0;-1:-1:-1;;;;;11345:22:0;;;;;;;;;;;;:33;11368:9;11345:33;;;;;;;;;;;:128;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11506:40;11519:17;;11538:7;11506:12;:40::i;:::-;11486:17;:60;11571:10;11559:23;;;;:11;:23;;;;;;;;:36;;;:41;;11599:1;11559:41;;;11611:30;;:41;;;;;;11715:22;:34;;;;;;11702:57;;11645:7;11702:12;:57::i;:::-;11688:10;11665:34;;;;:22;:34;;;;;:94;;;;11688:10;11777:81;;11802:9;;11813:39;;11837:7;;11813:23;:39::i;:::-;11777:81;;;;;;;;;;;;;11854:3;11777:81;;;;;;;;;;;;;10437:1429;;;;;;;;:::o;15280:178::-;15336:7;15383:10;15411:39;15383:10;15439;15411:9;:39::i;16168:462::-;16225:7;;;;16337:215;;;;16377:10;;:33;;16406:3;;16377:24;;3586:1;16377:24;:14;:24;:::i;:33::-;16435:10;;16370:40;;-1:-1:-1;16435:31:0;;16462:3;;16435:22;;3672:1;16435:22;:14;:22;:::i;:31::-;16494:10;;16425:41;;-1:-1:-1;16494:34:0;;16524:3;;16494:25;;3716:1;16494:25;:14;:25;:::i;:34::-;16481:47;;16337:215;16572:49;16610:10;16572:33;16597:7;16572:20;16587:4;16572:10;;:14;;:20;;;;:::i;:::-;:24;:33;:24;:33;:::i;:49::-;16564:58;16168:462;-1:-1:-1;;;;;16168:462:0:o;15466:442::-;15549:7;;15573:19;;;15569:332;;-1:-1:-1;;;;;15616:36:0;;;;;;:18;:36;;;;;;;-1:-1:-1;15609:43:0;;15569:332;15697:4;15683:18;;;;15679:222;;;15801:10;;-1:-1:-1;;;;;15742:40:0;;;;;;:22;:40;;;;;;:55;;3493:3;15742:55;:44;:55;:::i;:::-;15741:70;;;;;;;-1:-1:-1;;;;;15834:36:0;;;;;;:18;:36;;;;;;15741:70;;;;-1:-1:-1;15834:54:0;;15741:70;15834:54;:40;:54;:::i;:::-;15826:63;;15679:222;15466:442;;;;;:::o;5683:288::-;5720:17;5740:41;5763:17;;5740:18;;:22;;:41;;;;:::i;:::-;5720:61;-1:-1:-1;5812:1:0;5800:13;;5792:22;;;;;;5845:17;;:32;;5867:9;5845:32;:21;:32;:::i;:::-;5825:17;:52;5888:5;;5902:8;;5888:34;;;;;;-1:-1:-1;;;;;5902:8:0;;;5888:34;;;;;;;;;;;;:5;;;;;:13;;:34;;;;;;;;;;;;;;:5;;:34;;;5:2:-1;;;;30:1;27;20:12;5:2;5888:34:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5888:34:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;5933:8:0;;:30;;;;;;;;;;;;;;-1:-1:-1;;;;;5933:8:0;;;;:19;;:30;;;;;5888:34;;5933:30;;;;;;;;:8;;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;5933:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5933:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;5683:288:0:o;1639:20::-;;;-1:-1:-1;;;;;1639:20:0;;:::o;3378:29::-;;;;;;;;;;;;;;;-1:-1:-1;;3378:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17574:308;17664:7;17684:14;17728:16;17797:14;17701:16;17711:5;17701:9;:16::i;:::-;17684:33;;17747:39;17757:16;17775:10;17747:9;:39::i;:::-;17728:58;-1:-1:-1;3493:3:0;17815:20;17728:58;17828:6;17815:20;:12;:20;:::i;:::-;17814:34;;;;;;;;;17574:308;-1:-1:-1;;;;;;17574:308:0:o;6142:190::-;6217:7;6237:28;6257:7;6237:19;:28::i;:::-;6283:41;6298:16;6316:7;6283:14;:41::i;:::-;6276:48;;6142:190;;;;;:::o;9300:1129::-;9410:4;9427:24;9475:20;9699:17;9771:20;1997:15;;1990:3;:22;;1982:31;;;;;;;;2038:15;;2056:9;2038:27;2030:3;:36;2026:102;;2106:9;2091:11;:24;;2083:33;;;;;;2219:1;2202:14;2211:4;2202:8;:14::i;:::-;:18;2194:27;;;;;;9558:10;;9454;9499:40;;;;:22;:40;;;;;;9454:10;;-1:-1:-1;9499:55:0;;3493:3;9499:55;:44;:55;:::i;:::-;9498:70;;;;;;;;9475:93;;9607:1;9589:15;:19;:96;;;;-1:-1:-1;;;;;;9631:36:0;;;;;;:18;:36;;;;;;:54;;9672:12;9631:54;:40;:54;:::i;:::-;9612:15;:73;;9589:96;9581:105;;;;;;;;9719:41;9756:3;9719:32;:15;3543:1;9719:32;:19;:32;:::i;:41::-;9699:61;-1:-1:-1;9794:30:0;:15;9699:61;9794:30;:19;:30;:::i;:::-;-1:-1:-1;;;;;9876:36:0;;;;;;:18;:36;;;;;;9771:53;;-1:-1:-1;9876:57:0;;9917:15;9876:57;:40;:57;:::i;:::-;-1:-1:-1;;;;;9837:36:0;;;;;;;:18;:36;;;;;;:96;;;;9977:30;;;;;;;:48;;10012:12;9977:48;:34;:48;:::i;:::-;-1:-1:-1;;;;;9944:30:0;;;;;;:18;:30;;;;;:81;10052:11;;:26;;10068:9;10052:26;:15;:26;:::i;:::-;10038:11;:40;;;3493:3;-1:-1:-1;10091:120:0;;;10188:11;;10156:13;;:28;;3493:3;10156:28;:17;:28;:::i;:::-;10155:44;;;;;;;;10142:10;:57;10091:120;10228:49;;;;;;;;10263:1;;-1:-1:-1;;;;;10228:49:0;;;-1:-1:-1;;;;;;;;;;;10228:49:0;;;;;;;;10320:10;-1:-1:-1;;;;;10293:52:0;10302:16;-1:-1:-1;;;;;10293:52:0;-1:-1:-1;;;;;;;;;;;10332:12:0;10293:52;;;;;;;;;;;;;;;;;;10381:10;;10361:36;;;;;;10393:3;10361:36;;;;;;-1:-1:-1;;;;;;;;;;;10361:36:0;;;;;;;;;-1:-1:-1;10417:4:0;;9300:1129;-1:-1:-1;;;;;;9300:1129:0:o;11874:1011::-;12247:5;;:44;;;;;;12272:4;12247:44;;;;;;;;;;;;11976:6;;;;;;;;;;;;;;-1:-1:-1;;;;;12247:5:0;;:16;;:44;;;;;;;;;;;;;;11976:6;12247:5;:44;;;5:2:-1;;;;30:1;27;20:12;5:2;12247:44:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12247:44:0;;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;12247:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12170:121;;;;;;;;;;;;;;;;;;;;;;;;;12310:10;:22;12321:10;-1:-1:-1;;;;;12310:22:0;-1:-1:-1;;;;;12310:22:0;;;;;;;;;;;;:33;12333:9;12310:33;;;;;;;;;;;:41;;;;;;;;;;;;:49;;12355:4;12310:49;;;:101;;;;-1:-1:-1;12374:10:0;12363:22;;;;:10;:22;;;;;;;;:33;;;;;;;;:39;;;;;;;;:48;12310:101;12302:110;;;;;;;;12442:10;12431:22;;;;:10;:22;;;;;;;;:33;;;;;;;;:41;:58;;;;:41;;:58;:87;;;;;12510:8;12493:25;;:13;:25;;;12431:87;12423:96;;;;;;;;12549:10;12538:22;;;;:10;:22;;;;;;;;:33;;;;;;;;:43;;;12585:22;;;12538:69;12530:78;;;;;;12638:10;12627:22;;;;:10;:22;;;;;;;;:33;;;;;;;;:45;;;:61;;;;:45;;:61;12619:70;;;;;;12719:10;12708:22;;;;:10;:22;;;;;;;;:33;;;;;;;;:43;;;:57;;;;:43;;;;;:57;12700:66;;;;;;12796:10;12785:22;;;;:10;:22;;;;;;;;:33;;;;;;;;:44;;;:59;;;;:44;;;;;:59;12777:68;;;;;;12865:12;11874:1011;-1:-1:-1;;;;;;;;;11874:1011:0:o;14836:92::-;1815:5;;-1:-1:-1;;;;;1815:5:0;1801:10;:19;1793:28;;;;;;14904:16;;;;:6;;:16;;;;;:::i;:::-;;14836:92;:::o;14744:84::-;1815:5;;-1:-1:-1;;;;;1815:5:0;1801:10;:19;1793:28;;;;;;14808:12;;;;:4;;:12;;;;;:::i;4087:30::-;;;;:::o;3991:44::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5979:155::-;6025:7;6045:28;6065:7;6045:19;:28::i;:::-;6091:35;6106:10;6118:7;6091:14;:35::i;8124:1168::-;8210:24;8258:20;8482:12;8554;1997:15;;1990:3;:22;;1982:31;;;;;;;;2038:15;;2056:9;2038:27;2030:3;:36;2026:102;;2106:9;2091:11;:24;;2083:33;;;;;;2219:1;2202:14;2211:4;2202:8;:14::i;:::-;:18;2194:27;;;;;;8341:10;;8237;8282:40;;;;:22;:40;;;;;;8237:10;;-1:-1:-1;8282:55:0;;3493:3;8282:55;:44;:55;:::i;:::-;8281:70;;;;;;;;8258:93;;8390:1;8372:15;:19;:96;;;;-1:-1:-1;;;;;;8414:36:0;;;;;;:18;:36;;;;;;:54;;8455:12;8414:54;:40;:54;:::i;:::-;8395:15;:73;;8372:96;8364:105;;;;;;;;8497:46;3493:3;8497:31;8517:10;;8497:15;:19;;:31;;;;:::i;:46::-;8482:61;-1:-1:-1;8569:29:0;8594:3;8569:20;8482:61;3631:1;8569:20;:8;:20;:::i;:29::-;8625:11;;8554:44;;-1:-1:-1;8625:32:0;;8641:15;8625:32;:15;:32;:::i;:::-;8611:11;:46;-1:-1:-1;;;;;8707:36:0;;;;;;:18;:36;;;;;;:57;;8748:15;8707:57;:40;:57;:::i;:::-;-1:-1:-1;;;;;8668:36:0;;;;;;:18;:36;;;;;:96;8784:14;:4;8793;8784:14;:8;:14;:::i;:::-;8827:13;;8777:21;;-1:-1:-1;8827:23:0;;8777:21;8827:23;:17;:23;:::i;:::-;8811:13;:39;8867:11;;3493:3;-1:-1:-1;8863:113:0;;;8953:11;;8921:13;;:28;;3493:3;8921:28;:17;:28;:::i;:::-;8920:44;;;;;;;;8907:10;:57;8863:113;8988:5;;:38;;;;;;-1:-1:-1;;;;;8988:38:0;;;;;;;;;;;;;;;:5;;;;;:14;;:38;;;;;;;;;;;;;;:5;;:38;;;5:2:-1;;;;30:1;27;20:12;5:2;8988:38:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8988:38:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;;9037:29:0;;;;;;:11;8988:38;9037:29;;;;;;;:41;;:49;;;;;;9104:55;;;;;;;9037:29;;;-1:-1:-1;;;;;;;;;;;9104:55:0;;;;;;;;;;9175:57;;;;;;;;;;;;9228:3;9175:57;;;;;;-1:-1:-1;;;;;9175:57:0;;;;;;;;;;;;;9268:10;;9248:36;;;;;;9280:3;9248:36;;;;;;-1:-1:-1;;;;;;;;;;;9248:36:0;;;;;;;;;8124:1168;;;;;:::o;17264:302::-;17349:7;17369:14;17412:16;17481:14;17386:15;17396:4;17386:9;:15::i;4124:32::-;;;;:::o;17890:121::-;17935:7;17962:41;17985:17;;17962:18;;:22;;:41;;;;:::i;:::-;17955:48;;17890:121;:::o;12893:1843::-;12991:19;13331:16;13559:15;13642:21;13720:19;13013:48;13023:11;13036:13;13051:9;13013;:48::i;:::-;12991:70;-1:-1:-1;13078:17:0;;;;13074:245;;;13166:5;;;;;;;;;-1:-1:-1;;;;;13166:5:0;-1:-1:-1;;;;;13166:16:0;;:18;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13166:18:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13166:18:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13166:18:0;13122:10;13111:22;;;;:10;13166:18;13111:22;;;;;;;:33;;;;;;;;:45;;:74;;;;;;;;-1:-1:-1;;13111:74:0;;;;;;;;;13074:245;;;13258:10;13247:22;;;;:10;:22;;;;;;;;:33;;;;;;;;:45;;:60;;-1:-1:-1;;13247:60:0;;;;;;;;;13074:245;13350:5;;:30;;;;;;13374:4;13350:30;;;;;;-1:-1:-1;;;;;13350:5:0;;;;:15;;:30;;;;;;;;;;;;;;;:5;;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;13350:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13350:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13350:30:0;13393:5;;:42;;;;;;;;;;;;;;;;;;;;;13350:30;;-1:-1:-1;;;;;;13393:5:0;;;;:14;;:42;;;;;:5;;:42;;;;;;;;:5;;:42;;;5:2:-1;;;;30:1;27;20:12;5:2;13393:42:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;13511:10:0;13500:22;;;;:10;:22;;;;;;;;:33;;;;;;;;:39;;:46;;-1:-1:-1;;13500:46:0;;;;;:39;13590:5;:30;;;;;13614:4;13590:30;;;;;;13577:54;;-1:-1:-1;;;;;;13590:5:0;;;;;-1:-1:-1;13590:15:0;;:30;;;;;13500:22;13590:30;;;;;;;:5;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;13590:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13590:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13590:30:0;13622:8;13577:12;:54::i;:::-;13677:10;13666:22;;;;:10;:22;;;;;;;;:33;;;;;;;;:43;;;13559:72;;-1:-1:-1;13666:43:0;-1:-1:-1;13756:24:0;;;13752:655;;13811:36;13824:13;13839:7;13811:12;:36::i;:::-;13878:13;;13797:50;;-1:-1:-1;13878:30:0;;13797:50;13878:30;:17;:30;:::i;:::-;13862:13;:46;13968:10;;13938:26;:11;3493:3;13938:26;:15;:26;:::i;:::-;13937:41;;;;;;;;13923:55;;14007:38;14020:11;;14033;14007:12;:38::i;:::-;13993:11;:52;14125:10;14106:30;;;;:18;:30;;;;;;14093:57;;14138:11;14093:12;:57::i;:::-;14079:10;14060:30;;;;:18;:30;;;;;;;;:90;;;;14170:45;;;;;;;14060:30;;-1:-1:-1;;;;;;;;;;;14170:45:0;;;;;;;;;;13752:655;;;14247:13;14237:7;:23;14233:174;;;14291:36;14304:7;14313:13;14291:12;:36::i;:::-;14277:50;;14356:39;14371:10;14383:11;14356:14;:39::i;:::-;14342:53;;14233:174;14439:46;14452:17;;14471:13;14439:12;:46::i;:::-;14419:17;:66;14508:10;14496:23;;;;:11;:23;;;;;;;;:36;;:41;;-1:-1:-1;;14496:41:0;;;14600:22;:34;;;;;;14587:63;;14636:13;14587:12;:63::i;:::-;14573:10;14550:34;;;;:22;:34;;;;;;;;;:100;;;;14668:60;;;;;;;;;;;;;;;;;14724:3;14668:60;;;;;14573:10;;14668:60;;;;;;;;;;12893:1843;;;;;;;;:::o;50:174::-;108:9;130:6;;126:37;;;-1:-1:-1;154:1:0;147:8;;126:37;-1:-1:-1;173:5:0;;;177:1;173;:5;192;;;;;;;;:10;185:18;;;230:92;288:7;315:1;311;:5;;;;;;;;;230:92;-1:-1:-1;;;230:92:0:o;328:113::-;386:7;409:6;;;;402:14;;;;-1:-1:-1;430:5:0;;;328:113::o;5010:169::-;5083:5;;:54;;;;;;5102:10;5083:54;;;;5122:4;5083:54;;;;;;;;;;;;-1:-1:-1;;;;;5083:5:0;;;;:18;;:54;;;;;;;;;;;;;;;:5;;:54;;;5:2:-1;;;;30:1;27;20:12;5:2;5083:54:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5083:54:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5083:54:0;:62;;5141:4;5083:62;5075:96;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5010:169;:::o;447:127::-;527:5;;;546:6;;;;539:14;;;6899:1217;7000:7;7226:15;7288:18;7356:12;7529:23;1997:15;;1990:3;:22;;1982:31;;;;;;;;2038:15;;2056:9;2038:27;2030:3;:36;2026:102;;2106:9;2091:11;:24;;2083:33;;;;;;-1:-1:-1;;;;;7024:29:0;;;;;;:11;:29;;;;;:38;:43;7020:89;;;7084:11;:13;;;;;;7020:89;-1:-1:-1;;;;;7121:29:0;;;;;;:11;:29;;;;;:54;;;;;;7196:16;;7188:25;;;;;;7244:33;7273:3;7244:24;:12;3672:1;7244:24;:16;:24;:::i;:33::-;7226:51;-1:-1:-1;7309:36:0;7341:3;7309:27;:12;3716:1;7309:27;:16;:27;:::i;:36::-;7288:57;-1:-1:-1;7371:35:0;7402:3;7371:26;:12;3586:1;7371:26;:16;:26;:::i;:35::-;7435:5;;7356:50;;-1:-1:-1;7419:31:0;;-1:-1:-1;;;;;7435:5:0;7442:7;7419:15;:31::i;:::-;-1:-1:-1;7482:18:0;;:34;;7505:10;7482:34;:22;:34;:::i;:::-;7461:18;:55;7555:86;7571:16;7589:51;7629:10;7589:35;7616:7;7589:35;:12;7606:4;7589:22;:16;:22;:::i;:51::-;7555:15;:86::i;:::-;7529:112;-1:-1:-1;7682:47:0;7700:28;:12;7717:10;7700:28;:16;:28;:::i;:::-;7682:13;;;:47;:17;:47;:::i;:::-;7666:13;:63;7765:7;7746:15;:13;:15::i;:::-;:26;7742:68;;7789:9;:7;:9::i;:::-;3493:3;7826:11;;:23;7822:113;;;7912:11;;7880:13;;:28;;3493:3;7880:28;:17;:28;:::i;:::-;7879:44;;;;;;;;7866:10;:57;7822:113;7952:69;;;;;;;;;;;;8017:3;7952:69;;;;;;-1:-1:-1;;;;;7952:69:0;;;;;;;;;;;;;8057:10;;8037:36;;;;;;8069:3;8037:36;;;;;;-1:-1:-1;;;;;;;;;;;8037:36:0;;;;;;;;;8093:15;6899:1217;-1:-1:-1;;;;;;6899:1217:0:o;6340:551::-;6507:10;;6429:7;;;;6476:27;:12;3493:3;6476:27;:16;:27;:::i;:::-;6475:42;;;;;;;;6449:68;;6556:1;6538:15;:19;:69;;;;-1:-1:-1;6596:11:0;;6561:32;:15;6596:11;6561:32;:19;:32;:::i;:::-;:46;6538:69;6530:78;;;;;;;;-1:-1:-1;;;;;6661:36:0;;;;;;:18;:36;;;;;;:57;;6702:15;6661:57;:40;:57;:::i;:::-;-1:-1:-1;;;;;6621:36:0;;;;;;:18;:36;;;;;:97;6743:11;;:32;;6759:15;6743:32;:15;:32;:::i;:::-;6729:11;:46;6793:55;;;;;;;;-1:-1:-1;;;;;6793:55:0;;;6810:1;;-1:-1:-1;;;;;;;;;;;6793:55:0;;;;;;;;6868:15;6340:551;-1:-1:-1;;;6340:551:0:o;1842:16172::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1842:16172:0;;;-1:-1:-1;1842:16172:0;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;

Swarm Source

bzzr://f12424168afbdea4a3c620fe797778cbbc88a78473ecac9131e22173da2668fd

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.

Validator Index Block Amount
View All Withdrawals

Txn Hash Block Value Eth2 PubKey Valid
View All Deposits
[ 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.