ETH Price: $3,159.46 (+1.37%)
Gas: 1 Gwei

Contract

0xd7657bDF782f43bA7F5f5E8456B481616E636Ae9
 

Overview

ETH Balance

1.841277099558760759 ETH

Eth Value

$5,817.44 (@ $3,159.46/ETH)

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Register126745182021-06-21 0:34:151118 days ago1624235655IN
0xd7657bDF...16E636Ae9
0 ETH0.000123795
Register81675582019-07-17 9:54:011823 days ago1563357241IN
0xd7657bDF...16E636Ae9
0 ETH0.000117515
Register81675552019-07-17 9:53:171823 days ago1563357197IN
0xd7657bDF...16E636Ae9
0 ETH0.000116235
Register81675042019-07-17 9:40:341823 days ago1563356434IN
0xd7657bDF...16E636Ae9
0 ETH0.001188225
Register80280542019-06-25 15:47:401845 days ago1561477660IN
0xd7657bDF...16E636Ae9
0 ETH0.001187585
Register77684862019-05-16 1:36:051885 days ago1557970565IN
0xd7657bDF...16E636Ae9
0 ETH0.00118955
Register75762862019-04-16 2:31:571915 days ago1555381917IN
0xd7657bDF...16E636Ae9
0 ETH0.001188545
Register75458562019-04-11 9:07:121920 days ago1554973632IN
0xd7657bDF...16E636Ae9
0 ETH0.001188865
Register75452792019-04-11 6:54:091920 days ago1554965649IN
0xd7657bDF...16E636Ae9
0 ETH0.001186945
Register75437822019-04-11 1:14:041920 days ago1554945244IN
0xd7657bDF...16E636Ae9
0 ETH0.00058812
Register75333372019-04-09 10:21:101922 days ago1554805270IN
0xd7657bDF...16E636Ae9
0 ETH0.001406835
Register75321062019-04-09 5:42:091922 days ago1554788529IN
0xd7657bDF...16E636Ae9
0 ETH0.000116235
Register75321042019-04-09 5:41:231922 days ago1554788483IN
0xd7657bDF...16E636Ae9
0 ETH0.001186945
Register75064882019-04-05 6:26:221926 days ago1554445582IN
0xd7657bDF...16E636Ae9
0 ETH0.000121995
Register75009862019-04-04 9:50:541927 days ago1554371454IN
0xd7657bDF...16E636Ae9
0 ETH0.001373675
Register74961122019-04-03 15:37:541928 days ago1554305874IN
0xd7657bDF...16E636Ae9
0 ETH0.0003263414
Register74960312019-04-03 15:19:281928 days ago1554304768IN
0xd7657bDF...16E636Ae9
0 ETH0.0033243214
Register74955302019-04-03 13:23:031928 days ago1554297783IN
0xd7657bDF...16E636Ae9
0 ETH0.001288395
Register74901962019-04-02 17:06:521929 days ago1554224812IN
0xd7657bDF...16E636Ae9
0 ETH0.001187585
Register74519272019-03-27 17:23:251935 days ago1553707405IN
0xd7657bDF...16E636Ae9
0 ETH0.00118955
Register74453782019-03-26 16:58:251936 days ago1553619505IN
0xd7657bDF...16E636Ae9
0 ETH0.001188225
Register74449482019-03-26 15:17:331936 days ago1553613453IN
0xd7657bDF...16E636Ae9
0 ETH0.001188225
Register74295832019-03-24 5:40:541938 days ago1553406054IN
0xd7657bDF...16E636Ae9
0 ETH0.000117835
Register74295792019-03-24 5:39:581938 days ago1553405998IN
0xd7657bDF...16E636Ae9
0 ETH0.001188545
Register74254362019-03-23 14:15:551939 days ago1553350555IN
0xd7657bDF...16E636Ae9
0 ETH0.001187265
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
75822602019-04-17 0:52:351914 days ago1555462355
0xd7657bDF...16E636Ae9
0.0006174 ETH
74965362019-04-03 17:08:291928 days ago1554311309
0xd7657bDF...16E636Ae9
0.0009 ETH
74891742019-04-02 13:29:521929 days ago1554211792
0xd7657bDF...16E636Ae9
0.05747272 ETH
74711492019-03-30 17:53:461932 days ago1553968426
0xd7657bDF...16E636Ae9
0.05708339 ETH
74691742019-03-30 10:25:211932 days ago1553941521
0xd7657bDF...16E636Ae9
0.03608636 ETH
74623122019-03-29 8:25:291933 days ago1553847929
0xd7657bDF...16E636Ae9
0.06177991 ETH
74571152019-03-28 12:48:551934 days ago1553777335
0xd7657bDF...16E636Ae9
0.00045 ETH
74545982019-03-28 3:23:571934 days ago1553743437
0xd7657bDF...16E636Ae9
0.02389823 ETH
74380942019-03-25 13:24:421937 days ago1553520282
0xd7657bDF...16E636Ae9
0.0009 ETH
74353092019-03-25 2:56:571937 days ago1553482617
0xd7657bDF...16E636Ae9
0.00042495 ETH
74320572019-03-24 15:01:211938 days ago1553439681
0xd7657bDF...16E636Ae9
0.00227884 ETH
74307312019-03-24 10:02:191938 days ago1553421739
0xd7657bDF...16E636Ae9
0.11085195 ETH
74297982019-03-24 6:32:561938 days ago1553409176
0xd7657bDF...16E636Ae9
0.02358247 ETH
74161572019-03-22 3:34:371940 days ago1553225677
0xd7657bDF...16E636Ae9
0.02628418 ETH
73849522019-03-17 6:43:401945 days ago1552805020
0xd7657bDF...16E636Ae9
0.0012375 ETH
73730222019-03-15 10:22:581947 days ago1552645378
0xd7657bDF...16E636Ae9
0.0003 ETH
73711432019-03-15 3:20:591947 days ago1552620059
0xd7657bDF...16E636Ae9
0.0014454 ETH
73610372019-03-13 13:43:301949 days ago1552484610
0xd7657bDF...16E636Ae9
0.0229632 ETH
73600912019-03-13 10:12:501949 days ago1552471970
0xd7657bDF...16E636Ae9
0.01500465 ETH
73556492019-03-12 17:31:091950 days ago1552411869
0xd7657bDF...16E636Ae9
0.0099776 ETH
73524562019-03-12 5:32:281950 days ago1552368748
0xd7657bDF...16E636Ae9
0.00285 ETH
73514442019-03-12 1:42:401950 days ago1552354960
0xd7657bDF...16E636Ae9
0.00300045 ETH
73459462019-03-11 5:20:571951 days ago1552281657
0xd7657bDF...16E636Ae9
0.00300045 ETH
73362292019-03-09 17:03:161953 days ago1552150996
0xd7657bDF...16E636Ae9
0.0066021 ETH
73350972019-03-09 12:50:431953 days ago1552135843
0xd7657bDF...16E636Ae9
0.0069809 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Citizen

Compiler Version
v0.4.25+commit.59dbf8f1

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2019-01-12
*/

pragma solidity ^0.4.24;

/*
*   gibmireinbier
*   0xA4a799086aE18D7db6C4b57f496B081b44888888
*   [email protected]
*/

library Helper {
    using SafeMath for uint256;

    uint256 constant public ZOOM = 1000;
    uint256 constant public SDIVIDER = 3450000;
    uint256 constant public PDIVIDER = 3450000;
    uint256 constant public RDIVIDER = 1580000;
    // Starting LS price (SLP)
    uint256 constant public SLP = 0.002 ether;
    // Starting Added Time (SAT)
    uint256 constant public SAT = 30; // seconds
    // Price normalization (PN)
    uint256 constant public PN = 777;
    // EarlyIncome base
    uint256 constant public PBASE = 13;
    uint256 constant public PMULTI = 26;
    uint256 constant public LBase = 15;

    uint256 constant public ONE_HOUR = 3600;
    uint256 constant public ONE_DAY = 24 * ONE_HOUR;
    //uint256 constant public TIMEOUT0 = 3 * ONE_HOUR;
    uint256 constant public TIMEOUT1 = 12 * ONE_HOUR;
    
    function bytes32ToString (bytes32 data)
        public
        pure
        returns (string) 
    {
        bytes memory bytesString = new bytes(32);
        for (uint j=0; j<32; j++) {
            byte char = byte(bytes32(uint(data) * 2 ** (8 * j)));
            if (char != 0) {
                bytesString[j] = char;
            }
        }
        return string(bytesString);
    }
    
    function uintToBytes32(uint256 n)
        public
        pure
        returns (bytes32) 
    {
        return bytes32(n);
    }
    
    function bytes32ToUint(bytes32 n) 
        public
        pure
        returns (uint256) 
    {
        return uint256(n);
    }
    
    function stringToBytes32(string memory source) 
        public
        pure
        returns (bytes32 result) 
    {
        bytes memory tempEmptyStringTest = bytes(source);
        if (tempEmptyStringTest.length == 0) {
            return 0x0;
        }

        assembly {
            result := mload(add(source, 32))
        }
    }
    
    function stringToUint(string memory source) 
        public
        pure
        returns (uint256)
    {
        return bytes32ToUint(stringToBytes32(source));
    }
    
    function uintToString(uint256 _uint) 
        public
        pure
        returns (string)
    {
        return bytes32ToString(uintToBytes32(_uint));
    }

/*     
    function getSlice(uint256 begin, uint256 end, string text) public pure returns (string) {
        bytes memory a = new bytes(end-begin+1);
        for(uint i = 0; i <= end - begin; i++){
            a[i] = bytes(text)[i + begin - 1];
        }
        return string(a);    
    }
 */
    function validUsername(string _username)
        public
        pure
        returns(bool)
    {
        uint256 len = bytes(_username).length;
        // Im Raum [4, 18]
        if ((len < 4) || (len > 18)) return false;
        // Letzte Char != ' '
        if (bytes(_username)[len-1] == 32) return false;
        // Erste Char != '0'
        return uint256(bytes(_username)[0]) != 48;
    }

    // Lottery Helper

    // Seconds added per LT = SAT - ((Current no. of LT + 1) / SDIVIDER)^6
    function getAddedTime(uint256 _rTicketSum, uint256 _tAmount)
        public
        pure
        returns (uint256)
    {
        //Luppe = 10000 = 10^4
        uint256 base = (_rTicketSum + 1).mul(10000) / SDIVIDER;
        uint256 expo = base;
        expo = expo.mul(expo).mul(expo); // ^3
        expo = expo.mul(expo); // ^6
        // div 10000^6
        expo = expo / (10**24);

        if (expo > SAT) return 0;
        return (SAT - expo).mul(_tAmount);
    }

    function getNewEndTime(uint256 toAddTime, uint256 slideEndTime, uint256 fixedEndTime)
        public
        view
        returns(uint256)
    {
        uint256 _slideEndTime = (slideEndTime).add(toAddTime);
        uint256 timeout = _slideEndTime.sub(block.timestamp);
        // timeout capped at TIMEOUT1
        if (timeout > TIMEOUT1) timeout = TIMEOUT1;
        _slideEndTime = (block.timestamp).add(timeout);
        // Capped at fixedEndTime
        if (_slideEndTime > fixedEndTime)  return fixedEndTime;
        return _slideEndTime;
    }

    // get random in range [1, _range] with _seed
    function getRandom(uint256 _seed, uint256 _range)
        public
        pure
        returns(uint256)
    {
        if (_range == 0) return _seed;
        return (_seed % _range) + 1;
    }


    function getEarlyIncomeMul(uint256 _ticketSum)
        public
        pure
        returns(uint256)
    {
        // Early-Multiplier = 1 + PBASE / (1 + PMULTI * ((Current No. of LT)/RDIVIDER)^6)
        uint256 base = _ticketSum * ZOOM / RDIVIDER;
        uint256 expo = base.mul(base).mul(base); //^3
        expo = expo.mul(expo) / (ZOOM**6); //^6
        return (1 + PBASE / (1 + expo.mul(PMULTI)));
    }

    // get reveiced Tickets, based on current round ticketSum
    function getTAmount(uint256 _ethAmount, uint256 _ticketSum) 
        public
        pure
        returns(uint256)
    {
        uint256 _tPrice = getTPrice(_ticketSum);
        return _ethAmount.div(_tPrice);
    }

    // Lotto-Multiplier = 1 + LBase * (Current No. of Tickets / PDivider)^6
    function getTMul(uint256 _ticketSum) // Unit Wei
        public
        pure
        returns(uint256)
    {
        uint256 base = _ticketSum * ZOOM / PDIVIDER;
        uint256 expo = base.mul(base).mul(base);
        expo = expo.mul(expo); // ^6
        return 1 + expo.mul(LBase) / (10**18);
    }

    // get ticket price, based on current round ticketSum
    //unit in ETH, no need / zoom^6
    function getTPrice(uint256 _ticketSum)
        public
        pure
        returns(uint256)
    {
        uint256 base = (_ticketSum + 1).mul(ZOOM) / PDIVIDER;
        uint256 expo = base;
        expo = expo.mul(expo).mul(expo); // ^3
        expo = expo.mul(expo); // ^6
        uint256 tPrice = SLP + expo / PN;
        return tPrice;
    }

    // get weight of slot, chance to win grandPot
    function getSlotWeight(uint256 _ethAmount, uint256 _ticketSum)
        public
        pure
        returns(uint256)
    {
        uint256 _tAmount = getTAmount(_ethAmount, _ticketSum);
        uint256 _tMul = getTMul(_ticketSum);
        return (_tAmount).mul(_tMul);
    }

    // used to draw grandpot results
    // weightRange = roundWeight * grandpot / (grandpot - initGrandPot)
    // grandPot = initGrandPot + round investedSum(for grandPot)
    function getWeightRange(uint256 grandPot, uint256 initGrandPot, uint256 curRWeight)
        public
        pure
        returns(uint256)
    {
        //calculate round grandPot-investedSum
        uint256 grandPotInvest = grandPot - initGrandPot;
        if (grandPotInvest == 0) return 8;
        uint256 zoomMul = grandPot * ZOOM / grandPotInvest;
        uint256 weightRange = zoomMul * curRWeight / ZOOM;
        if (weightRange < curRWeight) weightRange = curRWeight;
        return weightRange;
    }
}

interface F2mInterface {
    function joinNetwork(address[6] _contract) public;
    // one time called
    function disableRound0() public;
    function activeBuy() public;
    // Dividends from all sources (DApps, Donate ...)
    function pushDividends() public payable;
    /**
     * Converts all of caller's dividends to tokens.
     */
    //function reinvest() public;
    //function buy() public payable;
    function buyFor(address _buyer) public payable;
    function sell(uint256 _tokenAmount) public;
    function exit() public;
    function devTeamWithdraw() public returns(uint256);
    function withdrawFor(address sender) public returns(uint256);
    function transfer(address _to, uint256 _tokenAmount) public returns(bool);
    /*----------  ADMINISTRATOR ONLY FUNCTIONS  ----------*/
    function setAutoBuy() public;
    /*==========================================
    =            public FUNCTIONS            =
    ==========================================*/
    // function totalEthBalance() public view returns(uint256);
    function ethBalance(address _address) public view returns(uint256);
    function myBalance() public view returns(uint256);
    function myEthBalance() public view returns(uint256);

    function swapToken() public;
    function setNewToken(address _newTokenAddress) public;
}

interface BankInterface {
    function joinNetwork(address[6] _contract) public;
    // Core functions
    function pushToBank(address _player) public payable;
}


interface DevTeamInterface {
    function setF2mAddress(address _address) public;
    function setLotteryAddress(address _address) public;
    function setCitizenAddress(address _address) public;
    function setBankAddress(address _address) public;
    function setRewardAddress(address _address) public;
    function setWhitelistAddress(address _address) public;

    function setupNetwork() public;
}

interface LotteryInterface {
    function joinNetwork(address[6] _contract) public;
    // call one time
    function activeFirstRound() public;
    // Core Functions
    function pushToPot() public payable;
    function finalizeable() public view returns(bool);
    // bounty
    function finalize() public;
    function buy(string _sSalt) public payable;
    function buyFor(string _sSalt, address _sender) public payable;
    //function withdraw() public;
    function withdrawFor(address _sender) public returns(uint256);

    function getRewardBalance(address _buyer) public view returns(uint256);
    function getTotalPot() public view returns(uint256);
    // EarlyIncome
    function getEarlyIncomeByAddress(address _buyer) public view returns(uint256);
    // included claimed amount
    // function getEarlyIncomeByAddressRound(address _buyer, uint256 _rId) public view returns(uint256);
    function getCurEarlyIncomeByAddress(address _buyer) public view returns(uint256);
    // function getCurEarlyIncomeByAddressRound(address _buyer, uint256 _rId) public view returns(uint256);
    function getCurRoundId() public view returns(uint256);
    // set endRound, prepare to upgrade new version
    function setLastRound(uint256 _lastRoundId) public;
    function getPInvestedSumByRound(uint256 _rId, address _buyer) public view returns(uint256);
    function cashoutable(address _address) public view returns(bool);
    function isLastRound() public view returns(bool);
}

/**
 * @title SafeMath
 * @dev Math operations with safety checks that revert on error
 */
library SafeMath {
    int256 constant private INT256_MIN = -2**255;

    /**
    * @dev Multiplies two unsigned integers, reverts on 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-solidity/pull/522
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b);

        return c;
    }

    /**
    * @dev Multiplies two signed integers, reverts on overflow.
    */
    function mul(int256 a, int256 b) internal pure returns (int256) {
        // 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-solidity/pull/522
        if (a == 0) {
            return 0;
        }

        require(!(a == -1 && b == INT256_MIN)); // This is the only case of overflow not detected by the check below

        int256 c = a * b;
        require(c / a == b);

        return c;
    }

    /**
    * @dev Integer division of two unsigned integers truncating the quotient, reverts on division by zero.
    */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    /**
    * @dev Integer division of two signed integers truncating the quotient, reverts on division by zero.
    */
    function div(int256 a, int256 b) internal pure returns (int256) {
        require(b != 0); // Solidity only automatically asserts when dividing by 0
        require(!(b == -1 && a == INT256_MIN)); // This is the only case of overflow

        int256 c = a / b;

        return c;
    }

    /**
    * @dev Subtracts two unsigned integers, reverts on overflow (i.e. if subtrahend is greater than minuend).
    */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= a);
        uint256 c = a - b;

        return c;
    }

    /**
    * @dev Subtracts two signed integers, reverts on overflow.
    */
    function sub(int256 a, int256 b) internal pure returns (int256) {
        int256 c = a - b;
        require((b >= 0 && c <= a) || (b < 0 && c > a));

        return c;
    }

    /**
    * @dev Adds two unsigned integers, reverts on overflow.
    */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a);

        return c;
    }

    /**
    * @dev Adds two signed integers, reverts on overflow.
    */
    function add(int256 a, int256 b) internal pure returns (int256) {
        int256 c = a + b;
        require((b >= 0 && c >= a) || (b < 0 && c < a));

        return c;
    }

    /**
    * @dev Divides two unsigned integers and returns the remainder (unsigned integer modulo),
    * reverts when dividing by zero.
    */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b != 0);
        return a % b;
    }
}

contract Citizen {
    using SafeMath for uint256;

    event Register(address indexed _member, address indexed _ref);

    modifier withdrawRight(){
        require((msg.sender == address(bankContract)), "Bank only");
        _;
    }

    modifier onlyAdmin() {
        require(msg.sender == devTeam, "admin required");
        _;
    }

    modifier notRegistered(){
        require(!isCitizen[msg.sender], "already exist");
        _;
    }

    modifier registered(){
        require(isCitizen[msg.sender], "must be a citizen");
        _;
    }

    struct Profile{
        uint256 id;
        uint256 username;
        uint256 refWallet;
        address ref;
        address[] refTo;
        uint256 totalChild;
        uint256 donated;
        uint256 treeLevel;
        // logs
        uint256 totalSale;
        uint256 allRoundRefIncome;
        mapping(uint256 => uint256) roundRefIncome;
        mapping(uint256 => uint256) roundRefWallet;
    }

    //bool public oneWayTicket = true;
    mapping (address => Profile) public citizen;
    mapping (address => bool) public isCitizen;
    mapping (uint256 => address) public idAddress;
    mapping (uint256 => address) public usernameAddress;

    mapping (uint256 => address[]) levelCitizen;

    BankInterface bankContract;
    LotteryInterface lotteryContract;
    F2mInterface f2mContract;
    address devTeam;

    uint256 citizenNr;
    uint256 lastLevel;

    // logs
    mapping(uint256 => uint256) public totalRefByRound;
    uint256 public totalRefAllround;

    constructor (address _devTeam)
        public
    {
        DevTeamInterface(_devTeam).setCitizenAddress(address(this));
        devTeam = _devTeam;

        // first citizen is the development team
        citizenNr = 1;
        idAddress[1] = devTeam;
        isCitizen[devTeam] = true;
        //root => self ref
        citizen[devTeam].ref = devTeam;
        // username rules bypass
        uint256 _username = Helper.stringToUint("f2m");
        citizen[devTeam].username = _username;
        usernameAddress[_username] = devTeam; 
        citizen[devTeam].id = 1;
        citizen[devTeam].treeLevel = 1;
        levelCitizen[1].push(devTeam);
        lastLevel = 1;
    }

    // _contract = [f2mAddress, bankAddress, citizenAddress, lotteryAddress, rewardAddress, whitelistAddress];
    function joinNetwork(address[6] _contract)
        public
    {
        require(address(lotteryContract) == 0,"already setup");
        f2mContract = F2mInterface(_contract[0]);
        bankContract = BankInterface(_contract[1]);
        lotteryContract = LotteryInterface(_contract[3]);
    }

    /*----------  WRITE FUNCTIONS  ----------*/
    function updateTotalChild(address _address)
        private
    {
        address _member = _address;
        while(_member != devTeam) {
            _member = getRef(_member);
            citizen[_member].totalChild ++;
        }
    }

    function register(string _sUsername, address _ref)
        public
        notRegistered()
    {
        require(Helper.validUsername(_sUsername), "invalid username");
        address sender = msg.sender;
        uint256 _username = Helper.stringToUint(_sUsername);
        require(usernameAddress[_username] == 0x0, "username already exist");
        usernameAddress[_username] = sender;
        //ref must be a citizen, else ref = devTeam
        address validRef = isCitizen[_ref] ? _ref : devTeam;

        //Welcome new Citizen
        isCitizen[sender] = true;
        citizen[sender].username = _username;
        citizen[sender].ref = validRef;
        citizenNr++;

        idAddress[citizenNr] = sender;
        citizen[sender].id = citizenNr;
        
        uint256 refLevel = citizen[validRef].treeLevel;
        if (refLevel == lastLevel) lastLevel++;
        citizen[sender].treeLevel = refLevel + 1;
        levelCitizen[refLevel + 1].push(sender);
        //add child
        citizen[validRef].refTo.push(sender);
        updateTotalChild(sender);
        emit Register(sender, validRef);
    }

    function updateUsername(string _sNewUsername)
        public
        registered()
    {
        require(Helper.validUsername(_sNewUsername), "invalid username");
        address sender = msg.sender;
        uint256 _newUsername = Helper.stringToUint(_sNewUsername);
        require(usernameAddress[_newUsername] == 0x0, "username already exist");
        uint256 _oldUsername = citizen[sender].username;
        citizen[sender].username = _newUsername;
        usernameAddress[_oldUsername] = 0x0;
        usernameAddress[_newUsername] = sender;
    }

    //Sources: Token contract, DApps
    function pushRefIncome(address _sender)
        public
        payable
    {
        uint256 curRoundId = lotteryContract.getCurRoundId();
        uint256 _amount = msg.value;
        address sender = _sender;
        address ref = getRef(sender);
        // logs
        citizen[sender].totalSale += _amount;
        totalRefAllround += _amount;
        totalRefByRound[curRoundId] += _amount;
        // push to root
        // lower level cost less gas
        while (sender != devTeam) {
            _amount = _amount / 2;
            citizen[ref].refWallet = _amount.add(citizen[ref].refWallet);
            citizen[ref].roundRefIncome[curRoundId] += _amount;
            citizen[ref].allRoundRefIncome += _amount;
            sender = ref;
            ref = getRef(sender);
        }
        citizen[sender].refWallet = _amount.add(citizen[ref].refWallet);
        // devTeam Logs
        citizen[sender].roundRefIncome[curRoundId] += _amount;
        citizen[sender].allRoundRefIncome += _amount;
    }

    function withdrawFor(address sender) 
        public
        withdrawRight()
        returns(uint256)
    {
        uint256 amount = citizen[sender].refWallet;
        if (amount == 0) return 0;
        citizen[sender].refWallet = 0;
        bankContract.pushToBank.value(amount)(sender);
        return amount;
    }

    function devTeamWithdraw()
        public
        onlyAdmin()
    {
        uint256 _amount = citizen[devTeam].refWallet;
        if (_amount == 0) return;
        devTeam.transfer(_amount);
        citizen[devTeam].refWallet = 0;
    }

    function devTeamReinvest()
        public
        returns(uint256)
    {
        address sender = msg.sender;
        require(sender == address(f2mContract), "only f2m contract");
        uint256 _amount = citizen[devTeam].refWallet;
        citizen[devTeam].refWallet = 0;
        address(f2mContract).transfer(_amount);
        return _amount;
    }

    /*----------  READ FUNCTIONS  ----------*/

    function getTotalChild(address _address)
        public
        view
        returns(uint256)
    {
        return citizen[_address].totalChild;
    }

    function getAllRoundRefIncome(address _address)
        public
        view
        returns(uint256)
    {
        return citizen[_address].allRoundRefIncome;
    }

    function getRoundRefIncome(address _address, uint256 _rId)
        public
        view
        returns(uint256)
    {
        return citizen[_address].roundRefIncome[_rId];
    }

    function getRefWallet(address _address)
        public
        view
        returns(uint256)
    {
        return citizen[_address].refWallet;
    }

    function getAddressById(uint256 _id)
        public
        view
        returns (address)
    {
        return idAddress[_id];
    }

    function getAddressByUserName(string _username)
        public
        view
        returns (address)
    {
        return usernameAddress[Helper.stringToUint(_username)];
    }

    function exist(string _username)
        public
        view
        returns (bool)
    {
        return usernameAddress[Helper.stringToUint(_username)] != 0x0;
    }

    function getId(address _address)
        public
        view
        returns (uint256)
    {
        return citizen[_address].id;
    }

    function getUsername(address _address)
        public
        view
        returns (string)
    {
        if (!isCitizen[_address]) return "";
        return Helper.uintToString(citizen[_address].username);
    }

    function getUintUsername(address _address)
        public
        view
        returns (uint256)
    {
        return citizen[_address].username;
    }

    function getRef(address _address)
        public
        view
        returns (address)
    {
        return citizen[_address].ref == 0x0 ? devTeam : citizen[_address].ref;
    }

    function getRefTo(address _address)
        public
        view
        returns (address[])
    {
        return citizen[_address].refTo;
    }

    function getRefToById(address _address, uint256 _id)
        public
        view
        returns (address, string, uint256, uint256, uint256, uint256)
    {
        address _refTo = citizen[_address].refTo[_id];
        return (
            _refTo,
            Helper.uintToString(citizen[_refTo].username),
            citizen[_refTo].treeLevel,
            citizen[_refTo].refTo.length,
            citizen[_refTo].refWallet,
            citizen[_refTo].totalSale
            );
    }

    function getRefToLength(address _address)
        public
        view
        returns (uint256)
    {
        return citizen[_address].refTo.length;
    }

    function getLevelCitizenLength(uint256 _level)
        public
        view
        returns (uint256)
    {
        return levelCitizen[_level].length;
    }

    function getLevelCitizenById(uint256 _level, uint256 _id)
        public
        view
        returns (address)
    {
        return levelCitizen[_level][_id];
    }

    function getCitizenLevel(address _address)
        public
        view
        returns (uint256)
    {
        return citizen[_address].treeLevel;
    }

    function getLastLevel()
        public
        view
        returns(uint256)
    {
        return lastLevel;
    }

}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[{"name":"_username","type":"string"}],"name":"exist","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_sUsername","type":"string"},{"name":"_ref","type":"address"}],"name":"register","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_level","type":"uint256"},{"name":"_id","type":"uint256"}],"name":"getLevelCitizenById","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"getAllRoundRefIncome","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_level","type":"uint256"}],"name":"getLevelCitizenLength","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_contract","type":"address[6]"}],"name":"joinNetwork","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"getUintUsername","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_username","type":"string"}],"name":"getAddressByUserName","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"getRef","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"getRefWallet","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"},{"name":"_id","type":"uint256"}],"name":"getRefToById","outputs":[{"name":"","type":"address"},{"name":"","type":"string"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"getId","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"getRefTo","outputs":[{"name":"","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_id","type":"uint256"}],"name":"getAddressById","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"},{"name":"_rId","type":"uint256"}],"name":"getRoundRefIncome","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalRefAllround","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"citizen","outputs":[{"name":"id","type":"uint256"},{"name":"username","type":"uint256"},{"name":"refWallet","type":"uint256"},{"name":"ref","type":"address"},{"name":"totalChild","type":"uint256"},{"name":"donated","type":"uint256"},{"name":"treeLevel","type":"uint256"},{"name":"totalSale","type":"uint256"},{"name":"allRoundRefIncome","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"sender","type":"address"}],"name":"withdrawFor","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"getCitizenLevel","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"usernameAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"getTotalChild","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"getRefToLength","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getLastLevel","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"devTeamReinvest","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_sNewUsername","type":"string"}],"name":"updateUsername","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"devTeamWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"getUsername","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_sender","type":"address"}],"name":"pushRefIncome","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"idAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"isCitizen","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"totalRefByRound","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_devTeam","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_member","type":"address"},{"indexed":true,"name":"_ref","type":"address"}],"name":"Register","type":"event"}]

60806040523480156200001157600080fd5b5060405160208062003d658339810180604052810190808051906020019092919050505060008173ffffffffffffffffffffffffffffffffffffffff1663eb9d84dc306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b158015620000d357600080fd5b505af1158015620000e8573d6000803e3d6000fd5b5050505081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600981905550600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260006001815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001806000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600080600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737d04e6ef521ac2de68ed92318cde4f7332b2c2a7631bd951556040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001828103825260038152602001807f66326d000000000000000000000000000000000000000000000000000000000081525060200191505060206040518083038186803b1580156200038457600080fd5b505af415801562000399573d6000803e3d6000fd5b505050506040513d6020811015620003b057600080fd5b8101908080519060200190929190505050905080600080600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010181905550600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166003600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600080600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506001600080600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600701819055506004600060018152602001908152602001600020600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506001600a81905550505061374080620006256000396000f30060806040526004361061018b576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063057af1c4146101905780631e59c5291461021157806321db087e1461029a578063254e74e0146103115780633493075e146103685780633865bf3a146103a95780633b9e3ff0146103fb5780634f0cdd29146104525780635a7db533146104fb5780635c49ec271461057e578063615c8366146105d557806365f68c89146106ea57806367b1b2ae146107415780638d80c922146107d95780638ec3a2aa14610846578063999271f7146108a75780639b86a6db146108d25780639eca672c1461098d578063a5c2154d146109e4578063a6dc494114610a3b578063ab950bf214610aa8578063b194ecba14610aff578063b49f57ad14610b56578063b7e0977314610b81578063c96cea7014610bac578063cb3d6b5f14610c15578063ce43c03214610c2c578063e947962b14610ce8578063e966144414610d1e578063f3caad0314610d8b578063f8f421be14610de6575b600080fd5b34801561019c57600080fd5b506101f7600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610e27565b604051808215151515815260200191505060405180910390f35b34801561021d57600080fd5b50610298600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f87565b005b3480156102a657600080fd5b506102cf600480360381019080803590602001909291908035906020019092919050505061186d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561031d57600080fd5b50610352600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118c2565b6040518082815260200191505060405180910390f35b34801561037457600080fd5b506103936004803603810190808035906020019092919050505061190d565b6040518082815260200191505060405180910390f35b3480156103b557600080fd5b506103f96004803603810190808060c0019060068060200260405190810160405280929190826006602002808284378201915050505050919291929050505061192d565b005b34801561040757600080fd5b5061043c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611adc565b6040518082815260200191505060405180910390f35b34801561045e57600080fd5b506104b9600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611b27565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561050757600080fd5b5061053c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c6e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561058a57600080fd5b506105bf600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d80565b6040518082815260200191505060405180910390f35b3480156105e157600080fd5b50610620600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611dcb565b604051808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001868152602001858152602001848152602001838152602001828103825287818151815260200191508051906020019080838360005b838110156106aa57808201518184015260208101905061068f565b50505050905090810190601f1680156106d75780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390f35b3480156106f657600080fd5b5061072b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506120b2565b6040518082815260200191505060405180910390f35b34801561074d57600080fd5b50610782600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506120fd565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156107c55780820151818401526020810190506107aa565b505050509050019250505060405180910390f35b3480156107e557600080fd5b50610804600480360381019080803590602001909291905050506121cc565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561085257600080fd5b50610891600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612209565b6040518082815260200191505060405180910390f35b3480156108b357600080fd5b506108bc612266565b6040518082815260200191505060405180910390f35b3480156108de57600080fd5b50610913600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061226c565b604051808a81526020018981526020018881526020018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001868152602001858152602001848152602001838152602001828152602001995050505050505050505060405180910390f35b34801561099957600080fd5b506109ce600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506122da565b6040518082815260200191505060405180910390f35b3480156109f057600080fd5b50610a25600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061251f565b6040518082815260200191505060405180910390f35b348015610a4757600080fd5b50610a666004803603810190808035906020019092919050505061256a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610ab457600080fd5b50610ae9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061259d565b6040518082815260200191505060405180910390f35b348015610b0b57600080fd5b50610b40600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506125e8565b6040518082815260200191505060405180910390f35b348015610b6257600080fd5b50610b6b612636565b6040518082815260200191505060405180910390f35b348015610b8d57600080fd5b50610b96612640565b6040518082815260200191505060405180910390f35b348015610bb857600080fd5b50610c13600480360381019080803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061284d565b005b348015610c2157600080fd5b50610c2a612d98565b005b348015610c3857600080fd5b50610c6d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612fa9565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610cad578082015181840152602081019050610c92565b50505050905090810190601f168015610cda5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610d1c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061315b565b005b348015610d2a57600080fd5b50610d49600480360381019080803590602001909291905050506135c6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610d9757600080fd5b50610dcc600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506135f9565b604051808215151515815260200191505060405180910390f35b348015610df257600080fd5b50610e1160048036038101908080359060200190929190505050613619565b6040518082815260200191505060405180910390f35b60008060036000737d04e6ef521ac2de68ed92318cde4f7332b2c2a7631bd95155866040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610eb4578082015181840152602081019050610e99565b50505050905090810190601f168015610ee15780820380516001836020036101000a031916815260200191505b509250505060206040518083038186803b158015610efe57600080fd5b505af4158015610f12573d6000803e3d6000fd5b505050506040513d6020811015610f2857600080fd5b8101908080519060200190929190505050815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600080600080600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151561104f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f616c72656164792065786973740000000000000000000000000000000000000081525060200191505060405180910390fd5b737d04e6ef521ac2de68ed92318cde4f7332b2c2a763c8685f21876040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156110d55780820151818401526020810190506110ba565b50505050905090810190601f1680156111025780820380516001836020036101000a031916815260200191505b509250505060206040518083038186803b15801561111f57600080fd5b505af4158015611133573d6000803e3d6000fd5b505050506040513d602081101561114957600080fd5b810190808051906020019092919050505015156111ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f696e76616c696420757365726e616d650000000000000000000000000000000081525060200191505060405180910390fd5b339350737d04e6ef521ac2de68ed92318cde4f7332b2c2a7631bd95155876040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561125757808201518184015260208101905061123c565b50505050905090810190601f1680156112845780820380516001836020036101000a031916815260200191505b509250505060206040518083038186803b1580156112a157600080fd5b505af41580156112b5573d6000803e3d6000fd5b505050506040513d60208110156112cb57600080fd5b8101908080519060200190929190505050925060006003600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561139f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f757365726e616d6520616c72656164792065786973740000000000000000000081525060200191505060405180910390fd5b836003600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661146a57600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661146c565b845b915060018060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010181905550816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600081548092919060010191905055508360026000600954815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009546000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600701549050600a5481141561169a57600a600081548092919060010191905055505b600181016000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060070181905550600460006001830181526020019081526020016000208490806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206004018490806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505061180b84613631565b8173ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f98ada70a1cb506dc4591465e1ee9be3fd7a2b6c73ecf3b949009718c9a35151960405160405180910390a3505050505050565b6000600460008481526020019081526020016000208281548110151561188f57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600901549050919050565b600060046000838152602001908152602001600020805490509050919050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156119dd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f616c72656164792073657475700000000000000000000000000000000000000081525060200191505060405180910390fd5b8060006006811015156119ec57fe5b6020020151600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550806001600681101515611a4057fe5b6020020151600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550806003600681101515611a9457fe5b6020020151600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101549050919050565b600060036000737d04e6ef521ac2de68ed92318cde4f7332b2c2a7631bd95155856040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611bb3578082015181840152602081019050611b98565b50505050905090810190601f168015611be05780820380516001836020036101000a031916815260200191505b509250505060206040518083038186803b158015611bfd57600080fd5b505af4158015611c11573d6000803e3d6000fd5b505050506040513d6020811015611c2757600080fd5b8101908080519060200190929190505050815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d55576000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611d79565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b9050919050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201549050919050565b6000606060008060008060008060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040188815481101515611e2557fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905080737d04e6ef521ac2de68ed92318cde4f7332b2c2a763e93956796000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101546040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060006040518083038186803b158015611eff57600080fd5b505af4158015611f13573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052506020811015611f3d57600080fd5b810190808051640100000000811115611f5557600080fd5b82810190506020810184811115611f6b57600080fd5b8151856001820283011164010000000082111715611f8857600080fd5b50509291905050506000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600701546000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401805490506000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201546000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060080154965096509650965096509650509295509295509295565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050919050565b60606000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206004018054806020026020016040519081016040528092919081815260200182805480156121c057602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311612176575b50505050509050919050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600a01600083815260200190815260200160002054905092915050565b600c5481565b60006020528060005260406000206000915090508060000154908060010154908060020154908060030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060050154908060060154908060070154908060080154908060090154905089565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156123a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f42616e6b206f6e6c79000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154905060008114156123f85760009150612519565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020181905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e9288d7282856040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019150506000604051808303818588803b1580156124fc57600080fd5b505af1158015612510573d6000803e3d6000fd5b50505050508091505b50919050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600701549050919050565b60036020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600501549050919050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401805490509050919050565b6000600a54905090565b6000806000339150600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151561270d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f6f6e6c792066326d20636f6e747261637400000000000000000000000000000081525060200191505060405180910390fd5b600080600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002015490506000806000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020181905550600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612844573d6000803e3d6000fd5b50809250505090565b6000806000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515612913576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f6d757374206265206120636974697a656e00000000000000000000000000000081525060200191505060405180910390fd5b737d04e6ef521ac2de68ed92318cde4f7332b2c2a763c8685f21856040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561299957808201518184015260208101905061297e565b50505050905090810190601f1680156129c65780820380516001836020036101000a031916815260200191505b509250505060206040518083038186803b1580156129e357600080fd5b505af41580156129f7573d6000803e3d6000fd5b505050506040513d6020811015612a0d57600080fd5b81019080805190602001909291905050501515612a92576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f696e76616c696420757365726e616d650000000000000000000000000000000081525060200191505060405180910390fd5b339250737d04e6ef521ac2de68ed92318cde4f7332b2c2a7631bd95155856040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612b1b578082015181840152602081019050612b00565b50505050905090810190601f168015612b485780820380516001836020036101000a031916815260200191505b509250505060206040518083038186803b158015612b6557600080fd5b505af4158015612b79573d6000803e3d6000fd5b505050506040513d6020811015612b8f57600080fd5b8101908080519060200190929190505050915060006003600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612c63576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f757365726e616d6520616c72656164792065786973740000000000000000000081525060200191505060405180910390fd5b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101549050816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018190555060006003600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550826003600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612e5f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f61646d696e20726571756972656400000000000000000000000000000000000081525060200191505060405180910390fd5b600080600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002015490506000811415612ed357612fa6565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612f3b573d6000803e3d6000fd5b506000806000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201819055505b50565b6060600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156130165760206040519081016040528060008152509050613156565b737d04e6ef521ac2de68ed92318cde4f7332b2c2a763e93956796000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101546040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060006040518083038186803b1580156130c257600080fd5b505af41580156130d6573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250602081101561310057600080fd5b81019080805164010000000081111561311857600080fd5b8281019050602081018481111561312e57600080fd5b815185600182028301116401000000008211171561314b57600080fd5b505092919050505090505b919050565b600080600080600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663eb95f0bf6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156131e757600080fd5b505af11580156131fb573d6000803e3d6000fd5b505050506040513d602081101561321157600080fd5b8101908080519060200190929190505050935034925084915061323382611c6e565b9050826000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206008016000828254019250508190555082600c6000828254019250508190555082600b6000868152602001908152602001600020600082825401925050819055505b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415156134775760028381151561331957fe5b0492506133706000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154846136f390919063ffffffff16565b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020181905550826000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600a01600086815260200190815260200160002060008282540192505081905550826000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206009016000828254019250508190555080915061347082611c6e565b90506132b6565b6134cb6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154846136f390919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020181905550826000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600a01600086815260200190815260200160002060008282540192505081905550826000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600901600082825401925050819055505050505050565b60026020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60016020528060005260406000206000915054906101000a900460ff1681565b600b6020528060005260406000206000915090505481565b60008190505b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415156136ef5761369781611c6e565b90506000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050160008154809291906001019190505550613637565b5050565b600080828401905083811015151561370a57600080fd5b80915050929150505600a165627a7a72305820de8990fa571cb25cab1e7d0d3019d035587cd3b14da636c5a709d5da3227ead7002900000000000000000000000096504e1f83e380984b1d4eccc0e8b9f0559b2ad2

Deployed Bytecode

0x60806040526004361061018b576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063057af1c4146101905780631e59c5291461021157806321db087e1461029a578063254e74e0146103115780633493075e146103685780633865bf3a146103a95780633b9e3ff0146103fb5780634f0cdd29146104525780635a7db533146104fb5780635c49ec271461057e578063615c8366146105d557806365f68c89146106ea57806367b1b2ae146107415780638d80c922146107d95780638ec3a2aa14610846578063999271f7146108a75780639b86a6db146108d25780639eca672c1461098d578063a5c2154d146109e4578063a6dc494114610a3b578063ab950bf214610aa8578063b194ecba14610aff578063b49f57ad14610b56578063b7e0977314610b81578063c96cea7014610bac578063cb3d6b5f14610c15578063ce43c03214610c2c578063e947962b14610ce8578063e966144414610d1e578063f3caad0314610d8b578063f8f421be14610de6575b600080fd5b34801561019c57600080fd5b506101f7600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610e27565b604051808215151515815260200191505060405180910390f35b34801561021d57600080fd5b50610298600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f87565b005b3480156102a657600080fd5b506102cf600480360381019080803590602001909291908035906020019092919050505061186d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561031d57600080fd5b50610352600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118c2565b6040518082815260200191505060405180910390f35b34801561037457600080fd5b506103936004803603810190808035906020019092919050505061190d565b6040518082815260200191505060405180910390f35b3480156103b557600080fd5b506103f96004803603810190808060c0019060068060200260405190810160405280929190826006602002808284378201915050505050919291929050505061192d565b005b34801561040757600080fd5b5061043c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611adc565b6040518082815260200191505060405180910390f35b34801561045e57600080fd5b506104b9600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611b27565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561050757600080fd5b5061053c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c6e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561058a57600080fd5b506105bf600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d80565b6040518082815260200191505060405180910390f35b3480156105e157600080fd5b50610620600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611dcb565b604051808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001868152602001858152602001848152602001838152602001828103825287818151815260200191508051906020019080838360005b838110156106aa57808201518184015260208101905061068f565b50505050905090810190601f1680156106d75780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390f35b3480156106f657600080fd5b5061072b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506120b2565b6040518082815260200191505060405180910390f35b34801561074d57600080fd5b50610782600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506120fd565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156107c55780820151818401526020810190506107aa565b505050509050019250505060405180910390f35b3480156107e557600080fd5b50610804600480360381019080803590602001909291905050506121cc565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561085257600080fd5b50610891600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612209565b6040518082815260200191505060405180910390f35b3480156108b357600080fd5b506108bc612266565b6040518082815260200191505060405180910390f35b3480156108de57600080fd5b50610913600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061226c565b604051808a81526020018981526020018881526020018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001868152602001858152602001848152602001838152602001828152602001995050505050505050505060405180910390f35b34801561099957600080fd5b506109ce600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506122da565b6040518082815260200191505060405180910390f35b3480156109f057600080fd5b50610a25600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061251f565b6040518082815260200191505060405180910390f35b348015610a4757600080fd5b50610a666004803603810190808035906020019092919050505061256a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610ab457600080fd5b50610ae9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061259d565b6040518082815260200191505060405180910390f35b348015610b0b57600080fd5b50610b40600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506125e8565b6040518082815260200191505060405180910390f35b348015610b6257600080fd5b50610b6b612636565b6040518082815260200191505060405180910390f35b348015610b8d57600080fd5b50610b96612640565b6040518082815260200191505060405180910390f35b348015610bb857600080fd5b50610c13600480360381019080803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061284d565b005b348015610c2157600080fd5b50610c2a612d98565b005b348015610c3857600080fd5b50610c6d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612fa9565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610cad578082015181840152602081019050610c92565b50505050905090810190601f168015610cda5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610d1c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061315b565b005b348015610d2a57600080fd5b50610d49600480360381019080803590602001909291905050506135c6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610d9757600080fd5b50610dcc600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506135f9565b604051808215151515815260200191505060405180910390f35b348015610df257600080fd5b50610e1160048036038101908080359060200190929190505050613619565b6040518082815260200191505060405180910390f35b60008060036000737d04e6ef521ac2de68ed92318cde4f7332b2c2a7631bd95155866040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610eb4578082015181840152602081019050610e99565b50505050905090810190601f168015610ee15780820380516001836020036101000a031916815260200191505b509250505060206040518083038186803b158015610efe57600080fd5b505af4158015610f12573d6000803e3d6000fd5b505050506040513d6020811015610f2857600080fd5b8101908080519060200190929190505050815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600080600080600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151561104f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f616c72656164792065786973740000000000000000000000000000000000000081525060200191505060405180910390fd5b737d04e6ef521ac2de68ed92318cde4f7332b2c2a763c8685f21876040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156110d55780820151818401526020810190506110ba565b50505050905090810190601f1680156111025780820380516001836020036101000a031916815260200191505b509250505060206040518083038186803b15801561111f57600080fd5b505af4158015611133573d6000803e3d6000fd5b505050506040513d602081101561114957600080fd5b810190808051906020019092919050505015156111ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f696e76616c696420757365726e616d650000000000000000000000000000000081525060200191505060405180910390fd5b339350737d04e6ef521ac2de68ed92318cde4f7332b2c2a7631bd95155876040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561125757808201518184015260208101905061123c565b50505050905090810190601f1680156112845780820380516001836020036101000a031916815260200191505b509250505060206040518083038186803b1580156112a157600080fd5b505af41580156112b5573d6000803e3d6000fd5b505050506040513d60208110156112cb57600080fd5b8101908080519060200190929190505050925060006003600085815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561139f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f757365726e616d6520616c72656164792065786973740000000000000000000081525060200191505060405180910390fd5b836003600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661146a57600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661146c565b845b915060018060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010181905550816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600081548092919060010191905055508360026000600954815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009546000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600701549050600a5481141561169a57600a600081548092919060010191905055505b600181016000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060070181905550600460006001830181526020019081526020016000208490806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206004018490806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505061180b84613631565b8173ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f98ada70a1cb506dc4591465e1ee9be3fd7a2b6c73ecf3b949009718c9a35151960405160405180910390a3505050505050565b6000600460008481526020019081526020016000208281548110151561188f57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600901549050919050565b600060046000838152602001908152602001600020805490509050919050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156119dd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f616c72656164792073657475700000000000000000000000000000000000000081525060200191505060405180910390fd5b8060006006811015156119ec57fe5b6020020151600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550806001600681101515611a4057fe5b6020020151600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550806003600681101515611a9457fe5b6020020151600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101549050919050565b600060036000737d04e6ef521ac2de68ed92318cde4f7332b2c2a7631bd95155856040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611bb3578082015181840152602081019050611b98565b50505050905090810190601f168015611be05780820380516001836020036101000a031916815260200191505b509250505060206040518083038186803b158015611bfd57600080fd5b505af4158015611c11573d6000803e3d6000fd5b505050506040513d6020811015611c2757600080fd5b8101908080519060200190929190505050815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d55576000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611d79565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b9050919050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201549050919050565b6000606060008060008060008060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040188815481101515611e2557fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905080737d04e6ef521ac2de68ed92318cde4f7332b2c2a763e93956796000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101546040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060006040518083038186803b158015611eff57600080fd5b505af4158015611f13573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052506020811015611f3d57600080fd5b810190808051640100000000811115611f5557600080fd5b82810190506020810184811115611f6b57600080fd5b8151856001820283011164010000000082111715611f8857600080fd5b50509291905050506000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600701546000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401805490506000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201546000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060080154965096509650965096509650509295509295509295565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050919050565b60606000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206004018054806020026020016040519081016040528092919081815260200182805480156121c057602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311612176575b50505050509050919050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600a01600083815260200190815260200160002054905092915050565b600c5481565b60006020528060005260406000206000915090508060000154908060010154908060020154908060030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060050154908060060154908060070154908060080154908060090154905089565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156123a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f42616e6b206f6e6c79000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154905060008114156123f85760009150612519565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020181905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e9288d7282856040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019150506000604051808303818588803b1580156124fc57600080fd5b505af1158015612510573d6000803e3d6000fd5b50505050508091505b50919050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600701549050919050565b60036020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600501549050919050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401805490509050919050565b6000600a54905090565b6000806000339150600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151561270d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f6f6e6c792066326d20636f6e747261637400000000000000000000000000000081525060200191505060405180910390fd5b600080600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002015490506000806000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020181905550600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612844573d6000803e3d6000fd5b50809250505090565b6000806000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515612913576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f6d757374206265206120636974697a656e00000000000000000000000000000081525060200191505060405180910390fd5b737d04e6ef521ac2de68ed92318cde4f7332b2c2a763c8685f21856040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561299957808201518184015260208101905061297e565b50505050905090810190601f1680156129c65780820380516001836020036101000a031916815260200191505b509250505060206040518083038186803b1580156129e357600080fd5b505af41580156129f7573d6000803e3d6000fd5b505050506040513d6020811015612a0d57600080fd5b81019080805190602001909291905050501515612a92576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f696e76616c696420757365726e616d650000000000000000000000000000000081525060200191505060405180910390fd5b339250737d04e6ef521ac2de68ed92318cde4f7332b2c2a7631bd95155856040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612b1b578082015181840152602081019050612b00565b50505050905090810190601f168015612b485780820380516001836020036101000a031916815260200191505b509250505060206040518083038186803b158015612b6557600080fd5b505af4158015612b79573d6000803e3d6000fd5b505050506040513d6020811015612b8f57600080fd5b8101908080519060200190929190505050915060006003600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612c63576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f757365726e616d6520616c72656164792065786973740000000000000000000081525060200191505060405180910390fd5b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101549050816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018190555060006003600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550826003600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612e5f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f61646d696e20726571756972656400000000000000000000000000000000000081525060200191505060405180910390fd5b600080600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002015490506000811415612ed357612fa6565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612f3b573d6000803e3d6000fd5b506000806000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201819055505b50565b6060600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156130165760206040519081016040528060008152509050613156565b737d04e6ef521ac2de68ed92318cde4f7332b2c2a763e93956796000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101546040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060006040518083038186803b1580156130c257600080fd5b505af41580156130d6573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250602081101561310057600080fd5b81019080805164010000000081111561311857600080fd5b8281019050602081018481111561312e57600080fd5b815185600182028301116401000000008211171561314b57600080fd5b505092919050505090505b919050565b600080600080600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663eb95f0bf6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156131e757600080fd5b505af11580156131fb573d6000803e3d6000fd5b505050506040513d602081101561321157600080fd5b8101908080519060200190929190505050935034925084915061323382611c6e565b9050826000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206008016000828254019250508190555082600c6000828254019250508190555082600b6000868152602001908152602001600020600082825401925050819055505b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415156134775760028381151561331957fe5b0492506133706000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154846136f390919063ffffffff16565b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020181905550826000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600a01600086815260200190815260200160002060008282540192505081905550826000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206009016000828254019250508190555080915061347082611c6e565b90506132b6565b6134cb6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154846136f390919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020181905550826000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600a01600086815260200190815260200160002060008282540192505081905550826000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600901600082825401925050819055505050505050565b60026020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60016020528060005260406000206000915054906101000a900460ff1681565b600b6020528060005260406000206000915090505481565b60008190505b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415156136ef5761369781611c6e565b90506000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050160008154809291906001019190505550613637565b5050565b600080828401905083811015151561370a57600080fd5b80915050929150505600a165627a7a72305820de8990fa571cb25cab1e7d0d3019d035587cd3b14da636c5a709d5da3227ead70029

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

00000000000000000000000096504e1f83e380984b1d4eccc0e8b9f0559b2ad2

-----Decoded View---------------
Arg [0] : _devTeam (address): 0x96504e1f83e380984B1d4ECCC0E8B9f0559b2Ad2

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000096504e1f83e380984b1d4eccc0e8b9f0559b2ad2


Libraries Used


Swarm Source

bzzr://de8990fa571cb25cab1e7d0d3019d035587cd3b14da636c5a709d5da3227ead7

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.