Contract 0x42039d4e63bc5ba1b219adf9f2eee446005adfdb 2

 
Ad
Ad
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x9003de291d8f50deb3f7c86613590bcd5f6059e8490638cc30f248c9a4179df4Getdividends216644442021-11-22 8:31:306 days 3 hrs ago0xa2ba5e0eafb7a7a44515d02c47fb0e519f5bd002 IN  0x42039d4e63bc5ba1b219adf9f2eee446005adfdb0 MATIC0.00406674
0x38dbde9c5ce8fb519990e911930b4878391e44c95485f32417f649998824e987Getdividends216260432021-11-21 9:07:557 days 2 hrs ago0xa6aa7e78bfd56db505d017c2422112d775305161 IN  0x42039d4e63bc5ba1b219adf9f2eee446005adfdb0 MATIC0.022688187
0xb04f7aa983be2258afd307f0f0595ebdf046d87cea8db5dfc04752b5d67c80a8Getdividends216257142021-11-21 8:56:117 days 2 hrs ago0x5f46f464870b398b34b0ab82baef7b4b90f18dcd IN  0x42039d4e63bc5ba1b219adf9f2eee446005adfdb0 MATIC0.00913131
0xcce068a775b40fe799b838ae55c9fb50ff12586f993c7a840d588e684a41b24aGetdividends215979232021-11-20 15:45:427 days 19 hrs ago0x5f46f464870b398b34b0ab82baef7b4b90f18dcd IN  0x42039d4e63bc5ba1b219adf9f2eee446005adfdb0 MATIC0.03659385
0x3d318f5325411be01e0f412bc30ecb6556e43fe1ceec68b74179922a4d785c54Getdividends215894092021-11-20 9:46:088 days 1 hr ago0xc80dec33d2b9c4afdd92de2c783a00e0a5f94ccb IN  0x42039d4e63bc5ba1b219adf9f2eee446005adfdb0 MATIC0.00913095
0xde38f95b75ee53e4e1c3252c5e70070c182ad85ab5099fc583777bebe2d8b976Getdividends215791632021-11-20 3:25:158 days 8 hrs ago0xc80dec33d2b9c4afdd92de2c783a00e0a5f94ccb IN  0x42039d4e63bc5ba1b219adf9f2eee446005adfdb0 MATIC0.00913095
0x828f9414d821fc39fae79850cc618fea7dd4e6a552872f8639fd6728ab32ee62Getdividends215791402021-11-20 3:24:298 days 8 hrs ago0xc80dec33d2b9c4afdd92de2c783a00e0a5f94ccb IN  0x42039d4e63bc5ba1b219adf9f2eee446005adfdb0 MATIC0.00913095
0xf4e2c76270c486129bf9c2b9bedb4940fb5f84070eba3364b7f7f909bd9bb34eGetdividends215412072021-11-19 4:58:019 days 6 hrs ago0xa2ba5e0eafb7a7a44515d02c47fb0e519f5bd002 IN  0x42039d4e63bc5ba1b219adf9f2eee446005adfdb0 MATIC0.00406674
0x76c8a7afcd8aca063848363f53d4493160b0b4233beaba8352452b900f591b87Getdividends215407252021-11-19 4:37:099 days 7 hrs ago0xa2ba5e0eafb7a7a44515d02c47fb0e519f5bd002 IN  0x42039d4e63bc5ba1b219adf9f2eee446005adfdb0 MATIC0.00406674
0x07193a9635583b4d3820730599650a74d4f37e3e2de0303b05ef49abdcb921c8Getdividends215069602021-11-18 7:06:0610 days 4 hrs ago0xa2ba5e0eafb7a7a44515d02c47fb0e519f5bd002 IN  0x42039d4e63bc5ba1b219adf9f2eee446005adfdb0 MATIC0.00611874
0x0efc3d9914b056f73c935bf3f0d94b58813e514af5c08c5b54ae92dfe8f2a0feGetdividends213160002021-11-13 8:56:3115 days 2 hrs ago0xc80dec33d2b9c4afdd92de2c783a00e0a5f94ccb IN  0x42039d4e63bc5ba1b219adf9f2eee446005adfdb0 MATIC0.00913095
0x30a1920e06ce473be533c6db3487aa49c36560be26438d425dd9d831d8589ed4Getdividends212803972021-11-12 11:16:4016 days 28 mins ago0xc80dec33d2b9c4afdd92de2c783a00e0a5f94ccb IN  0x42039d4e63bc5ba1b219adf9f2eee446005adfdb0 MATIC0.002739285
0x8c0eca293a2cf7a51c47d944926a3326fe2c7ddf89ee24e48c4f890f42fac492Buy New Level212708042021-11-12 5:04:4116 days 6 hrs ago0xa2ba5e0eafb7a7a44515d02c47fb0e519f5bd002 IN  0x42039d4e63bc5ba1b219adf9f2eee446005adfdb0 MATIC0.00454173
0x0caa18b639597657e9911d3d1393faa375695c74d485d796603dfef8f1f2030fGetdividends212310012021-11-11 2:50:5717 days 8 hrs ago0xc80dec33d2b9c4afdd92de2c783a00e0a5f94ccb IN  0x42039d4e63bc5ba1b219adf9f2eee446005adfdb0 MATIC0.01015695
0xd7f87ce0e7ada3353571fc6f5c73cdcb36a83bbe7125f9bacc4071b8531c83d9Buy New Level212303162021-11-11 2:27:2317 days 9 hrs ago0xc80dec33d2b9c4afdd92de2c783a00e0a5f94ccb IN  0x42039d4e63bc5ba1b219adf9f2eee446005adfdb0 MATIC0.00677058
0x276a62416ac3b60bfecc9647c50e52bf9df026ab28aa4417f813da7243fe68d3Buy New Level212301312021-11-11 2:16:4517 days 9 hrs ago0xc80dec33d2b9c4afdd92de2c783a00e0a5f94ccb IN  0x42039d4e63bc5ba1b219adf9f2eee446005adfdb0 MATIC0.00505473
0xb46bed5af87b1c0fe238a4b0bb56d75acff53c99759b48241a43d42e302f2ed6Getdividends212300142021-11-11 2:12:4317 days 9 hrs ago0xc80dec33d2b9c4afdd92de2c783a00e0a5f94ccb IN  0x42039d4e63bc5ba1b219adf9f2eee446005adfdb0 MATIC0.00864861
0x4bc065e9926de8057c251e5c5c6051eb2a1490a48b09264dfc3381d2b232717eGetdividends212298602021-11-11 2:07:2717 days 9 hrs ago0xc80dec33d2b9c4afdd92de2c783a00e0a5f94ccb IN  0x42039d4e63bc5ba1b219adf9f2eee446005adfdb0 MATIC0.02044761
0x44b46e568d253d2f27ec9c9a971912507091f1012d6c3439155a5b8d201274b8Buy New Level212298282021-11-11 2:06:2017 days 9 hrs ago0xc80dec33d2b9c4afdd92de2c783a00e0a5f94ccb IN  0x42039d4e63bc5ba1b219adf9f2eee446005adfdb0 MATIC0.00789901
0xa81951dafe0a11895cb0dd4a91076ca8ceac014cbf91393a459531a676fdde7eBuy New Level212297812021-11-11 2:04:4217 days 9 hrs ago0xc80dec33d2b9c4afdd92de2c783a00e0a5f94ccb IN  0x42039d4e63bc5ba1b219adf9f2eee446005adfdb0 MATIC0.00677058
0x978b968020cafb82d3470628705cbbfed5dae1463168977eec2ffc97c37909cfBuy New Level212126012021-11-10 15:13:0417 days 20 hrs ago0xc80dec33d2b9c4afdd92de2c783a00e0a5f94ccb IN  0x42039d4e63bc5ba1b219adf9f2eee446005adfdb0 MATIC0.00505473
0x014218c73445b4d098a0ca81fa9a54fd3ca00888418764ac0a9d80e1ac82cc48Buy New Level212116752021-11-10 14:36:3317 days 21 hrs ago0xc80dec33d2b9c4afdd92de2c783a00e0a5f94ccb IN  0x42039d4e63bc5ba1b219adf9f2eee446005adfdb0 MATIC0.00505473
0x177f72e35f20dba78a1cb86b5ba6ecb4638ea3c46e63255b64f3437cef4d6eb8Buy New Level211937182021-11-10 3:36:4718 days 8 hrs ago0xc80dec33d2b9c4afdd92de2c783a00e0a5f94ccb IN  0x42039d4e63bc5ba1b219adf9f2eee446005adfdb0 MATIC0.00677058
0x58a78574a456c872efe6c1e9e652a4432a018a065b029502e2be3e1b7503af85Buy New Level211926322021-11-10 2:59:1318 days 8 hrs ago0xc80dec33d2b9c4afdd92de2c783a00e0a5f94ccb IN  0x42039d4e63bc5ba1b219adf9f2eee446005adfdb0 MATIC0.000451372
0x3b291e7669d5946c6131f50766104ee6a6c62d4bc8d6bd3cada1b77f51861949Buy New Level211925852021-11-10 2:57:0718 days 8 hrs ago0xc80dec33d2b9c4afdd92de2c783a00e0a5f94ccb IN  0x42039d4e63bc5ba1b219adf9f2eee446005adfdb0 MATIC0.00505473
[ Download CSV Export 
Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
SmartEdMatrix

Compiler Version
v0.5.17+commit.d19bba13

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at polygonscan.com on 2021-10-25
*/

pragma solidity >=0.4.23 <0.6.0;

interface IERC20 {
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
}

contract SmartEdMatrix {

    struct User {
        uint id;
        address referrer;
        uint referralCount;
        uint256 lastpayout;
        uint256 dividends;
        uint256 totalwithdrawn;

        mapping(uint8 => bool) activeX3Levels;
        mapping(uint8 => bool) activeX6Levels;
        
        mapping(uint8 => X3) x3Matrix;
        mapping(uint8 => X6) x6Matrix;
    }
    
    struct X3 {
        address currentReferrer;
        address[] referrals;
        bool blocked;
        uint refreshingCount;
        uint256 time;
        uint256 leveldividends;
    }
    
    struct X6 {
        address currentReferrer;
        address[] firstLevelReferrals;
        address[] secondLevelReferrals;
        bool blocked;
        uint refreshingCount;
        address closedPart;
        uint256 time;
        uint256 leveldividends;

    }

    uint8 public constant FINAL_LEVEL = 12;
    
    mapping(address => User) public users;
    mapping(uint => address) public idToAddress;
    mapping(uint => address) public userIds;
    mapping(address => uint) public balances; 

    uint public lastUserId = 2;
    address public owner;
    
    IERC20 private _token;
    
    mapping(uint8 => uint) public levelPrice;
    
    event Registration(address indexed user, address indexed referrer, uint indexed userId, uint referrerId);
    event refresh(address indexed user, address indexed currentReferrer, address indexed caller, uint8 matrix, uint8 level);
    event Upgrade(address indexed user, address indexed referrer, uint8 matrix, uint8 level);
    event NewUserPlace(address indexed user, address indexed referrer, uint8 matrix, uint8 level, uint8 place);
    event MissedTokenReceive(address indexed receiver, address indexed from, uint8 matrix, uint8 level);
    event sendExtraTokens(address indexed from, address indexed receiver, uint8 matrix, uint8 level);
    
    
    constructor(address ownerAddress, IERC20 token) public {
        levelPrice[1] = 5 * 10 ** 8;
        for (uint8 i = 2; i <= FINAL_LEVEL; i++) {
            levelPrice[i] = levelPrice[i-1] * 2;
        }
        
        owner = ownerAddress;
        _token = token;
        User memory user = User({
            id: 1,
            referrer: address(0),
            referralCount: uint(0),
            lastpayout : 0,
            dividends : 0,
            totalwithdrawn:0

        });
        
        users[ownerAddress] = user;
        idToAddress[1] = ownerAddress;
        
        for (uint8 i = 1; i <= FINAL_LEVEL; i++) {
            users[ownerAddress].activeX3Levels[i] = true;
            users[ownerAddress].activeX6Levels[i] = true;
        }
        
        userIds[1] = ownerAddress;
    }
    
    function() external payable {
        if(msg.data.length == 0) {
            return registration(msg.sender, owner);
        }
        
        registration(msg.sender, bytesToAddress(msg.data));
    }

    function registrationExt(address referrerAddress) external payable {
        registration(msg.sender, referrerAddress);
    }
    
    function buyNewLevel(uint8 matrix, uint8 level) external payable {
        require(isUserExists(msg.sender), "user is not exists. Register first.");
        require(matrix == 1 || matrix == 2, "invalid matrix");
        require(level > 1 && level <= FINAL_LEVEL, "invalid level");
        address giver = msg.sender; 
        if (matrix == 1) {
            require(!users[msg.sender].activeX3Levels[level], "level already activated");

            if (users[msg.sender].x3Matrix[level-1].blocked) {
                users[msg.sender].x3Matrix[level-1].blocked = false;
            }
    
            address userX3Referrer = findUserX3Referrer(msg.sender, level);
            users[msg.sender].x3Matrix[level].currentReferrer = userX3Referrer;
            users[msg.sender].activeX3Levels[level] = true;
            users[msg.sender].x3Matrix[level].time = block.timestamp;
            upliftX3Referrer(msg.sender, userX3Referrer, giver, level);
            
            emit Upgrade(msg.sender, userX3Referrer, 1, level);

        } else {
            require(!users[msg.sender].activeX6Levels[level], "level already activated"); 

            if (users[msg.sender].x6Matrix[level-1].blocked) {
                users[msg.sender].x6Matrix[level-1].blocked = false;
            }

            address userX6Referrer = findUserX6Referrer(msg.sender, level);
            
            users[msg.sender].activeX6Levels[level] = true;
            users[msg.sender].x6Matrix[level].time = block.timestamp;

            upliftX6Referrer(msg.sender, userX6Referrer,giver ,level);
            
            emit Upgrade(msg.sender, userX6Referrer, 2, level);
        }
    }    
    
    function registration(address userAddress, address referrerAddress) private {
        require(!isUserExists(userAddress), "user exists");
        require(isUserExists(referrerAddress), "referrer not exists");
        
        address giver = userAddress;
        uint32 size;
        assembly {
            size := extcodesize(userAddress)
        }
        require(size == 0, "cannot be a contract");
        
        User memory user = User({
            id: lastUserId,
            referrer: referrerAddress,
            referralCount: 0,
            lastpayout : 0,
            dividends : 0,
            totalwithdrawn:0
        });
        
        users[userAddress] = user;
        idToAddress[lastUserId] = userAddress;
        
        users[userAddress].referrer = referrerAddress;
        
        users[userAddress].activeX3Levels[1] = true; 
        users[userAddress].activeX6Levels[1] = true;
        users[userAddress].x3Matrix[1].time = block.timestamp;
        users[userAddress].x6Matrix[1].time = block.timestamp;

        
        userIds[lastUserId] = userAddress;
        lastUserId++;
        
        users[referrerAddress].referralCount++;

        address userX3Referrer = findUserX3Referrer(userAddress, 1);
        users[userAddress].x3Matrix[1].currentReferrer = userX3Referrer;
        upliftX3Referrer(userAddress, userX3Referrer,giver, 1);

        upliftX6Referrer(userAddress, findUserX6Referrer(userAddress, 1),giver, 1);
        
        emit Registration(userAddress, referrerAddress, users[userAddress].id, users[referrerAddress].id);
    }
    
    function upliftX3Referrer(address userAddress, address referrerAddress,address giver, uint8 level) private {
        users[referrerAddress].x3Matrix[level].referrals.push(userAddress);

        if (users[referrerAddress].x3Matrix[level].referrals.length < 3) {
            emit NewUserPlace(userAddress, referrerAddress, 1, level, uint8(users[referrerAddress].x3Matrix[level].referrals.length));
            return sendTokens(referrerAddress, giver, 1, level);
        }
        
        emit NewUserPlace(userAddress, referrerAddress, 1, level, 3);
        //close matrix
        users[referrerAddress].x3Matrix[level].referrals = new address[](0);
        if (!users[referrerAddress].activeX3Levels[level+1] && level != FINAL_LEVEL) {
            users[referrerAddress].x3Matrix[level].blocked = true;
        }

        //create new one by recursion
        if (referrerAddress != owner) {
            //check referrer active level
            address userReferrerAddress = findUserX3Referrer(referrerAddress, level);
            if (users[referrerAddress].x3Matrix[level].currentReferrer != userReferrerAddress) {
                users[referrerAddress].x3Matrix[level].currentReferrer = userReferrerAddress;
            }
            
            users[referrerAddress].x3Matrix[level].refreshingCount++;
            emit refresh(referrerAddress, userReferrerAddress, userAddress, 1, level);
            upliftX3Referrer(referrerAddress, userReferrerAddress, giver, level);
        } else {
            sendTokens(owner, giver, 1, level);
            users[owner].x3Matrix[level].refreshingCount++;
            emit refresh(owner, address(0), userAddress, 1, level);
        }
    }

    function upliftX6Referrer(address userAddress, address referrerAddress,address giver, uint8 level) private {
        require(users[referrerAddress].activeX6Levels[level], "500. Referrer level is inactive");
        
        if (users[referrerAddress].x6Matrix[level].firstLevelReferrals.length < 2) {
            users[referrerAddress].x6Matrix[level].firstLevelReferrals.push(userAddress);
            emit NewUserPlace(userAddress, referrerAddress, 2, level, uint8(users[referrerAddress].x6Matrix[level].firstLevelReferrals.length));
            
            //set current level
            users[userAddress].x6Matrix[level].currentReferrer = referrerAddress;

            if (referrerAddress == owner) {
                return sendTokens(referrerAddress, giver, 2, level);
            }
            
            address ref = users[referrerAddress].x6Matrix[level].currentReferrer;            
            users[ref].x6Matrix[level].secondLevelReferrals.push(userAddress); 
            
            uint len = users[ref].x6Matrix[level].firstLevelReferrals.length;
            
            if ((len == 2) && 
                (users[ref].x6Matrix[level].firstLevelReferrals[0] == referrerAddress) &&
                (users[ref].x6Matrix[level].firstLevelReferrals[1] == referrerAddress)) {
                if (users[referrerAddress].x6Matrix[level].firstLevelReferrals.length == 1) {
                    emit NewUserPlace(userAddress, ref, 2, level, 5);
                } else {
                    emit NewUserPlace(userAddress, ref, 2, level, 6);
                }
            }  else if ((len == 1 || len == 2) &&
                    users[ref].x6Matrix[level].firstLevelReferrals[0] == referrerAddress) {
                if (users[referrerAddress].x6Matrix[level].firstLevelReferrals.length == 1) {
                    emit NewUserPlace(userAddress, ref, 2, level, 3);
                } else {
                    emit NewUserPlace(userAddress, ref, 2, level, 4);
                }
            } else if (len == 2 && users[ref].x6Matrix[level].firstLevelReferrals[1] == referrerAddress) {
                if (users[referrerAddress].x6Matrix[level].firstLevelReferrals.length == 1) {
                    emit NewUserPlace(userAddress, ref, 2, level, 5);
                } else {
                    emit NewUserPlace(userAddress, ref, 2, level, 6);
                }
            }

            return upliftX6ReferrerSecondLevel(userAddress, ref,giver, level);
        }
        
        users[referrerAddress].x6Matrix[level].secondLevelReferrals.push(userAddress);

        if (users[referrerAddress].x6Matrix[level].closedPart != address(0)) {
            if ((users[referrerAddress].x6Matrix[level].firstLevelReferrals[0] == 
                users[referrerAddress].x6Matrix[level].firstLevelReferrals[1]) &&
                (users[referrerAddress].x6Matrix[level].firstLevelReferrals[0] ==
                users[referrerAddress].x6Matrix[level].closedPart)) {

                upliftX6(userAddress, referrerAddress, level, true);
                return upliftX6ReferrerSecondLevel(userAddress, referrerAddress,giver, level);
            } else if (users[referrerAddress].x6Matrix[level].firstLevelReferrals[0] == 
                users[referrerAddress].x6Matrix[level].closedPart) {
                upliftX6(userAddress, referrerAddress, level, true);
                return upliftX6ReferrerSecondLevel(userAddress, referrerAddress,giver, level);
            } else {
                upliftX6(userAddress, referrerAddress, level, false);
                return upliftX6ReferrerSecondLevel(userAddress, referrerAddress,giver, level);
            }
        }

        if (users[referrerAddress].x6Matrix[level].firstLevelReferrals[1] == userAddress) {
            upliftX6(userAddress, referrerAddress, level, false);
            return upliftX6ReferrerSecondLevel(userAddress, referrerAddress,giver ,level);
        } else if (users[referrerAddress].x6Matrix[level].firstLevelReferrals[0] == userAddress) {
            upliftX6(userAddress, referrerAddress, level, true);
            return upliftX6ReferrerSecondLevel(userAddress, referrerAddress,giver ,level);
        }
        
        if (users[users[referrerAddress].x6Matrix[level].firstLevelReferrals[0]].x6Matrix[level].firstLevelReferrals.length <= 
            users[users[referrerAddress].x6Matrix[level].firstLevelReferrals[1]].x6Matrix[level].firstLevelReferrals.length) {
            upliftX6(userAddress, referrerAddress, level, false);
        } else {
            upliftX6(userAddress, referrerAddress, level, true);
        }
        
        upliftX6ReferrerSecondLevel(userAddress, referrerAddress,giver, level);
    }

    function upliftX6(address userAddress, address referrerAddress, uint8 level, bool x2) private {
        if (!x2) {
            users[users[referrerAddress].x6Matrix[level].firstLevelReferrals[0]].x6Matrix[level].firstLevelReferrals.push(userAddress);
            emit NewUserPlace(userAddress, users[referrerAddress].x6Matrix[level].firstLevelReferrals[0], 2, level, uint8(users[users[referrerAddress].x6Matrix[level].firstLevelReferrals[0]].x6Matrix[level].firstLevelReferrals.length));
            emit NewUserPlace(userAddress, referrerAddress, 2, level, 2 + uint8(users[users[referrerAddress].x6Matrix[level].firstLevelReferrals[0]].x6Matrix[level].firstLevelReferrals.length));
            //set current level
            users[userAddress].x6Matrix[level].currentReferrer = users[referrerAddress].x6Matrix[level].firstLevelReferrals[0];
        } else {
            users[users[referrerAddress].x6Matrix[level].firstLevelReferrals[1]].x6Matrix[level].firstLevelReferrals.push(userAddress);
            emit NewUserPlace(userAddress, users[referrerAddress].x6Matrix[level].firstLevelReferrals[1], 2, level, uint8(users[users[referrerAddress].x6Matrix[level].firstLevelReferrals[1]].x6Matrix[level].firstLevelReferrals.length));
            emit NewUserPlace(userAddress, referrerAddress, 2, level, 4 + uint8(users[users[referrerAddress].x6Matrix[level].firstLevelReferrals[1]].x6Matrix[level].firstLevelReferrals.length));
            //set current level
            users[userAddress].x6Matrix[level].currentReferrer = users[referrerAddress].x6Matrix[level].firstLevelReferrals[1];
        }
    }
    
    function upliftX6ReferrerSecondLevel(address userAddress, address referrerAddress,address giver ,uint8 level) private {
        if (users[referrerAddress].x6Matrix[level].secondLevelReferrals.length < 4) {
            return sendTokens(referrerAddress, giver, 2, level);
        }
        
        address[] memory x6 = users[users[referrerAddress].x6Matrix[level].currentReferrer].x6Matrix[level].firstLevelReferrals;
        
        if (x6.length == 2) {
            if (x6[0] == referrerAddress ||
                x6[1] == referrerAddress) {
                users[users[referrerAddress].x6Matrix[level].currentReferrer].x6Matrix[level].closedPart = referrerAddress;
            } else if (x6.length == 1) {
                if (x6[0] == referrerAddress) {
                    users[users[referrerAddress].x6Matrix[level].currentReferrer].x6Matrix[level].closedPart = referrerAddress;
                }
            }
        }
        
        users[referrerAddress].x6Matrix[level].firstLevelReferrals = new address[](0);
        users[referrerAddress].x6Matrix[level].secondLevelReferrals = new address[](0);
        users[referrerAddress].x6Matrix[level].closedPart = address(0);

        if (!users[referrerAddress].activeX6Levels[level+1] && level != FINAL_LEVEL) {
            users[referrerAddress].x6Matrix[level].blocked = true;
        }

        users[referrerAddress].x6Matrix[level].refreshingCount++;
        
        if (referrerAddress != owner) {
            address userReferrerAddress = findUserX6Referrer(referrerAddress, level);

            emit refresh(referrerAddress, userReferrerAddress, userAddress, 2, level);
            upliftX6Referrer(referrerAddress, userReferrerAddress,giver, level);
        } else {
            emit refresh(owner, address(0), userAddress, 2, level);
            sendTokens(owner, giver, 2, level);
        }
    }
    
    function findUserX3Referrer(address userAddress, uint8 level) public view returns(address) {
        while (true) {
            if (users[users[userAddress].referrer].activeX3Levels[level]) {
                return users[userAddress].referrer;
            }
            
            userAddress = users[userAddress].referrer;
        }
    }
    
    function findUserX6Referrer(address userAddress, uint8 level) public view returns(address) {
        while (true) {
            if (users[users[userAddress].referrer].activeX6Levels[level]) {
                return users[userAddress].referrer;
            }
            
            userAddress = users[userAddress].referrer;
        }
    }
        
    function usersActiveX3Levels(address userAddress, uint8 level) public view returns(bool) {
        return users[userAddress].activeX3Levels[level];
    }

    function usersActiveX6Levels(address userAddress, uint8 level) public view returns(bool) {
        return users[userAddress].activeX6Levels[level];
    }
    function userDetails(address user) public view returns(uint256, uint256){
        return(users[user].dividends,users[user].totalwithdrawn);
    }

    function usersX3Matrix(address userAddress, uint8 level) public view returns(address, address[] memory, bool,uint256) {
        return (users[userAddress].x3Matrix[level].currentReferrer,
                users[userAddress].x3Matrix[level].referrals,
                users[userAddress].x3Matrix[level].blocked,
                //users[userAddress].x3Matrix[level].time,
                users[userAddress].x3Matrix[level].leveldividends);

    }

    function usersX6Matrix(address userAddress, uint8 level) public view returns(address, address[] memory, address[] memory, bool, address, uint256) {
        return (users[userAddress].x6Matrix[level].currentReferrer,
                users[userAddress].x6Matrix[level].firstLevelReferrals,
                users[userAddress].x6Matrix[level].secondLevelReferrals,
                users[userAddress].x6Matrix[level].blocked,
                users[userAddress].x6Matrix[level].closedPart,
               // users[userAddress].x6Matrix[level].time,
                users[userAddress].x6Matrix[level].leveldividends);
    }
    
    function isUserExists(address user) public view returns (bool) {
        return (users[user].id != 0);
    }

    function findTokenReceiver(address userAddress, address _from, uint8 matrix, uint8 level) private returns(address, bool) {
        address receiver = userAddress;
        bool isExtraDividends;
        if (matrix == 1) {
            while (true) {
                if (users[receiver].x3Matrix[level].blocked) {
                    emit MissedTokenReceive(receiver, _from, 1, level);
                    isExtraDividends = true;
                    receiver = users[receiver].x3Matrix[level].currentReferrer;
                } else {
                    return (receiver, isExtraDividends);
                }
            }
        } else {
            while (true) {
                if (users[receiver].x6Matrix[level].blocked) {
                    emit MissedTokenReceive(receiver, _from, 2, level);
                    isExtraDividends = true;
                    receiver = users[receiver].x6Matrix[level].currentReferrer;
                } else {
                    return (receiver, isExtraDividends);
                }
            }
        }
    }

    function sendTokens(address userAddress, address _from, uint8 matrix, uint8 level) private {
        (address receiver, bool isExtraDividends) = findTokenReceiver(userAddress, _from, matrix, level);

        _token.transferFrom(_from, address(uint160(receiver)), levelPrice[level]);
        
        if (isExtraDividends) {
            emit sendExtraTokens(_from, receiver, matrix, level);
        }
    }
    
    function bytesToAddress(bytes memory bys) private pure returns (address addr) {
        assembly {
            addr := mload(add(bys, 20))
        }
    }

    function getdividends(address user) public returns(bool){
        uint256 amount;
                for(uint8 i =1; i<=12; i++){
                amount = levelPrice[i];
                if(usersActiveX3Levels(user, i)){
                    uint256 deposittime = users[user].x3Matrix[i].time;
                    uint256 lastpayout = users[user].lastpayout;
                    uint256 dividends = calculateDividends(amount, deposittime, lastpayout);
                    users[user].x3Matrix[i].leveldividends = dividends;
                    users[user].dividends += dividends;
                }                 
                if(usersActiveX6Levels(user, i)) {
                    uint256 deposittime = users[user].x6Matrix[i].time;
                    uint256 lastpayout = users[user].lastpayout;
                    uint256 dividends = calculateDividends(amount, deposittime, lastpayout);
                    users[user].x6Matrix[i].leveldividends = dividends;
                    users[user].dividends += dividends;
                    }   
            } 
        return true;    
    }

    function calculateDividends(uint256 amount, uint256 depositTime, uint256 lastPayout) internal view returns (uint256) {
       uint256 dividends;
       uint256 end = depositTime + 8640000;
       uint256 from = lastPayout > depositTime ? lastPayout : depositTime;
       uint256 to = uint256(block.timestamp) > end ? end : uint256(block.timestamp);
       uint256 noOfSec = to - from;
       dividends = amount*noOfSec/1000;
       return dividends/86400;
   }

   function withdraw(address user) public payable returns(bool){
        
        address recepient = user;
        address _from = owner;
        uint256 amount = users[recepient].dividends;
        _token.transferFrom(_from, address(uint160(recepient)), amount);
        users[recepient].lastpayout = block.timestamp;
        users[recepient].totalwithdrawn += amount;
        users[recepient].dividends = 0;           
        return true;
    }           
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"ownerAddress","type":"address"},{"internalType":"contract IERC20","name":"token","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint8","name":"matrix","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"level","type":"uint8"}],"name":"MissedTokenReceive","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"address","name":"referrer","type":"address"},{"indexed":false,"internalType":"uint8","name":"matrix","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"level","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"place","type":"uint8"}],"name":"NewUserPlace","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"address","name":"referrer","type":"address"},{"indexed":true,"internalType":"uint256","name":"userId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"referrerId","type":"uint256"}],"name":"Registration","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"address","name":"referrer","type":"address"},{"indexed":false,"internalType":"uint8","name":"matrix","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"level","type":"uint8"}],"name":"Upgrade","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"address","name":"currentReferrer","type":"address"},{"indexed":true,"internalType":"address","name":"caller","type":"address"},{"indexed":false,"internalType":"uint8","name":"matrix","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"level","type":"uint8"}],"name":"refresh","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint8","name":"matrix","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"level","type":"uint8"}],"name":"sendExtraTokens","type":"event"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"constant":true,"inputs":[],"name":"FINAL_LEVEL","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint8","name":"matrix","type":"uint8"},{"internalType":"uint8","name":"level","type":"uint8"}],"name":"buyNewLevel","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"userAddress","type":"address"},{"internalType":"uint8","name":"level","type":"uint8"}],"name":"findUserX3Referrer","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"userAddress","type":"address"},{"internalType":"uint8","name":"level","type":"uint8"}],"name":"findUserX6Referrer","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getdividends","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"idToAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"isUserExists","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lastUserId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint8","name":"","type":"uint8"}],"name":"levelPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"referrerAddress","type":"address"}],"name":"registrationExt","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"userDetails","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"userIds","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"users","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"address","name":"referrer","type":"address"},{"internalType":"uint256","name":"referralCount","type":"uint256"},{"internalType":"uint256","name":"lastpayout","type":"uint256"},{"internalType":"uint256","name":"dividends","type":"uint256"},{"internalType":"uint256","name":"totalwithdrawn","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"userAddress","type":"address"},{"internalType":"uint8","name":"level","type":"uint8"}],"name":"usersActiveX3Levels","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"userAddress","type":"address"},{"internalType":"uint8","name":"level","type":"uint8"}],"name":"usersActiveX6Levels","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"userAddress","type":"address"},{"internalType":"uint8","name":"level","type":"uint8"}],"name":"usersX3Matrix","outputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address[]","name":"","type":"address[]"},{"internalType":"bool","name":"","type":"bool"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"userAddress","type":"address"},{"internalType":"uint8","name":"level","type":"uint8"}],"name":"usersX6Matrix","outputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address[]","name":"","type":"address[]"},{"internalType":"address[]","name":"","type":"address[]"},{"internalType":"bool","name":"","type":"bool"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"withdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"}]

608060405260026004553480156200001657600080fd5b506040516200328938038062003289833981810160405260408110156200003c57600080fd5b50805160209182015160016000526007909252631dcd65007fb39221ace053465ec3453ce2b36430bd138b997ecea25c1043da0c366812b828559060025b600c60ff821611620000b65760ff600019820181166000908152600760205260408082205492841682529020600290910290556001016200007a565b50600580546001600160a01b038085166001600160a01b0319928316179092556006805492841692909116919091179055620000f16200025c565b506040805160c081018252600180825260006020808401828152848601838152606086018481526080870185815260a088018681526001600160a01b038c81168089528888529a88208a5181559551868a018054919092166001600160a01b031991821617909155935160028601559151600385015551600484015551600590920191909155918390528290527fcc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f8054909116909317909255905b600c60ff8216116200020a576001600160a01b03841660009081526020818152604080832060ff851684526006810183528184208054600160ff199182168117909255600790920190935292208054909216811790915501620001ac565b505060016000525060026020527fe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e080546001600160a01b0319166001600160a01b03929092169190911790556200029b565b6040518060c001604052806000815260200160006001600160a01b03168152602001600081526020016000815260200160008152602001600081525090565b612fde80620002ab6000396000f3fe60806040526004361061011f5760003560e01c806379d248c7116100a0578063a87430ba11610064578063a87430ba14610604578063b2f7543a14610672578063b5088dc8146106ae578063be389d57146106d9578063ecabdf79146107015761011f565b806379d248c7146103ac5780637aa7d669146103df57806383ba31b21461041b5780638da5cb5b146104d65780639cc102fc146104eb5761011f565b80634635fd68116100e75780634635fd68146102b757806348dec2a7146102e1578063509222cd1461032d57806351cff8d914610360578063797eee24146103865761011f565b806307279e2a1461018b57806327e235e3146101db5780632a2d0c4714610220578063348d448714610266578063423ded041461027b575b366101405760055461013b9033906001600160a01b031661072e565b610189565b610189336101846000368080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610a1992505050565b61072e565b005b34801561019757600080fd5b506101c7600480360360408110156101ae57600080fd5b5080356001600160a01b0316906020013560ff16610a20565b604080519115158252519081900360200190f35b3480156101e757600080fd5b5061020e600480360360208110156101fe57600080fd5b50356001600160a01b0316610a54565b60408051918252519081900360200190f35b34801561022c57600080fd5b5061024a6004803603602081101561024357600080fd5b5035610a66565b604080516001600160a01b039092168252519081900360200190f35b34801561027257600080fd5b5061020e610a81565b34801561028757600080fd5b5061024a6004803603604081101561029e57600080fd5b5080356001600160a01b0316906020013560ff16610a87565b3480156102c357600080fd5b5061024a600480360360208110156102da57600080fd5b5035610b13565b3480156102ed57600080fd5b506103146004803603602081101561030457600080fd5b50356001600160a01b0316610b2e565b6040805192835260208301919091528051918290030190f35b34801561033957600080fd5b506101c76004803603602081101561035057600080fd5b50356001600160a01b0316610b54565b6101c76004803603602081101561037657600080fd5b50356001600160a01b0316610b71565b6101896004803603602081101561039c57600080fd5b50356001600160a01b0316610c55565b3480156103b857600080fd5b506101c7600480360360208110156103cf57600080fd5b50356001600160a01b0316610c62565b3480156103eb57600080fd5b5061024a6004803603604081101561040257600080fd5b5080356001600160a01b0316906020013560ff16610dbe565b34801561042757600080fd5b506104576004803603604081101561043e57600080fd5b5080356001600160a01b0316906020013560ff16610e4a565b60405180856001600160a01b03166001600160a01b031681526020018060200184151515158152602001838152602001828103825285818151815260200191508051906020019060200280838360005b838110156104bf5781810151838201526020016104a7565b505050509050019550505050505060405180910390f35b3480156104e257600080fd5b5061024a610f00565b3480156104f757600080fd5b506105276004803603604081101561050e57600080fd5b5080356001600160a01b0316906020013560ff16610f0f565b60405180876001600160a01b03166001600160a01b03168152602001806020018060200186151515158152602001856001600160a01b03166001600160a01b03168152602001848152602001838103835288818151815260200191508051906020019060200280838360005b838110156105ab578181015183820152602001610593565b50505050905001838103825287818151815260200191508051906020019060200280838360005b838110156105ea5781810151838201526020016105d2565b505050509050019850505050505050505060405180910390f35b34801561061057600080fd5b506106376004803603602081101561062757600080fd5b50356001600160a01b0316611037565b604080519687526001600160a01b039095166020870152858501939093526060850191909152608084015260a0830152519081900360c00190f35b34801561067e57600080fd5b506101c76004803603604081101561069557600080fd5b5080356001600160a01b0316906020013560ff16611076565b3480156106ba57600080fd5b506106c36110a5565b6040805160ff9092168252519081900360200190f35b610189600480360360408110156106ef57600080fd5b5060ff813581169160200135166110aa565b34801561070d57600080fd5b5061020e6004803603602081101561072457600080fd5b503560ff166114b0565b61073782610b54565b15610777576040805162461bcd60e51b815260206004820152600b60248201526a757365722065786973747360a81b604482015290519081900360640190fd5b61078081610b54565b6107c7576040805162461bcd60e51b81526020600482015260136024820152727265666572726572206e6f742065786973747360681b604482015290519081900360640190fd5b81803b63ffffffff81161561081a576040805162461bcd60e51b815260206004820152601460248201527318d85b9b9bdd08189948184818dbdb9d1c9858dd60621b604482015290519081900360640190fd5b610822612e7b565b506040805160c0810182526004805482526001600160a01b0386811660208085018281526000868801818152606088018281526080890183815260a08a018481528f89168086528588528c86208c51815596516001808901805492909c166001600160a01b0319928316178c5595516002808a0191909155945160038901559251878c015590516005870155895485528387528b85208054831682179055885482168817909855828452600680860187528b8520805460ff1990811686179091556007870188528c86208054909116851790556008860187528b852042908b01819055600990960187528b852001949094558754835280855289832080549094169096179092558554820190955591845283905293822001805484019055909161094d908790610a87565b6001600160a01b038781166000908152602081815260408083206001808552600890910190925290912080546001600160a01b0319169284169290921790915590915061099f908790839087906114c2565b6109b6866109ae886001610dbe565b866001611835565b6001600160a01b0380871660008181526020818152604080832054948a168084529281902054815190815290519293927f309bb360e8b69c23937ccc5fb01f9aeeead1c95a99604e175113ff82f2b1723a929181900390910190a4505050505050565b6014015190565b6001600160a01b03821660009081526020818152604080832060ff8086168552600690910190925290912054165b92915050565b60036020526000908152604090205481565b6001602052600090815260409020546001600160a01b031681565b60045481565b60005b6001600160a01b0380841660009081526020818152604080832060010154909316825282822060ff80871684526006909101909152919020541615610aed57506001600160a01b0380831660009081526020819052604090206001015416610a4e565b6001600160a01b0392831660009081526020819052604090206001015490921691610a8a565b6002602052600090815260409020546001600160a01b031681565b6001600160a01b0316600090815260208190526040902060048101546005909101549091565b6001600160a01b0316600090815260208190526040902054151590565b6005546001600160a01b0380831660008181526020818152604080832060049081015460065483516323b872dd60e01b81529888169289018390526024890196909652604488018190529151939688969195929492909116926323b872dd9260648084019382900301818a87803b158015610beb57600080fd5b505af1158015610bff573d6000803e3d6000fd5b505050506040513d6020811015610c1557600080fd5b50506001600160a01b0390921660009081526020819052604081204260038201556005810180549094019093556004909201919091555060019050919050565b610c5f338261072e565b50565b60008060015b600c8160ff1611610db45760ff81166000908152600760205260409020549150610c928482610a20565b15610d1a576001600160a01b03841660008181526020818152604080832060ff8616845260088101835290832060040154938352908290526003015490610cda8584846121ce565b6001600160a01b03881660008181526020818152604080832060ff8a16845260088101835290832060050185905592825252600401805490910190555050505b610d248482611076565b15610dac576001600160a01b03841660008181526020818152604080832060ff8616845260098101835290832060060154938352908290526003015490610d6c8584846121ce565b6001600160a01b03881660008181526020818152604080832060ff8a16845260098101835290832060070185905592825252600401805490910190555050505b600101610c68565b5060019392505050565b60005b6001600160a01b0380841660009081526020818152604080832060010154909316825282822060ff80871684526007909101909152919020541615610e2457506001600160a01b0380831660009081526020819052604090206001015416610a4e565b6001600160a01b0392831660009081526020819052604090206001015490921691610dc1565b6001600160a01b0382811660009081526020818152604080832060ff8681168552600890910183528184208054600282015460058301546001909301805486518189028101890190975280875297986060988a988998959092169692959390921693918591830182828015610ee857602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610eca575b50505050509250935093509350935092959194509250565b6005546001600160a01b031681565b6001600160a01b0382811660009081526020818152604080832060ff86811685526009909101835281842080546003820154600583015460078401546001850180548851818b0281018b01909952808952999a60609a8b9a8d9a8b9a8b9a998516999598600290960197951695949093169392918791830182828015610fbe57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610fa0575b505050505094508380548060200260200160405190810160405280929190818152602001828054801561101a57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610ffc575b505050505093509550955095509550955095509295509295509295565b60006020819052908152604090208054600182015460028301546003840154600485015460059095015493946001600160a01b03909316939192909186565b6001600160a01b039190911660009081526020818152604080832060ff94851684526007019091529020541690565b600c81565b6110b333610b54565b6110ee5760405162461bcd60e51b8152600401808060200182810382526023815260200180612f876023913960400191505060405180910390fd5b8160ff166001148061110357508160ff166002145b611145576040805162461bcd60e51b815260206004820152600e60248201526d0d2dcecc2d8d2c840dac2e8e4d2f60931b604482015290519081900360640190fd5b60018160ff1611801561115c5750600c60ff821611155b61119d576040805162461bcd60e51b815260206004820152600d60248201526c1a5b9d985b1a59081b195d995b609a1b604482015290519081900360640190fd5b33600160ff8416141561133c573360009081526020818152604080832060ff8087168552600690910190925290912054161561121a576040805162461bcd60e51b81526020600482015260176024820152761b195d995b08185b1c9958591e481858dd1a5d985d1959604a1b604482015290519081900360640190fd5b3360009081526020818152604080832060ff6000198701811685526008909101909252909120600201541615611278573360009081526020818152604080832060ff60001987011684526008019091529020600201805460ff191690555b60006112843384610a87565b3360008181526020818152604080832060ff891684526008810180845282852080546001600160a01b0319166001600160a01b0389161781556006909201845291909320805460ff191660011790559052426004909101559091506112eb908284866114c2565b604080516001815260ff8516602082015281516001600160a01b0384169233927f18a92df19fd94d6cfff209966673a5ca05a1c8e2bb68e097fce2bdc2ed811119929081900390910190a3506114ab565b3360009081526020818152604080832060ff808716855260079091019092529091205416156113ac576040805162461bcd60e51b81526020600482015260176024820152761b195d995b08185b1c9958591e481858dd1a5d985d1959604a1b604482015290519081900360640190fd5b3360009081526020818152604080832060ff600019870181168552600990910190925290912060030154161561140a573360009081526020818152604080832060ff60001987011684526009019091529020600301805460ff191690555b60006114163384610dbe565b3360008181526020818152604080832060ff89168452600781018352818420805460ff1916600117905560090190915290204260069091015590915061145e90828486611835565b604080516002815260ff8516602082015281516001600160a01b0384169233927f18a92df19fd94d6cfff209966673a5ca05a1c8e2bb68e097fce2bdc2ed811119929081900390910190a3505b505050565b60076020526000908152604090205481565b6001600160a01b0383811660009081526020818152604080832060ff8616808552600890910183529083206001908101805491820181558085529284200180546001600160a01b03191694891694909417909355919052546003111561159a576001600160a01b0380841660008181526020818152604080832060ff8088168086526008909201845293829020600190810154835191825293810191909152919092168183015290519192871691600080516020612f478339815191529181900360600190a3611595838360018461221b565b61182f565b604080516001815260ff8316602082015260038183015290516001600160a01b038086169290871691600080516020612f478339815191529181900360600190a360408051600080825260208083018085526001600160a01b038816835282825284832060ff87168452600801909152929020905161161f9260019092019190612eba565b506001600160a01b03831660009081526020818152604080832060ff600186018116855260069091019092529091205416158015611661575060ff8116600c14155b1561169c576001600160a01b03831660009081526020818152604080832060ff851684526008019091529020600201805460ff191660011790555b6005546001600160a01b038481169116146117a85760006116bd8483610a87565b6001600160a01b0385811660009081526020818152604080832060ff88168452600801909152902054919250828116911614611731576001600160a01b0384811660009081526020818152604080832060ff87168452600801909152902080546001600160a01b0319169183169190911790555b6001600160a01b0380851660008181526020818152604080832060ff881680855260089091018352928190206003018054600190810190915581519081529182019290925281518985169486169392600080516020612f67833981519152928290030190a46117a2848285856114c2565b5061182f565b6005546117c1906001600160a01b03168360018461221b565b600580546001600160a01b0390811660009081526020818152604080832060ff87168085526008909101835281842060030180546001908101909155955482519687529286015280518985169593949290921692600080516020612f67833981519152929081900390910190a45b50505050565b6001600160a01b03831660009081526020818152604080832060ff8086168552600790910190925290912054166118b3576040805162461bcd60e51b815260206004820152601f60248201527f3530302e205265666572726572206c6576656c20697320696e61637469766500604482015290519081900360640190fd5b6001600160a01b03831660009081526020818152604080832060ff8516845260090190915290206001015460021115611e19576001600160a01b0383811660008181526020818152604080832060ff8781168086526009909201845282852060019081018054918201815580875285872090910180546001600160a01b031916988d16988917905594829052935482516002815293840191909152909216818301529051919291600080516020612f47833981519152916060908290030190a36001600160a01b0384811660009081526020818152604080832060ff86168452600901909152902080546001600160a01b03191685831690811790915560055490911614156119c957611595838360028461221b565b6001600160a01b0383811660009081526020818152604080832060ff8616808552600991820184528285205486168086528585528386208287529092018452918420600280820180546001808201835591885295872090950180546001600160a01b031916978c1697909717909655919093520154909181148015611a9a57506001600160a01b0382811660009081526020818152604080832060ff881684526009019091528120600101805492881692909190611a8357fe5b6000918252602090912001546001600160a01b0316145b8015611af657506001600160a01b0382811660009081526020818152604080832060ff88168452600901909152902060019081018054928816929091908110611adf57fe5b6000918252602090912001546001600160a01b0316145b15611bbb576001600160a01b03851660009081526020818152604080832060ff8716845260090190915290206001908101541415611b7457604080516002815260ff8516602082015260058183015290516001600160a01b038085169290891691600080516020612f478339815191529181900360600190a3611bb6565b604080516002815260ff8516602082015260068183015290516001600160a01b038085169290891691600080516020612f478339815191529181900360600190a35b611e06565b8060011480611bca5750806002145b8015611c2257506001600160a01b0382811660009081526020818152604080832060ff881684526009019091528120600101805492881692909190611c0b57fe5b6000918252602090912001546001600160a01b0316145b15611ce6576001600160a01b03851660009081526020818152604080832060ff8716845260090190915290206001908101541415611ca057604080516002815260ff8516602082015260038183015290516001600160a01b038085169290891691600080516020612f478339815191529181900360600190a3611bb6565b604080516002815260ff8516602082015260048183015290516001600160a01b038085169290891691600080516020612f478339815191529181900360600190a3611e06565b806002148015611d4657506001600160a01b0382811660009081526020818152604080832060ff88168452600901909152902060019081018054928816929091908110611d2f57fe5b6000918252602090912001546001600160a01b0316145b15611e06576001600160a01b03851660009081526020818152604080832060ff8716845260090190915290206001908101541415611dc457604080516002815260ff8516602082015260058183015290516001600160a01b038085169290891691600080516020612f478339815191529181900360600190a3611e06565b604080516002815260ff8516602082015260068183015290516001600160a01b038085169290891691600080516020612f478339815191529181900360600190a35b611e128683868661232a565b505061182f565b6001600160a01b0383811660009081526020818152604080832060ff86168085526009909101835290832060028101805460018101825590855292842090920180546001600160a01b031916898616179055909152600501541615611ffe576001600160a01b03831660009081526020818152604080832060ff851684526009019091529020600190810180549091908110611eb157fe5b60009182526020808320909101546001600160a01b038681168452838352604080852060ff87168652600901909352918320600101805492909116929091611ef557fe5b6000918252602090912001546001600160a01b0316148015611f6a57506001600160a01b0383811660009081526020818152604080832060ff86168452600901909152812060058101546001909101805491909316929190611f5357fe5b6000918252602090912001546001600160a01b0316145b15611f8857611f7c848483600161277e565b6115958484848461232a565b6001600160a01b0383811660009081526020818152604080832060ff86168452600901909152812060058101546001909101805491909316929190611fc957fe5b6000918252602090912001546001600160a01b03161415611ff157611f7c848483600161277e565b611f7c848483600061277e565b6001600160a01b0383811660009081526020818152604080832060ff8616845260090190915290206001908101805492871692909190811061203c57fe5b6000918252602090912001546001600160a01b0316141561206457611f7c848483600061277e565b6001600160a01b0383811660009081526020818152604080832060ff86168452600901909152812060010180549287169290919061209e57fe5b6000918252602090912001546001600160a01b031614156120c657611f7c848483600161277e565b6001600160a01b03831660009081526020818152604080832060ff8516845260090190915281206001908101805483929081106120ff57fe5b60009182526020808320909101546001600160a01b039081168452838201949094526040928301822060ff861680845260099182018352848420600190810154968a16855284845285852091855291019091529181209091018054829190829061216557fe5b60009182526020808320909101546001600160a01b03168352828101939093526040918201812060ff86168252600901909252902060010154116121b5576121b0848483600061277e565b6121c2565b6121c2848483600161277e565b61182f8484848461232a565b6000806283d6008401818585116121e557856121e7565b845b905060008242116121f857426121fa565b825b90508181036103e88982020494506201518085049998505050505050505050565b60008061222a86868686612ce7565b60065460ff861660009081526007602090815260408083205481516323b872dd60e01b81526001600160a01b038d8116600483015280891660248301526044820192909252915196985094965093909216936323b872dd9360648082019493918390030190829087803b1580156122a057600080fd5b505af11580156122b4573d6000803e3d6000fd5b505050506040513d60208110156122ca57600080fd5b50508015612322576040805160ff80871682528516602082015281516001600160a01b0380861693908916927fc904360798d4d41abd3bac0b600f9cefbb5c035c7b54085b1dedffe0f315a82e929081900390910190a35b505050505050565b6001600160a01b03831660009081526020818152604080832060ff851684526009019091529020600201546004111561236a57611595838360028461221b565b6001600160a01b0380841660009081526020818152604080832060ff861680855260099182018452828520549095168452838352818420948452939093018152908290206001018054835181840281018401909452808452606093928301828280156123ff57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116123e1575b5050505050905080516002141561255c57836001600160a01b03168160008151811061242757fe5b60200260200101516001600160a01b031614806124695750836001600160a01b03168160018151811061245657fe5b60200260200101516001600160a01b0316145b156124cb576001600160a01b0380851660008181526020818152604080832060ff8816808552600991820184528285205490961684528383528184209584529490940190529190912060050180546001600160a01b031916909117905561255c565b80516001141561255c57836001600160a01b0316816000815181106124ec57fe5b60200260200101516001600160a01b0316141561255c576001600160a01b0380851660008181526020818152604080832060ff8816808552600991820184528285205490961684528383528184209584529490940190529190912060050180546001600160a01b03191690911790555b60408051600080825260208083018085526001600160a01b038916835282825284832060ff8816845260090190915292902090516125a09260019092019190612eba565b5060408051600080825260208083018085526001600160a01b038916835282825284832060ff8816845260090190915292902090516125e59260029092019190612eba565b506001600160a01b03841660009081526020818152604080832060ff808716855260098201845282852060050180546001600160a01b0319169055600187018116855260079091019092529091205416158015612646575060ff8216600c14155b15612681576001600160a01b03841660009081526020818152604080832060ff861684526009019091529020600301805460ff191660011790555b6001600160a01b0380851660008181526020818152604080832060ff881684526009019091529020600401805460010190556005549091161461271d5760006126ca8584610dbe565b604080516002815260ff8616602082015281519293506001600160a01b03808a169381861693918a1692600080516020612f6783398151915292908290030190a461271785828686611835565b50612777565b600554604080516002815260ff8516602082015281516001600160a01b03808a1694600094911692600080516020612f67833981519152929081900390910190a4600554612777906001600160a01b03168460028561221b565b5050505050565b80612a2e576001600160a01b03831660009081526020818152604080832060ff861684526009019091528120600101805482919082906127ba57fe5b6000918252602080832091909101546001600160a01b039081168452838201949094526040928301822060ff8716808452600991820183528484206001908101805480830182559086528486200180546001600160a01b0319168c89161790559589168452838352848420908452019052908120909101805490919061283c57fe5b60009182526020808320909101546001600160a01b038681168452838352604080852060ff8816865260090190935291832060010180549183169392881692600080516020612f4783398151915292600292889291829190829061289c57fe5b60009182526020808320909101546001600160a01b03168352828101939093526040918201812060ff808c1683526009909101845290829020600101548251958216865293811692850192909252911682820152519081900360600190a36001600160a01b0380841660008181526020818152604080832060ff88168452600901909152812060010180549293881692600080516020612f47833981519152926002928892829190829061294c57fe5b60009182526020808320909101546001600160a01b03168352828101939093526040918201812060ff808c168352600990910184529082902060010154825195821686529381169285019290925260029092011682820152519081900360600190a36001600160a01b03831660009081526020818152604080832060ff86168452600901909152812060010180549091906129e357fe5b60009182526020808320909101546001600160a01b038781168452838352604080852060ff881686526009019093529190922080546001600160a01b0319169190921617905561182f565b6001600160a01b03831660009081526020818152604080832060ff861684526009019091528120600190810180548392908110612a6757fe5b6000918252602080832091909101546001600160a01b039081168452838201949094526040928301822060ff8716808452600991820183528484206001908101805480830182559086528486200180546001600160a01b0319168c8916179055958916845283835284842090845201905220810180549091908110612ae857fe5b60009182526020808320909101546001600160a01b038681168452838352604080852060ff88168652600901909352918320600190810180549284169493891693600080516020612f4783398151915293600293899383929091908110612b4b57fe5b60009182526020808320909101546001600160a01b03168352828101939093526040918201812060ff808c1683526009909101845290829020600101548251958216865293811692850192909252911682820152519081900360600190a36001600160a01b0380841660008181526020818152604080832060ff881684526009019091528120600190810180549394891693600080516020612f478339815191529360029389939192839291908110612c0057fe5b60009182526020808320909101546001600160a01b03168352828101939093526040918201812060ff808c168352600990910184529082902060010154825195821686529381169285019290925260049092011682820152519081900360600190a36001600160a01b03831660009081526020818152604080832060ff861684526009019091529020600190810180549091908110612c9b57fe5b60009182526020808320909101546001600160a01b038781168452838352604080852060ff881686526009019093529190922080546001600160a01b0319169190921617905550505050565b6000808581600160ff87161415612dbd575b6001600160a01b03821660009081526020818152604080832060ff808a1685526008909101909252909120600201541615612dae57604080516001815260ff8716602082015281516001600160a01b03808b1693908616927f8505c55b7d1b61ab787777abf6d6441d789408bf1b63939eaf0bdf5265ee96bb929081900390910190a3506001600160a01b0390811660009081526020818152604080832060ff88168452600801909152902054166001612db8565b9092509050612e72565b612cf9565b6001600160a01b03821660009081526020818152604080832060ff808a1685526009909101909252909120600301541615612dae57604080516002815260ff8716602082015281516001600160a01b03808b1693908616927f8505c55b7d1b61ab787777abf6d6441d789408bf1b63939eaf0bdf5265ee96bb929081900390910190a3506001600160a01b0390811660009081526020818152604080832060ff88168452600901909152902054166001612dbd565b94509492505050565b6040518060c001604052806000815260200160006001600160a01b03168152602001600081526020016000815260200160008152602001600081525090565b828054828255906000526020600020908101928215612f0f579160200282015b82811115612f0f57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190612eda565b50612f1b929150612f1f565b5090565b612f4391905b80821115612f1b5780546001600160a01b0319168155600101612f25565b9056fe68062c5925c4317adf3a7095478d28b33fd8b41458bc7620b61bc46bf1b24d82c0c668afbd23c161a62e10d70001c84357215783fecb9dc9b8d21953cd2c490875736572206973206e6f74206578697374732e2052656769737465722066697273742ea265627a7a72315820bc7a12a862a735fd49a0cfa3d0547595afac2c78e00c53d81a976328d80ca56364736f6c634300051100320000000000000000000000001ba17851a1bf9b8bcd7a6595774a6c892f4f0a450000000000000000000000007dadd73f6ae9e4ce0ba50d8818ebd8a7ec578b11

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

0000000000000000000000001ba17851a1bf9b8bcd7a6595774a6c892f4f0a450000000000000000000000007dadd73f6ae9e4ce0ba50d8818ebd8a7ec578b11

-----Decoded View---------------
Arg [0] : ownerAddress (address): 0x1ba17851a1bf9b8bcd7a6595774a6c892f4f0a45
Arg [1] : token (address): 0x7dadd73f6ae9e4ce0ba50d8818ebd8a7ec578b11

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000001ba17851a1bf9b8bcd7a6595774a6c892f4f0a45
Arg [1] : 0000000000000000000000007dadd73f6ae9e4ce0ba50d8818ebd8a7ec578b11


Deployed ByteCode Sourcemap

164:22725:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3013:8;3010:90;;3082:5;;3057:31;;3070:10;;-1:-1:-1;;;;;3082:5:0;3057:12;:31::i;:::-;3050:38;;3010:90;3120:50;3133:10;3145:24;3160:8;;3145:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;3145:14:0;;-1:-1:-1;;;3145:24:0:i;:::-;3120:12;:50::i;:::-;164:22725;17459:155;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17459:155:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17459:155:0;;-1:-1:-1;;;;;17459:155:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;1257:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1257:40:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1257:40:0;-1:-1:-1;;;;;1257:40:0;;:::i;:::-;;;;;;;;;;;;;;;;1161:43;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1161:43:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1161:43:0;;:::i;:::-;;;;-1:-1:-1;;;;;1161:43:0;;;;;;;;;;;;;;1307:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1307:26:0;;;:::i;16733:349::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16733:349:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16733:349:0;;-1:-1:-1;;;;;16733:349:0;;;;;;;;:::i;1211:39::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1211:39:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1211:39:0;;:::i;17783:147::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17783:147:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17783:147:0;-1:-1:-1;;;;;17783:147:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;19032:110;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19032:110:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19032:110:0;-1:-1:-1;;;;;19032:110:0;;:::i;22420:455::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;22420:455:0;-1:-1:-1;;;;;22420:455:0;;:::i;3186:127::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3186:127:0;-1:-1:-1;;;;;3186:127:0;;:::i;20828:1109::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20828:1109:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20828:1109:0;-1:-1:-1;;;;;20828:1109:0;;:::i;17094:349::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17094:349:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17094:349:0;;-1:-1:-1;;;;;17094:349:0;;;;;;;;:::i;17938:450::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17938:450:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17938:450:0;;-1:-1:-1;;;;;17938:450:0;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;17938:450:0;-1:-1:-1;;;;;17938:450:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;17938:450:0;;;;;;;;;;;;;;;;;;;;1340:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1340:20:0;;;:::i;18396:624::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18396:624:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18396:624:0;;-1:-1:-1;;;;;18396:624:0;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;18396:624:0;-1:-1:-1;;;;;18396:624:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;18396:624:0;-1:-1:-1;;;;;18396:624:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;18396:624:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;18396:624:0;;;;;;;;;;;;;;;;;;;;;;;1117:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1117:37:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1117:37:0;-1:-1:-1;;;;;1117:37:0;;:::i;:::-;;;;;;;-1:-1:-1;;;;;1117:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17622:155;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17622:155:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17622:155:0;;-1:-1:-1;;;;;17622:155:0;;;;;;;;:::i;1066:38::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1066:38:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3325:1698;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3325:1698:0;;;;;;;;;;;:::i;1407:40::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1407:40:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1407:40:0;;;;:::i;5039:1623::-;5135:25;5148:11;5135:12;:25::i;:::-;5134:26;5126:50;;;;;-1:-1:-1;;;5126:50:0;;;;;;;;;;;;-1:-1:-1;;;5126:50:0;;;;;;;;;;;;;;;5195:29;5208:15;5195:12;:29::i;:::-;5187:61;;;;;-1:-1:-1;;;5187:61:0;;;;;;;;;;;;-1:-1:-1;;;5187:61:0;;;;;;;;;;;;;;;5285:11;5361:24;;5414:9;;;;5406:42;;;;;-1:-1:-1;;;5406:42:0;;;;;;;;;;;;-1:-1:-1;;;5406:42:0;;;;;;;;;;;;;;;5469:16;;:::i;:::-;-1:-1:-1;5488:205:0;;;;;;;;5512:10;;;5488:205;;-1:-1:-1;;;;;5488:205:0;;;;;;;;;;-1:-1:-1;5488:205:0;;;;;;;;;;;;;;;;;;;;;;;;5714:18;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5714:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5762:10;;5750:23;;;;;;;;:37;;;;;;;;5808:45;;;;;;;;;5874:36;;;:33;;;;:36;;;;;:43;;-1:-1:-1;;5874:43:0;;;;;;;;5929:33;;;:36;;;;;:43;;;;;;;;;5983:27;;;:30;;;;;6021:15;5983:35;;;:53;;;6047:27;;;;:30;;;;;:35;:53;;;;6131:10;;6123:19;;;;;;;;:33;;;;;;;;;;;6167:12;;;;;;;6200:22;;;;;;;;;:36;:38;;;;;;5488:205;;6276:34;;5714:18;;6276;:34::i;:::-;-1:-1:-1;;;;;6321:18:0;;;:5;:18;;;;;;;;;;;6349:1;6321:30;;;:27;;;;:30;;;;;;:63;;-1:-1:-1;;;;;;6321:63:0;;;;;;;;;;;;;-1:-1:-1;6395:54:0;;6321:18;;:63;;6440:5;;6395:16;:54::i;:::-;6462:74;6479:11;6492:34;6511:11;6524:1;6492:18;:34::i;:::-;6527:5;6534:1;6462:16;:74::i;:::-;-1:-1:-1;;;;;6605:18:0;;;:5;:18;;;;;;;;;;;:21;6562:92;;;6628:22;;;;;;;:25;6562:92;;;;;;;;;6605:18;6562:92;;;;;;;;;;;5039:1623;;;;;;:::o;20662:158::-;20798:2;20789:12;20783:19;;20760:53::o;17459:155::-;-1:-1:-1;;;;;17566:18:0;;17542:4;17566:18;;;;;;;;;;;:40;;;;;;:33;;;;:40;;;;;;;;17459:155;;;;;:::o;1257:40::-;;;;;;;;;;;;;:::o;1161:43::-;;;;;;;;;;;;-1:-1:-1;;;;;1161:43:0;;:::o;1307:26::-;;;;:::o;16733:349::-;16815:7;16835:240;-1:-1:-1;;;;;16873:18:0;;;16867:5;16873:18;;;;;;;;;;;:27;;;;;;16867:34;;;;;:56;;;;;;:49;;;;:56;;;;;;;;16863:131;;;-1:-1:-1;;;;;;16951:18:0;;;:5;:18;;;;;;;;;;:27;;;;16944:34;;16863:131;-1:-1:-1;;;;;17036:18:0;;;:5;:18;;;;;;;;;;:27;;;;;;;16835:240;;1211:39;;;;;;;;;;;;-1:-1:-1;;;;;1211:39:0;;:::o;17783:147::-;-1:-1:-1;;;;;17873:11:0;17838:7;17873:11;;;;;;;;;;:21;;;;17895:26;;;;;17873:21;;17783:147::o;19032:110::-;-1:-1:-1;;;;;19114:11:0;19089:4;19114:11;;;;;;;;;;:14;:19;;;19032:110::o;22420:455::-;22552:5;;-1:-1:-1;;;;;22585:16:0;;;22475:4;22585:16;;;;;;;;;;;:26;;;;;22622:6;;:63;;-1:-1:-1;;;22622:63:0;;22552:5;;;22622:63;;;;;;;;;;;;;;;;;;;;;22475:4;;22521;;22552:5;;22585:26;;22622:6;;;;;:19;;:63;;;;;;;;;;22475:4;22622:6;:63;;;5:2:-1;;;;30:1;27;20:12;5:2;22622:63:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;22622:63:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;;22696:16:0;;;:5;:16;;;22622:63;22696:16;;;;;;22726:15;22696:27;;;:45;22752:31;;;:41;;;;;;;;22804:26;;;;:30;;;;-1:-1:-1;;;;22420:455:0;;;:::o;3186:127::-;3264:41;3277:10;3289:15;3264:12;:41::i;:::-;3186:127;:::o;20828:1109::-;20879:4;;20941:1;20928:975;20947:2;20944:1;:5;;;20928:975;;20983:13;;;;;;;:10;:13;;;;;;;-1:-1:-1;21018:28:0;21038:4;20994:1;21018:19;:28::i;:::-;21015:415;;;-1:-1:-1;;;;;21092:11:0;;21070:19;21092:11;;;;;;;;;;;:23;;;;;:20;;;:23;;;;;:28;;;21164:11;;;;;;;:22;;;;21229:51;21248:6;21092:28;21164:22;21229:18;:51::i;:::-;-1:-1:-1;;;;;21303:11:0;;:5;:11;;;;;;;;;;;:23;;;;;:20;;;:23;;;;;:38;;:50;;;21376:11;;;;:21;;:34;;;;;;;-1:-1:-1;;;21015:415:0;21468:28;21488:4;21494:1;21468:19;:28::i;:::-;21465:420;;;-1:-1:-1;;;;;21543:11:0;;21521:19;21543:11;;;;;;;;;;;:23;;;;;:20;;;:23;;;;;:28;;;21615:11;;;;;;;:22;;;;21680:51;21699:6;21543:28;21615:22;21680:18;:51::i;:::-;-1:-1:-1;;;;;21754:11:0;;:5;:11;;;;;;;;;;;:23;;;;;:20;;;:23;;;;;:38;;:50;;;21827:11;;;;:21;;:34;;;;;;;-1:-1:-1;;;21465:420:0;20951:3;;20928:975;;;-1:-1:-1;21921:4:0;;20828:1109;-1:-1:-1;;;20828:1109:0:o;17094:349::-;17176:7;17196:240;-1:-1:-1;;;;;17234:18:0;;;17228:5;17234:18;;;;;;;;;;;:27;;;;;;17228:34;;;;;:56;;;;;;:49;;;;:56;;;;;;;;17224:131;;;-1:-1:-1;;;;;;17312:18:0;;;:5;:18;;;;;;;;;;:27;;;;17305:34;;17224:131;-1:-1:-1;;;;;17397:18:0;;;:5;:18;;;;;;;;;;:27;;;;;;;17196:240;;17938:450;-1:-1:-1;;;;;18075:18:0;;;18015:7;18075:18;;;;;;;;;;;:34;;;;;;:27;;;;:34;;;;;:50;;18207:42;;;;18328:49;;;;18075:50;18144:44;;;18067:311;;;;;;;;;;;;;;;;;18015:7;;18024:16;;18015:7;;;;18075:50;;;;;18144:44;;18207:42;;;;;18067:311;18144:44;;18067:311;;18144:44;18067:311;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;18067:311:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17938:450;;;;;;;:::o;1340:20::-;;;-1:-1:-1;;;;;1340:20:0;;:::o;18396:624::-;-1:-1:-1;;;;;18561:18:0;;;18473:7;18561:18;;;;;;;;;;;:34;;;;;;:27;;;;:34;;;;;:50;;18777:42;;;;18838:45;;;;18962:49;;;;18561:50;18630:54;;18553:459;;;;;;;;;;;;;;;;;18473:7;;18482:16;;;;18473:7;;;;;;18561:50;;;;18630:54;;18703:55;;;;;18777:42;;;18838:45;;;;;18962:49;18553:459;18630:54;;18553:459;;18630:54;18553:459;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;18553:459:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;18553:459:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18396:624;;;;;;;;:::o;1117:37::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1117:37:0;;;;;;;;;:::o;17622:155::-;-1:-1:-1;;;;;17729:18:0;;;;17705:4;17729:18;;;;;;;;;;;:40;;;;;;:33;;:40;;;;;;;;17622:155::o;1066:38::-;1102:2;1066:38;:::o;3325:1698::-;3409:24;3422:10;3409:12;:24::i;:::-;3401:72;;;;-1:-1:-1;;;3401:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3492:6;:11;;3502:1;3492:11;:26;;;;3507:6;:11;;3517:1;3507:11;3492:26;3484:53;;;;;-1:-1:-1;;;3484:53:0;;;;;;;;;;;;-1:-1:-1;;;3484:53:0;;;;;;;;;;;;;;;3564:1;3556:5;:9;;;:33;;;;-1:-1:-1;1102:2:0;3569:20;;;;;3556:33;3548:59;;;;;-1:-1:-1;;;3548:59:0;;;;;;;;;;;;-1:-1:-1;;;3548:59:0;;;;;;;;;;;;;;;3634:10;3670:1;3660:11;;;;3656:1360;;;3703:10;3697:5;:17;;;;;;;;;;;:39;;;;;;:32;;;;:39;;;;;;;;3696:40;3688:76;;;;;-1:-1:-1;;;3688:76:0;;;;;;;;;;;;-1:-1:-1;;;3688:76:0;;;;;;;;;;;;;;;3791:10;3785:5;:17;;;;;;;;;;;:35;-1:-1:-1;;3812:7:0;;3785:35;;;;:26;;;;:35;;;;;;:43;;;;3781:135;;;3855:10;3895:5;3849:17;;;;;;;;;;;:35;-1:-1:-1;;3876:7:0;;3849:35;;;:26;;:35;;;;;:43;;:51;;-1:-1:-1;;3849:51:0;;;3781:135;3936:22;3961:37;3980:10;3992:5;3961:18;:37::i;:::-;4019:10;4013:5;:17;;;;;;;;;;;:33;;;;;:26;;;:33;;;;;;:66;;-1:-1:-1;;;;;;4013:66:0;-1:-1:-1;;;;;4013:66:0;;;;;4094:32;;;;:39;;;;;;:46;;-1:-1:-1;;4094:46:0;-1:-1:-1;4094:46:0;;;4155:33;;4196:15;4155:38;;;;:56;4013:66;;-1:-1:-1;4226:58:0;;4013:66;4271:5;4013:33;4226:16;:58::i;:::-;4318:45;;;4354:1;4318:45;;;;;;;;;;;-1:-1:-1;;;;;4318:45:0;;;4326:10;;4318:45;;;;;;;;;;;3656:1360;;;;4413:10;4407:5;:17;;;;;;;;;;;:39;;;;;;:32;;;;:39;;;;;;;;4406:40;4398:76;;;;;-1:-1:-1;;;4398:76:0;;;;;;;;;;;;-1:-1:-1;;;4398:76:0;;;;;;;;;;;;;;;4502:10;4496:5;:17;;;;;;;;;;;:35;-1:-1:-1;;4523:7:0;;4496:35;;;;:26;;;;:35;;;;;;:43;;;;4492:135;;;4566:10;4606:5;4560:17;;;;;;;;;;;:35;-1:-1:-1;;4587:7:0;;4560:35;;;:26;;:35;;;;;:43;;:51;;-1:-1:-1;;4560:51:0;;;4492:135;4643:22;4668:37;4687:10;4699:5;4668:18;:37::i;:::-;4740:10;4734:5;:17;;;;;;;;;;;:39;;;;;:32;;;:39;;;;;:46;;-1:-1:-1;;4734:46:0;4776:4;4734:46;;;4795:26;;:33;;;;;4836:15;4795:38;;;;:56;4643:62;;-1:-1:-1;4868:57:0;;4643:62;4912:5;4734:39;4868:16;:57::i;:::-;4959:45;;;4995:1;4959:45;;;;;;;;;;;-1:-1:-1;;;;;4959:45:0;;;4967:10;;4959:45;;;;;;;;;;;3656:1360;;3325:1698;;;:::o;1407:40::-;;;;;;;;;;;;;:::o;6674:1717::-;-1:-1:-1;;;;;6792:22:0;;;:5;:22;;;;;;;;;;;:38;;;;;;:31;;;;:38;;;;;:48;;;;27:10:-1;;23:18;;;45:23;;6792:66:0;;;;;;;;;-1:-1:-1;;;;;;6792:66:0;;;;;;;;;;;6875:38;;;:55;6933:1;-1:-1:-1;6871:279:0;;;-1:-1:-1;;;;;6956:116:0;;;7015:5;:22;;;;;;;;;;;:38;;;;;;;:31;;;;:38;;;;;;6999:1;7015:48;;;:55;6956:116;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;6956:116:0;;;;;;;;7094:44;7105:15;7122:5;7129:1;7132:5;7094:10;:44::i;:::-;7087:51;;6871:279;7175:55;;;7218:1;7175:55;;;;;;;;;7228:1;7175:55;;;;;;-1:-1:-1;;;;;7175:55:0;;;;;;;;-1:-1:-1;;;;;;;;;;;7175:55:0;;;;;;;;7316:16;;;7330:1;7316:16;;;;;;;;;;-1:-1:-1;;;;;7265:22:0;;;;;;;;;;:38;;;;;:31;;:38;;;;;;:67;;;;:48;;;;;7316:16;7265:67;:::i;:::-;-1:-1:-1;;;;;;7348:22:0;;:5;:22;;;;;;;;;;;:46;7392:1;7386:7;;7348:46;;;;:37;;;;:46;;;;;;;;7347:47;:71;;;;-1:-1:-1;7398:20:0;;;1102:2;7398:20;;7347:71;7343:157;;;-1:-1:-1;;;;;7435:22:0;;:5;:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:46;;:53;;-1:-1:-1;;7435:53:0;7484:4;7435:53;;;7343:157;7574:5;;-1:-1:-1;;;;;7555:24:0;;;7574:5;;7555:24;7551:833;;7639:27;7669:42;7688:15;7705:5;7669:18;:42::i;:::-;-1:-1:-1;;;;;7730:22:0;;;:5;:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:54;7639:72;;-1:-1:-1;7730:77:0;;;:54;;:77;7726:194;;-1:-1:-1;;;;;7828:22:0;;;:5;:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:76;;-1:-1:-1;;;;;;7828:76:0;;;;;;;;;;7726:194;-1:-1:-1;;;;;7948:22:0;;;:5;:22;;;;;;;;;;;:38;;;;;;:31;;;;:38;;;;;;:54;;:56;;;;;;;;;8024:68;;;;;;;;;;;;;;;;;;;;;7948:22;-1:-1:-1;;;;;;;;;;;8024:68:0;;;;;;;8107;8124:15;8141:19;8162:5;8169;8107:16;:68::i;:::-;7551:833;;;;8219:5;;8208:34;;-1:-1:-1;;;;;8219:5:0;8226;8219;8236;8208:10;:34::i;:::-;8263:5;;;-1:-1:-1;;;;;8263:5:0;;;8257;:12;;;;;;;;;;;:28;;;;;;:21;;;;:28;;;;;:44;;:46;;8263:5;8257:46;;;;;;8331:5;;8323:49;;;;;;;;;;;;;;;8257:5;;8331;;;;;-1:-1:-1;;;;;;;;;;;8323:49:0;;;;;;;;;;7551:833;6674:1717;;;;:::o;8399:4779::-;-1:-1:-1;;;;;8525:22:0;;:5;:22;;;;;;;;;;;:44;;;;;;:37;;;;:44;;;;;;;;8517:88;;;;;-1:-1:-1;;;8517:88:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8630:22:0;;:5;:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:58;;:65;8698:1;-1:-1:-1;8626:2292:0;;;-1:-1:-1;;;;;8716:22:0;;;:5;:22;;;;;;;;;;;:38;;;;;;;:31;;;;:38;;;;;:58;;;;27:10:-1;;23:18;;;45:23;;8716:76:0;;;;;;;;;;;-1:-1:-1;;;;;;8716:76:0;;;;;;;;;8871:38;;;;:65;;8812:126;;8855:1;8812:126;;;;;;;;;;;;;;;;;;8716:22;;:76;-1:-1:-1;;;;;;;;;;;8812:126:0;;;;;;;;;-1:-1:-1;;;;;9000:18:0;;;:5;:18;;;;;;;;;;;:34;;;;;:27;;:34;;;;;:68;;-1:-1:-1;;;;;;9000:68:0;;;;;;;;;;9108:5;;;;;9089:24;9085:116;;;9141:44;9152:15;9169:5;9176:1;9179:5;9141:10;:44::i;9085:116::-;-1:-1:-1;;;;;9243:22:0;;;9229:11;9243:22;;;;;;;;;;;:38;;;;;;:31;;;;:38;;;;;:54;;;9324:10;;;;;;;;;:26;;;:19;;;:26;;;;;:47;;;;27:10:-1;;9243:54:0;23:18:-1;;;45:23;;9324:65:0;;;;;;;;;;;-1:-1:-1;;;;;;9324:65:0;;;;;;;;;;;9430:26;;;;:46;:53;9243:54;;9517:8;;9516:102;;;;-1:-1:-1;;;;;;9549:10:0;;;:5;:10;;;;;;;;;;;:26;;;;;:19;;:26;;;;;:46;;:49;;:68;;;;:46;;:5;:49;;;;;;;;;;;;;;-1:-1:-1;;;;;9549:49:0;:68;9516:102;:193;;;;-1:-1:-1;;;;;;9640:10:0;;;:5;:10;;;;;;;;;;;:26;;;;;:19;;:26;;;;;:46;;;;:49;;:68;;;;:46;;;:49;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9640:49:0;:68;9516:193;9512:1313;;;-1:-1:-1;;;;;9734:22:0;;:5;:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:58;;;;:65;:70;9730:264;;;9834:43;;;9865:1;9834:43;;;;;;;;;9875:1;9834:43;;;;;;-1:-1:-1;;;;;9834:43:0;;;;;;;;-1:-1:-1;;;;;;;;;;;9834:43:0;;;;;;;;9730:264;;;9931:43;;;9962:1;9931:43;;;;;;;;;9972:1;9931:43;;;;;;-1:-1:-1;;;;;9931:43:0;;;;;;;;-1:-1:-1;;;;;;;;;;;9931:43:0;;;;;;;;9730:264;9512:1313;;;10021:3;10028:1;10021:8;:20;;;;10033:3;10040:1;10033:8;10021:20;10020:115;;;;-1:-1:-1;;;;;;10067:10:0;;;:5;:10;;;;;;;;;;;:26;;;;;:19;;:26;;;;;:46;;:49;;:68;;;;:46;;:5;:49;;;;;;;;;;;;;;-1:-1:-1;;;;;10067:49:0;:68;10020:115;10016:809;;;-1:-1:-1;;;;;10160:22:0;;:5;:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:58;;;;:65;:70;10156:264;;;10260:43;;;10291:1;10260:43;;;;;;;;;10301:1;10260:43;;;;;;-1:-1:-1;;;;;10260:43:0;;;;;;;;-1:-1:-1;;;;;;;;;;;10260:43:0;;;;;;;;10156:264;;;10357:43;;;10388:1;10357:43;;;;;;;;;10398:1;10357:43;;;;;;-1:-1:-1;;;;;10357:43:0;;;;;;;;-1:-1:-1;;;;;;;;;;;10357:43:0;;;;;;;;10016:809;;;10445:3;10452:1;10445:8;:80;;;;-1:-1:-1;;;;;;10457:10:0;;;:5;:10;;;;;;;;;;;:26;;;;;:19;;:26;;;;;:46;;;;:49;;:68;;;;:46;;;:49;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10457:49:0;:68;10445:80;10441:384;;;-1:-1:-1;;;;;10550:22:0;;:5;:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:58;;;;:65;:70;10546:264;;;10650:43;;;10681:1;10650:43;;;;;;;;;10691:1;10650:43;;;;;;-1:-1:-1;;;;;10650:43:0;;;;;;;;-1:-1:-1;;;;;;;;;;;10650:43:0;;;;;;;;10546:264;;;10747:43;;;10778:1;10747:43;;;;;;;;;10788:1;10747:43;;;;;;-1:-1:-1;;;;;10747:43:0;;;;;;;;-1:-1:-1;;;;;;;;;;;10747:43:0;;;;;;;;10546:264;10848:58;10876:11;10889:3;10893:5;10900;10848:27;:58::i;:::-;10841:65;;;;8626:2292;-1:-1:-1;;;;;10938:22:0;;;:5;:22;;;;;;;;;;;:38;;;;;;:31;;;;:38;;;;;:59;;;27:10:-1;;39:1;23:18;;45:23;;10938:77:0;;;;;;;;;;;-1:-1:-1;;;;;;10938:77:0;;;;;;;11032:38;;;:49;;;;:63;11028:1100;;-1:-1:-1;;;;;11200:22:0;;:5;:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:58;;;;:61;;:58;;;:61;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11117:22:0;;;;;;;;;;;;:38;;;;;:31;;:38;;;;;;11200:61;11117:58;:61;;11200;;;;;11117:58;;:61;;;;;;;;;;;;;;-1:-1:-1;;;;;11117:61:0;:144;11116:300;;;;-1:-1:-1;;;;;;11366:22:0;;;:5;:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:49;;;;;11284:58;;;:61;;11366:49;;;;;11284:58;11366:5;11284:61;;;;;;;;;;;;;;-1:-1:-1;;;;;11284:61:0;:131;11116:300;11112:1005;;;11439:51;11448:11;11461:15;11478:5;11485:4;11439:8;:51::i;:::-;11516:70;11544:11;11557:15;11573:5;11580;11516:27;:70::i;11112:1005::-;-1:-1:-1;;;;;11695:22:0;;;:5;:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:49;;;;;11612:58;;;:61;;11695:49;;;;;11612:58;11695:5;11612:61;;;;;;;;;;;;;;-1:-1:-1;;;;;11612:61:0;:132;11608:509;;;11765:51;11774:11;11787:15;11804:5;11811:4;11765:8;:51::i;11608:509::-;11953:52;11962:11;11975:15;11992:5;11999;11953:8;:52::i;11608:509::-;-1:-1:-1;;;;;12144:22:0;;;:5;:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:58;;;;:61;;:76;;;;:58;;;:61;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12144:61:0;:76;12140:511;;;12237:52;12246:11;12259:15;12276:5;12283;12237:8;:52::i;12140:511::-;-1:-1:-1;;;;;12403:22:0;;;:5;:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:58;;:61;;:76;;;;:58;;:5;:61;;;;;;;;;;;;;;-1:-1:-1;;;;;12403:61:0;:76;12399:252;;;12496:51;12505:11;12518:15;12535:5;12542:4;12496:8;:51::i;12399:252::-;-1:-1:-1;;;;;12810:22:0;;12804:5;12810:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:58;;;;:61;;12804:5;;12810:58;:61;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12810:61:0;;;12804:68;;;;;;;;;;;;;;;:84;;;;;;:77;;;;:84;;;;;12810:61;12804:104;;;:111;12681:22;;;;;;;;;;;:38;;;:31;;:38;;;;;;:58;;;:61;;12810;;12681:58;12810:61;;12681;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12681:61:0;12675:68;;;;;;;;;;;;;;;:84;;;;;:77;;:84;;;;;12681:61;12675:104;:111;:240;12671:409;;12932:52;12941:11;12954:15;12971:5;12978;12932:8;:52::i;:::-;12671:409;;;13017:51;13026:11;13039:15;13056:5;13063:4;13017:8;:51::i;:::-;13100:70;13128:11;13141:15;13157:5;13164;13100:27;:70::i;21945:468::-;22053:7;;22127;22113:21;;22053:7;22159:24;;;:51;;22199:11;22159:51;;;22186:10;22159:51;22144:66;;22220:10;22260:3;22241:15;22233:30;:63;;22280:15;22233:63;;;22266:3;22233:63;22220:76;-1:-1:-1;22324:9:0;;;22370:4;22355:14;;;:19;;-1:-1:-1;22401:5:0;22355:19;22391:15;;21945:468;-1:-1:-1;;;;;;;;;21945:468:0:o;20237:413::-;20340:16;20358:21;20383:52;20401:11;20414:5;20421:6;20429:5;20383:17;:52::i;:::-;20448:6;;20503:17;;;20448:6;20503:17;;;:10;:17;;;;;;;;;20448:73;;-1:-1:-1;;;20448:73:0;;-1:-1:-1;;;;;20448:73:0;;;;;;;;;;;;;;;;;;;;;;;20339:96;;-1:-1:-1;20339:96:0;;-1:-1:-1;20448:6:0;;;;;:19;;:73;;;;;20503:17;20448:73;;;;;;;;:6;:73;;;5:2:-1;;;;30:1;27;20:12;5:2;20448:73:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20448:73:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;20542:101:0;;;;20584:47;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20584:47:0;;;;;;;;;;;;;;;;;;;20542:101;20237:413;;;;;;:::o;14815:1906::-;-1:-1:-1;;;;;14948:22:0;;:5;:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:59;;:66;15017:1;-1:-1:-1;14944:154:0;;;15042:44;15053:15;15070:5;15077:1;15080:5;15042:10;:44::i;14944:154::-;-1:-1:-1;;;;;15146:22:0;;;15140:5;15146:22;;;;;;;;;;;:38;;;;;;:31;;;;:38;;;;;:54;;;;15140:61;;;;;;;;:77;;;:70;;;;:77;;;;;;15146:54;15140:97;15118:119;;;;;;;;;;;;;;;;;:19;;:119;;;15140:97;15118:119;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15118:119:0;;;;;;;;;;;;;;;;;;;;;;;15262:2;:9;15275:1;15262:14;15258:501;;;15306:15;-1:-1:-1;;;;;15297:24:0;:2;15300:1;15297:5;;;;;;;;;;;;;;-1:-1:-1;;;;;15297:24:0;;:69;;;;15351:15;-1:-1:-1;;;;;15342:24:0;:2;15345:1;15342:5;;;;;;;;;;;;;;-1:-1:-1;;;;;15342:24:0;;15297:69;15293:455;;;-1:-1:-1;;;;;15393:22:0;;;15387:5;15393:22;;;;;;;;;;;:38;;;;;;:31;;;;:38;;;;;:54;;;;15387:61;;;;;;;;:77;;;:70;;;;:77;;;;;;:88;;:106;;-1:-1:-1;;;;;;15387:106:0;;;;;;15293:455;;;15519:2;:9;15532:1;15519:14;15515:233;;;15567:15;-1:-1:-1;;;;;15558:24:0;:2;15561:1;15558:5;;;;;;;;;;;;;;-1:-1:-1;;;;;15558:24:0;;15554:179;;;-1:-1:-1;;;;;15613:22:0;;;15607:5;15613:22;;;;;;;;;;;:38;;;;;;:31;;;;:38;;;;;:54;;;;15607:61;;;;;;;;:77;;;:70;;;;:77;;;;;;:88;;:106;;-1:-1:-1;;;;;;15607:106:0;;;;;;15554:179;15840:16;;;15854:1;15840:16;;;;;;;;;;-1:-1:-1;;;;;15779:22:0;;;;;;;;;;:38;;;;;:31;;:38;;;;;;:77;;;;:58;;;;;15840:16;15779:77;:::i;:::-;-1:-1:-1;15929:16:0;;;15943:1;15929:16;;;;;;;;;;-1:-1:-1;;;;;15867:22:0;;;;;;;;;;:38;;;;;:31;;:38;;;;;;:78;;;;:59;;;;;15929:16;15867:78;:::i;:::-;-1:-1:-1;;;;;;15956:22:0;;16016:1;15956:22;;;;;;;;;;;:38;;;;;;:31;;;:38;;;;;:49;;:62;;-1:-1:-1;;;;;;15956:62:0;;;;16074:7;;16036:46;;;;:37;;;;:46;;;;;;;;16035:47;:71;;;;-1:-1:-1;16086:20:0;;;1102:2;16086:20;;16035:71;16031:157;;;-1:-1:-1;;;;;16123:22:0;;:5;:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:46;;:53;;-1:-1:-1;;16123:53:0;16172:4;16123:53;;;16031:157;-1:-1:-1;;;;;16200:22:0;;;:5;:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:54;;:56;;;;;;16300:5;;;;;16281:24;16277:437;;16322:27;16352:42;16371:15;16388:5;16352:18;:42::i;:::-;16416:68;;;16475:1;16416:68;;;;;;;;;;;16322:72;;-1:-1:-1;;;;;;16416:68:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;16416:68:0;;;;;;;;16499:67;16516:15;16533:19;16553:5;16560;16499:16;:67::i;:::-;16277:437;;;;16612:5;;16604:49;;;16644:1;16604:49;;;;;;;;;;;-1:-1:-1;;;;;16604:49:0;;;;16627:1;;16612:5;;;-1:-1:-1;;;;;;;;;;;16604:49:0;;;;;;;;;;16679:5;;16668:34;;-1:-1:-1;;;;;16679:5:0;16686;16693:1;16696:5;16668:10;:34::i;:::-;14815:1906;;;;;:::o;13186:1617::-;13296:2;13291:1505;;-1:-1:-1;;;;;13321:22:0;;13315:5;13321:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:58;;:61;;13315:5;;13321:58;13315:5;;13321:61;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13321:61:0;;;13315:68;;;;;;;;;;;;;;;:84;;;;;;:77;;;;:84;;;;;13321:61;13315:104;;;27:10:-1;;23:18;;;45:23;;13315:122:0;;;;;;;;;-1:-1:-1;;;;;;13315:122:0;;;;;;;13483:22;;;;;;;;;;;:38;;;:31;:38;;;;;:58;;;:61;;:58;;13321:61;13483;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13568:22:0;;;;;;;;;;;;:38;;;;;:31;;:38;;;;;;13483:61;13568:58;:61;;13483;;;;13457:218;;;;-1:-1:-1;;;;;;;;;;;13457:218:0;13546:1;;13549:5;;13483:61;;;13568:58;13483:61;;13568;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13568:61:0;13562:68;;;;;;;;;;;;;;;:84;;;;;;:77;;;;:84;;;;;;13568:61;13562:104;:111;13457:218;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13695:176:0;;;13758:5;13764:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:58;;:61;;13695:176;;;;;-1:-1:-1;;;;;;;;;;;13695:176:0;13738:1;;13741:5;;13758;;13764:58;13758:5;;13764:61;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13764:61:0;13758:68;;;;;;;;;;;;;;;:84;;;;;;:77;;;;:84;;;;;;13764:61;13758:104;:111;13695:176;;;;;;;;;;;;;;;;;13748:1;:122;;;13695:176;;;;;;;;;;;;;;-1:-1:-1;;;;;13972:22:0;;:5;:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:58;;:61;;:58;;:5;:61;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13919:18:0;;;;;;;;;;;;:34;;;;;:27;;:34;;;;;;;:114;;-1:-1:-1;;;;;;13919:114:0;13972:61;;;;13919:114;;;13291:1505;;;-1:-1:-1;;;;;14072:22:0;;14066:5;14072:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:58;;;;:61;;14066:5;;14072:58;:61;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14072:61:0;;;14066:68;;;;;;;;;;;;;;;:84;;;;;;:77;;;;:84;;;;;14072:61;14066:104;;;27:10:-1;;23:18;;;45:23;;14066:122:0;;;;;;;;;-1:-1:-1;;;;;;14066:122:0;;;;;;;14234:22;;;;;;;;;;;:38;;;:31;:38;;;:58;;:61;;:58;;14072:61;14234;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14319:22:0;;;;;;;;;;;;:38;;;;;:31;;:38;;;;;;14234:61;14319:58;;;:61;;14234;;;;14208:218;;;;-1:-1:-1;;;;;;;;;;;14208:218:0;14297:1;;14300:5;;14234:61;;14319:58;;14234:61;14319;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14319:61:0;14313:68;;;;;;;;;;;;;;;:84;;;;;;:77;;;;:84;;;;;;14319:61;14313:104;:111;14208:218;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14446:176:0;;;14509:5;14515:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:58;;;;:61;;14446:176;;;;;-1:-1:-1;;;;;;;;;;;14446:176:0;14489:1;;14492:5;;14509;;;;14515:58;;:61;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14515:61:0;14509:68;;;;;;;;;;;;;;;:84;;;;;;:77;;;;:84;;;;;;14515:61;14509:104;:111;14446:176;;;;;;;;;;;;;;;;;14499:1;:122;;;14446:176;;;;;;;;;;;;;;-1:-1:-1;;;;;14723:22:0;;:5;:22;;;;;;;;;;;:38;;;;;:31;;:38;;;;;:58;;;;:61;;:58;;;:61;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14670:18:0;;;;;;;;;;;;:34;;;;;:27;;:34;;;;;;;:114;;-1:-1:-1;;;;;;14670:114:0;14723:61;;;;14670:114;;;13186:1617;;;;:::o;19150:1079::-;19256:7;;19301:11;19256:7;19369:1;19359:11;;;;19355:867;;;19387:396;-1:-1:-1;;;;;19423:15:0;;:5;:15;;;;;;;;;;;:31;;;;;;:24;;;;:31;;;;;;:39;;;;19419:349;;;19492:45;;;19528:1;19492:45;;;;;;;;;;;-1:-1:-1;;;;;19492:45:0;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;19617:15:0;;;:5;:15;;;;;;;;;;;:31;;;;;:24;;:31;;;;;:47;;19579:4;19419:349;;;19721:8;;-1:-1:-1;19731:16:0;-1:-1:-1;19713:35:0;;19419:349;19387:396;;19355:867;-1:-1:-1;;;;;19851:15:0;;:5;:15;;;;;;;;;;;:31;;;;;;:24;;;;:31;;;;;;:39;;;;19847:349;;;19920:45;;;19956:1;19920:45;;;;;;;;;;;-1:-1:-1;;;;;19920:45:0;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;20045:15:0;;;:5;:15;;;;;;;;;;;:31;;;;;:24;;:31;;;;;:47;;20007:4;19815:396;;19150:1079;;;;;;;;:::o;164:22725::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;164:22725:0;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;164:22725:0;-1:-1:-1;;;;;164:22725:0;;;;;;;;;;;-1:-1:-1;164:22725:0;;;;;;;-1:-1:-1;164:22725:0;;;-1:-1:-1;164:22725:0;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;;164:22725:0;;;;;;;;;:::o

Swarm Source

bzzr://bc7a12a862a735fd49a0cfa3d0547595afac2c78e00c53d81a976328d80ca563
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.