ETH Price: $1,979.33 (+1.23%)

Contract

0xe29f4E812b236Da5c0aa1c638D7e97c224dE2b01
 

Overview

ETH Balance

0.196139008 ETH

Eth Value

$388.22 (@ $1,979.33/ETH)

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Reg User110654292020-10-16 7:00:031970 days ago1602831603IN
0xe29f4E81...224dE2b01
0.05 ETH0.0191381453
Reg User108193842020-09-08 6:32:122008 days ago1599546732IN
0xe29f4E81...224dE2b01
0.05 ETH0.025394565.53624617
Purchase Level108141922020-09-07 11:19:092008 days ago1599477549IN
0xe29f4E81...224dE2b01
0.2 ETH0.0152322687.50000148
Purchase Level108141872020-09-07 11:18:362008 days ago1599477516IN
0xe29f4E81...224dE2b01
0.2 ETH0.0116326887.50000148
Purchase Level108137682020-09-07 9:47:382008 days ago1599472058IN
0xe29f4E81...224dE2b01
0.1 ETH0.0163235688
Purchase Level108136762020-09-07 9:24:412008 days ago1599470681IN
0xe29f4E81...224dE2b01
0.05 ETH0.0158995785.71428693
Purchase Level108136442020-09-07 9:15:112008 days ago1599470111IN
0xe29f4E81...224dE2b01
0.1 ETH0.0113952885.71428693
Purchase Level108117812020-09-07 2:19:032009 days ago1599445143IN
0xe29f4E81...224dE2b01
0 ETH0.0102426788
Purchase Level108078932020-09-06 12:09:282009 days ago1599394168IN
0xe29f4E81...224dE2b01
0.05 ETH0.01356039102
Reg User108078772020-09-06 12:06:122009 days ago1599393972IN
0xe29f4E81...224dE2b01
0.05 ETH0.0373257892
Purchase Level108076062020-09-06 11:06:592009 days ago1599390419IN
0xe29f4E81...224dE2b01
0.05 ETH0.0111673884
Purchase Level108075612020-09-06 10:57:242009 days ago1599389844IN
0xe29f4E81...224dE2b01
0.05 ETH0.0116912181
Purchase Level108075592020-09-06 10:57:112009 days ago1599389831IN
0xe29f4E81...224dE2b01
0.2 ETH0.0153960883
Purchase Level108075452020-09-06 10:54:232009 days ago1599389663IN
0xe29f4E81...224dE2b01
0.1 ETH0.0142981782
Purchase Level108075382020-09-06 10:52:312009 days ago1599389551IN
0xe29f4E81...224dE2b01
0.05 ETH0.0130673582
Reg User108075252020-09-06 10:50:172009 days ago1599389417IN
0xe29f4E81...224dE2b01
0.05 ETH0.0323591682
Purchase Level108050222020-09-06 1:41:572010 days ago1599356517IN
0xe29f4E81...224dE2b01
0.1 ETH0.0239633499.00000134
Reg User107557742020-08-29 12:58:492017 days ago1598705929IN
0xe29f4E81...224dE2b01
0.05 ETH0.0210603156
Reg User107496772020-08-28 14:18:052018 days ago1598624285IN
0xe29f4E81...224dE2b01
0.05 ETH0.0021635994
Reg User107496772020-08-28 14:18:052018 days ago1598624285IN
0xe29f4E81...224dE2b01
0.05 ETH0.0021405893
Reg User107496772020-08-28 14:18:052018 days ago1598624285IN
0xe29f4E81...224dE2b01
0.05 ETH0.0021405893
Reg User107496772020-08-28 14:18:052018 days ago1598624285IN
0xe29f4E81...224dE2b01
0.05 ETH0.0021635994
Reg User107496772020-08-28 14:18:052018 days ago1598624285IN
0xe29f4E81...224dE2b01
0.05 ETH0.0021635994
Reg User107496772020-08-28 14:18:052018 days ago1598624285IN
0xe29f4E81...224dE2b01
0.05 ETH0.0021405893
Reg User107496772020-08-28 14:18:052018 days ago1598624285IN
0xe29f4E81...224dE2b01
0.05 ETH0.0021405893
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
-110654292020-10-16 7:00:031970 days ago1602831603
0xe29f4E81...224dE2b01
0.025 ETH
-110654292020-10-16 7:00:031970 days ago1602831603
0xe29f4E81...224dE2b01
0.025 ETH
-108193842020-09-08 6:32:122008 days ago1599546732
0xe29f4E81...224dE2b01
0.025 ETH
-108193842020-09-08 6:32:122008 days ago1599546732
0xe29f4E81...224dE2b01
0.025 ETH
-108141922020-09-07 11:19:092008 days ago1599477549
0xe29f4E81...224dE2b01
0.2 ETH
-108141872020-09-07 11:18:362008 days ago1599477516
0xe29f4E81...224dE2b01
0.2 ETH
-108137682020-09-07 9:47:382008 days ago1599472058
0xe29f4E81...224dE2b01
0.1 ETH
-108136762020-09-07 9:24:412008 days ago1599470681
0xe29f4E81...224dE2b01
0.05 ETH
-108136442020-09-07 9:15:112008 days ago1599470111
0xe29f4E81...224dE2b01
0.1 ETH
-108078932020-09-06 12:09:282009 days ago1599394168
0xe29f4E81...224dE2b01
0.05 ETH
-108078772020-09-06 12:06:122009 days ago1599393972
0xe29f4E81...224dE2b01
0.025 ETH
-108078772020-09-06 12:06:122009 days ago1599393972
0xe29f4E81...224dE2b01
0.025 ETH
-108076062020-09-06 11:06:592009 days ago1599390419
0xe29f4E81...224dE2b01
0.05 ETH
-108075612020-09-06 10:57:242009 days ago1599389844
0xe29f4E81...224dE2b01
0.05 ETH
-108075592020-09-06 10:57:112009 days ago1599389831
0xe29f4E81...224dE2b01
0.2 ETH
-108075452020-09-06 10:54:232009 days ago1599389663
0xe29f4E81...224dE2b01
0.1 ETH
-108075382020-09-06 10:52:312009 days ago1599389551
0xe29f4E81...224dE2b01
0.05 ETH
-108075252020-09-06 10:50:172009 days ago1599389417
0xe29f4E81...224dE2b01
0.025 ETH
-108075252020-09-06 10:50:172009 days ago1599389417
0xe29f4E81...224dE2b01
0.025 ETH
-108050222020-09-06 1:41:572010 days ago1599356517
0xe29f4E81...224dE2b01
0.1 ETH
-107557742020-08-29 12:58:492017 days ago1598705929
0xe29f4E81...224dE2b01
0.025 ETH
-107557742020-08-29 12:58:492017 days ago1598705929
0xe29f4E81...224dE2b01
0.025 ETH
-107442332020-08-27 18:25:152019 days ago1598552715
0xe29f4E81...224dE2b01
0.05 ETH
-107440182020-08-27 17:41:042019 days ago1598550064
0xe29f4E81...224dE2b01
0.05 ETH
-107349602020-08-26 8:22:242020 days ago1598430144
0xe29f4E81...224dE2b01
0.1 ETH
View All Internal Transactions
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ZoomTenX

Compiler Version
v0.5.17+commit.d19bba13

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2020-08-21
*/

pragma solidity >=0.4.23 <0.6.0;

contract ZoomTenX {
    
    struct UserAccount {
        uint id;
        address referrer;
        uint partnersCount;
         
        mapping(uint8 => bool) activeX3Levels;
        mapping(uint8 => bool) activeX6Levels;
        
        mapping(uint8 => XXX) x3Matrix;
        mapping(uint8 => XXXX) x6Matrix;
    }
    
    struct XXX {
        address currentReferrer;
        address[] referrals;
        bool blocked;
        uint reinvestCount;
    }
    
    struct XXXX{
        address currentReferrer;
        address[] firstLevelReferrals;
        address[] secondLevelReferrals;
        bool blocked;
        uint reinvestCount;
        address closedPart;
    }

    uint8 public constant LAST_LEVEL = 12;
    
    mapping(address => UserAccount) public users;
    mapping(uint => address) public idToAddress;
    mapping(uint => address) public userIds;
 

    uint public lastUserId = 2;
    address payable public  owner;
 
    mapping(uint8 => uint) public levelPrice;

    event Registration(address indexed user, address indexed referrer, uint indexed userId, uint referrerId);
    event Reinvest(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 UserIncome(address indexed user,address indexed from,uint256 value,uint8 matrix, uint8 level,uint8 logType);
    
    constructor(address payable ownerAddress) public {
        levelPrice[1] = 0.025 ether;
        for (uint8 i = 2; i <= LAST_LEVEL; i++) {
            levelPrice[i] = levelPrice[i-1] * 2;
        }
           owner = ownerAddress;
      UserAccount memory user ;
          user= UserAccount({
            id: 1,
            referrer: address(0),
            partnersCount: uint(0)
        });   
        users[ownerAddress] = user;
        idToAddress[1] = ownerAddress;
        for (uint8 i = 1; i <= LAST_LEVEL; i++) {
            users[ownerAddress].activeX3Levels[i] = true;
            users[ownerAddress].activeX6Levels[i] = true;
        }
        userIds[1] = ownerAddress;
        
    }
  
    
    function regUser(address referrerAddress,uint8 _type) external payable {
        registration(msg.sender, referrerAddress,_type);
    }
    
    function purchaseLevel(uint8 matrix, uint8 level,uint8 _type) external payable {
        if(_type==0){
             require(users[msg.sender].id <=6,"You not have this prev." ); 
        }
       else{
             require(msg.value == levelPrice[level] ,"invalid price"); 
       }
      
        require(isUserExists(msg.sender), "user is not exists. Register first.");
        require(matrix == 1 || matrix == 2, "invalid matrix");
     
       
        require(level > 1 && level <= LAST_LEVEL, "invalid level");
       
        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 freeX3Referrer = getFreeXXXReferrer(msg.sender, level);
            users[msg.sender].x3Matrix[level].currentReferrer = freeX3Referrer;
            users[msg.sender].activeX3Levels[level] = true;
            updateXXXReferrer(msg.sender, freeX3Referrer, level,_type);
            
            emit Upgrade(msg.sender, freeX3Referrer, 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 freeX6Referrer = getFreeXXXXReferrer(msg.sender, level);
            
            users[msg.sender].activeX6Levels[level] = true;
            updateXXXXReferrer(msg.sender, freeX6Referrer, level,_type);
            
            emit Upgrade(msg.sender, freeX6Referrer, 2, level);
        }
    }    
    
    function registration(address userAddress, address referrerAddress,uint8 _type) private {
      if(_type==0){
            require(lastUserId <=6,"You not have this prev." );
      }else{
          require(msg.value == 0.05 ether, "Invalid Cost"); 
      }
       
        require(!isUserExists(userAddress), "user exists");
        require(isUserExists(referrerAddress), "referrer not exists");
    
        uint32 size;
        assembly {
            size := extcodesize(userAddress)
        }
        require(size == 0, "cc");
        
        UserAccount memory user = UserAccount({
            id: lastUserId,
            referrer: referrerAddress,
            partnersCount: 0
        });
        
        users[userAddress] = user;
        idToAddress[lastUserId] = userAddress;
        
        users[userAddress].referrer = referrerAddress;
        
        users[userAddress].activeX3Levels[1] = true; 
        users[userAddress].activeX6Levels[1] = true;
        
        
        userIds[lastUserId] = userAddress;
        lastUserId++;
        
        users[referrerAddress].partnersCount++;

        address freeX3Referrer = getFreeXXXReferrer(userAddress, 1);
        users[userAddress].x3Matrix[1].currentReferrer = freeX3Referrer;
        updateXXXReferrer(userAddress, freeX3Referrer, 1,_type);

        updateXXXXReferrer(userAddress, getFreeXXXXReferrer(userAddress, 1), 1,_type);
        
        emit Registration(userAddress, referrerAddress, users[userAddress].id, users[referrerAddress].id);
    }
    
    function updateXXXReferrer(address userAddress, address referrerAddress, uint8 level,uint8 _type) 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 sendETHDividends(referrerAddress, userAddress, 1, level,_type);
        }
        
        emit NewUserPlace(userAddress, referrerAddress, 1, level, 3);
        //close matrix
        users[referrerAddress].x3Matrix[level].referrals = new address[](0);
        if (!users[referrerAddress].activeX3Levels[level+1] && level != LAST_LEVEL) {
            users[referrerAddress].x3Matrix[level].blocked = true;
        }

       
        if (referrerAddress != owner) {
           
            address freeReferrerAddress = getFreeXXXReferrer(referrerAddress, level);
            if (users[referrerAddress].x3Matrix[level].currentReferrer != freeReferrerAddress) {
                users[referrerAddress].x3Matrix[level].currentReferrer = freeReferrerAddress;
            }
            
            users[referrerAddress].x3Matrix[level].reinvestCount++;
            emit Reinvest(referrerAddress, freeReferrerAddress, userAddress, 1, level);
            updateXXXReferrer(referrerAddress, freeReferrerAddress, level,_type);
        } else {
            sendETHDividends(owner, userAddress, 1, level,_type);
            users[owner].x3Matrix[level].reinvestCount++;
            emit Reinvest(owner, address(0), userAddress, 1, level);
        }
    }

    function updateXXXXReferrer(address userAddress, address referrerAddress, uint8 level,uint8 _type) private {
        require(users[referrerAddress].activeX6Levels[level], "500");
        
        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));
            
     
            users[userAddress].x6Matrix[level].currentReferrer = referrerAddress;

            if (referrerAddress == owner) {
                return sendETHDividends(referrerAddress, userAddress, 2, level,_type);
            }
            
            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 updateXXXXReferrerSecondLevel(userAddress, ref, level,_type);
        }
        
        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)) {

                updateXXXX(userAddress, referrerAddress, level, true);
                return updateXXXXReferrerSecondLevel(userAddress, referrerAddress, level,_type);
            } else if (users[referrerAddress].x6Matrix[level].firstLevelReferrals[0] == 
                users[referrerAddress].x6Matrix[level].closedPart) {
            updateXXXX(userAddress, referrerAddress, level, true);
                return updateXXXXReferrerSecondLevel(userAddress, referrerAddress, level,_type);
            } else {
                updateXXXX(userAddress, referrerAddress, level, false);
                return updateXXXXReferrerSecondLevel(userAddress, referrerAddress, level,_type);
            }
        }

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

    function updateXXXX(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 updateXXXXReferrerSecondLevel(address userAddress, address referrerAddress, uint8 level , uint8 _type) private {
        if (users[referrerAddress].x6Matrix[level].secondLevelReferrals.length < 4) {
            return sendETHDividends(referrerAddress, userAddress, 2, level,_type);
        }
        
        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 != LAST_LEVEL) {
            users[referrerAddress].x6Matrix[level].blocked = true;
        }

        users[referrerAddress].x6Matrix[level].reinvestCount++;
        
        if (referrerAddress != owner) {
            address freeReferrerAddress = getFreeXXXXReferrer(referrerAddress, level);

            emit Reinvest(referrerAddress, freeReferrerAddress, userAddress, 2, level);
            updateXXXXReferrer(referrerAddress, freeReferrerAddress, level,_type);
        } else {
            emit Reinvest(owner, address(0), userAddress, 2, level);
            sendETHDividends(owner, userAddress, 2, level,_type);
        }
    }
    
    function getFreeXXXReferrer(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 getFreeXXXXReferrer(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 usersActiveXXXLevels(address userAddress, uint8 level) public view returns(bool) {
        return users[userAddress].activeX3Levels[level];
    }

    function usersActiveXXXXLevels(address userAddress, uint8 level) public view returns(bool) {
        return users[userAddress].activeX6Levels[level];
    }

    function usersXXXMatrix(address userAddress, uint8 level) public view returns(address, address[] memory, bool) {
        return (users[userAddress].x3Matrix[level].currentReferrer,
                users[userAddress].x3Matrix[level].referrals,
                users[userAddress].x3Matrix[level].blocked);
    }

    function usersXXXXMatrix(address userAddress, uint8 level) public view returns(address, address[] memory, address[] memory, bool, address) {
        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);
    }
    
    function isUserExists(address user) public view returns (bool) {
        return (users[user].id != 0);
    }

    function getEthReceiver(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) {
                 
                    isExtraDividends = true;
                    receiver = users[receiver].x3Matrix[level].currentReferrer;
                } else {
                    return (receiver, isExtraDividends);
                }
            }
        } else {
            while (true) {
                if (users[receiver].x6Matrix[level].blocked) {
              
                    isExtraDividends = true;
                    receiver = users[receiver].x6Matrix[level].currentReferrer;
                } else {
                    return (receiver, isExtraDividends);
                }
            }
        }
    }

    function sendETHDividends(address userAddress, address _from, uint8 matrix, uint8 level,uint8 _type) private {
        if(_type==1){
        (address receiver, bool isExtraDividends) = getEthReceiver(userAddress, _from, matrix, level);
        
       
        if (!address(uint160(receiver)).send(levelPrice[level])) {
             emit  UserIncome(receiver,_from,address(this).balance, matrix,level,0);
            return address(uint160(receiver)).transfer(address(this).balance);
        }
         emit  UserIncome(receiver,_from,levelPrice[level],matrix,level,1);
      
        }else{
          emit  UserIncome(userAddress,_from,levelPrice[level],matrix,level,1);
        }
    }
    
    function bytesToAddress(bytes memory bys) private pure returns (address addr) {
        assembly {
            addr := mload(add(bys, 20))
        }
    }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address payable","name":"ownerAddress","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"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":"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":"Reinvest","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":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"uint8","name":"matrix","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"level","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"logType","type":"uint8"}],"name":"UserIncome","type":"event"},{"constant":true,"inputs":[],"name":"LAST_LEVEL","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"userAddress","type":"address"},{"internalType":"uint8","name":"level","type":"uint8"}],"name":"getFreeXXXReferrer","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":"getFreeXXXXReferrer","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","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 payable","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint8","name":"matrix","type":"uint8"},{"internalType":"uint8","name":"level","type":"uint8"},{"internalType":"uint8","name":"_type","type":"uint8"}],"name":"purchaseLevel","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"referrerAddress","type":"address"},{"internalType":"uint8","name":"_type","type":"uint8"}],"name":"regUser","outputs":[],"payable":true,"stateMutability":"payable","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":"partnersCount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"userAddress","type":"address"},{"internalType":"uint8","name":"level","type":"uint8"}],"name":"usersActiveXXXLevels","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":"usersActiveXXXXLevels","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":"usersXXXMatrix","outputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address[]","name":"","type":"address[]"},{"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":"usersXXXXMatrix","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"}],"payable":false,"stateMutability":"view","type":"function"}]

608060405260026003553480156200001657600080fd5b50604051620063d1380380620063d1833981810160405260208110156200003c57600080fd5b81019080805190602001909291905050506658d15e1762800060056000600160ff168152602001908152602001600020819055506000600290505b600c60ff168160ff1611620000d1576002600560006001840360ff1660ff1681526020019081526020016000205402600560008360ff1660ff16815260200190815260200160002081905550808060010191505062000077565b5080600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200011d620003a5565b604051806060016040528060018152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152509050806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000820151816000015560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040820151816002015590505081600160006001815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600190505b600c60ff168160ff1611620003495760016000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160008360ff1660ff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040160008360ff1660ff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806001019150506200024a565b5081600260006001815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050620003dc565b604051806060016040528060008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600081525090565b615fe580620003ec6000396000f3fe6080604052600436106100f35760003560e01c80638109f1031161008a578063a87430ba11610059578063a87430ba146106c4578063dabfa58114610763578063e16f2cf214610854578063ecabdf79146108ca576100f3565b80638109f10314610533578063823fecc61461057e5780638da5cb5b146105cf5780639bd5ddfb14610626576100f3565b80634400739b116100c65780634400739b1461026d5780634635fd68146103d9578063509222cd14610454578063783f8cad146104bd576100f3565b8063236b619e146100f857806329c70400146101965780632a2d0c47146101c7578063348d448714610242575b600080fd5b34801561010457600080fd5b506101546004803603604081101561011b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff16906020019092919050505061091c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101a257600080fd5b506101ab610acb565b604051808260ff1660ff16815260200191505060405180910390f35b3480156101d357600080fd5b50610200600480360360208110156101ea57600080fd5b8101908080359060200190929190505050610ad0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561024e57600080fd5b50610257610b03565b6040518082815260200191505060405180910390f35b34801561027957600080fd5b506102c96004803603604081101561029057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff169060200190929190505050610b09565b604051808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018060200180602001851515151581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838103835287818151815260200191508051906020019060200280838360005b8381101561037e578082015181840152602081019050610363565b50505050905001838103825286818151815260200191508051906020019060200280838360005b838110156103c05780820151818401526020810190506103a5565b5050505090500197505050505050505060405180910390f35b3480156103e557600080fd5b50610412600480360360208110156103fc57600080fd5b8101908080359060200190929190505050610e4c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561046057600080fd5b506104a36004803603602081101561047757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e7f565b604051808215151515815260200191505060405180910390f35b3480156104c957600080fd5b50610519600480360360408110156104e057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff169060200190929190505050610ecd565b604051808215151515815260200191505060405180910390f35b61057c6004803603606081101561054957600080fd5b81019080803560ff169060200190929190803560ff169060200190929190803560ff169060200190929190505050610f3d565b005b6105cd6004803603604081101561059457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff169060200190929190505050611841565b005b3480156105db57600080fd5b506105e4611850565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561063257600080fd5b506106826004803603604081101561064957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff169060200190929190505050611876565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106d057600080fd5b50610713600480360360208110156106e757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a25565b604051808481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390f35b34801561076f57600080fd5b506107bf6004803603604081101561078657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff169060200190929190505050611a6f565b604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018060200183151515158152602001828103825284818151815260200191508051906020019060200280838360005b8381101561083e578082015181840152602081019050610823565b5050505090500194505050505060405180910390f35b34801561086057600080fd5b506108b06004803603604081101561087757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff169060200190929190505050611c4a565b604051808215151515815260200191505060405180910390f35b3480156108d657600080fd5b50610906600480360360208110156108ed57600080fd5b81019080803560ff169060200190929190505050611cba565b6040518082815260200191505060405180910390f35b60005b600115610ac4576000808060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040160008360ff1660ff16815260200190815260200160002060009054906101000a900460ff1615610a5b576000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050610ac5565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16925061091f565b5b92915050565b600c81565b60016020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60035481565b60006060806000806000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008760ff1660ff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008860ff1660ff1681526020019081526020016000206001016000808a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008960ff1660ff1681526020019081526020016000206002016000808b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008a60ff1660ff16815260200190815260200160002060030160009054906101000a900460ff166000808c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008b60ff1660ff16815260200190815260200160002060050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683805480602002602001604051908101604052809291908181526020018280548015610da957602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610d5f575b5050505050935082805480602002602001604051908101604052809291908181526020018280548015610e3157602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610de7575b50505050509250945094509450945094509295509295909350565b60026020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015414159050919050565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040160008360ff1660ff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60008160ff1614156110065760066000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001541115611001576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f596f75206e6f742068617665207468697320707265762e00000000000000000081525060200191505060405180910390fd5b611095565b600560008360ff1660ff168152602001908152602001600020543414611094576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f696e76616c69642070726963650000000000000000000000000000000000000081525060200191505060405180910390fd5b5b61109e33610e7f565b6110f3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180615f8e6023913960400191505060405180910390fd5b60018360ff161480611108575060028360ff16145b61117a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f696e76616c6964206d617472697800000000000000000000000000000000000081525060200191505060405180910390fd5b60018260ff161180156111945750600c60ff168260ff1611155b611206576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f696e76616c6964206c6576656c0000000000000000000000000000000000000081525060200191505060405180910390fd5b60018360ff161415611576576000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160008360ff1660ff16815260200190815260200160002060009054906101000a900460ff16156112eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f6c6576656c20616c72656164792061637469766174656400000000000000000081525060200191505060405180910390fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050160006001840360ff1660ff16815260200190815260200160002060020160009054906101000a900460ff16156113d45760008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050160006001850360ff1660ff16815260200190815260200160002060020160006101000a81548160ff0219169083151502179055505b60006113e03384611876565b9050806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050160008560ff1660ff16815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160008560ff1660ff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506114f933828585611cd2565b8073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f18a92df19fd94d6cfff209966673a5ca05a1c8e2bb68e097fce2bdc2ed811119600186604051808360ff1681526020018260ff1660ff1681526020019250505060405180910390a35061183c565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040160008360ff1660ff16815260200190815260200160002060009054906101000a900460ff161561164f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f6c6576656c20616c72656164792061637469766174656400000000000000000081525060200191505060405180910390fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160006001840360ff1660ff16815260200190815260200160002060030160009054906101000a900460ff16156117385760008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160006001850360ff1660ff16815260200190815260200160002060030160006101000a81548160ff0219169083151502179055505b6000611744338461091c565b905060016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040160008560ff1660ff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506117c333828585612535565b8073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f18a92df19fd94d6cfff209966673a5ca05a1c8e2bb68e097fce2bdc2ed811119600286604051808360ff1681526020018260ff1660ff1681526020019250505060405180910390a3505b505050565b61184c338383613bf9565b5050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60005b600115611a1e576000808060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160008360ff1660ff16815260200190815260200160002060009054906101000a900460ff16156119b5576000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050611a1f565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169250611879565b5b92915050565b60006020528060005260406000206000915090508060000154908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020154905083565b6000606060008060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050160008560ff1660ff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050160008660ff1660ff1681526020019081526020016000206001016000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050160008760ff1660ff16815260200190815260200160002060020160009054906101000a900460ff1681805480602002602001604051908101604052809291908181526020018280548015611c3657602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611bec575b505050505091509250925092509250925092565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160008360ff1660ff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60056020528060005260406000206000915090505481565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050160008360ff1660ff1681526020019081526020016000206001018490806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505060036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050160008460ff1660ff168152602001908152602001600020600101805490501015611eee578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f68062c5925c4317adf3a7095478d28b33fd8b41458bc7620b61bc46bf1b24d826001856000808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050160008860ff1660ff16815260200190815260200160002060010180549050604051808460ff1681526020018360ff1660ff1681526020018260ff1660ff168152602001935050505060405180910390a3611ee9838560018585614378565b61252f565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f68062c5925c4317adf3a7095478d28b33fd8b41458bc7620b61bc46bf1b24d826001856003604051808460ff1681526020018360ff1660ff1681526020018260ff168152602001935050505060405180910390a36000604051908082528060200260200182016040528015611fa15781602001602082028038833980820191505090505b506000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050160008460ff1660ff1681526020019081526020016000206001019080519060200190612010929190615e89565b506000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160006001840160ff1660ff16815260200190815260200160002060009054906101000a900460ff1615801561208e5750600c60ff168260ff1614155b156121085760016000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050160008460ff1660ff16815260200190815260200160002060020160006101000a81548160ff0219169083151502179055505b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146123bf5760006121698484611876565b90508073ffffffffffffffffffffffffffffffffffffffff166000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050160008560ff1660ff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146122b457806000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050160008560ff1660ff16815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050160008460ff1660ff168152602001908152602001600020600301600081548092919060010191905055508473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fa00c953eff38ec1b71e7fe060b2ab8df0bbe5354319fbdde4fbdafd6324386a6600187604051808360ff1681526020018260ff1660ff1681526020019250505060405180910390a46123b984828585611cd2565b5061252e565b6123ef600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168560018585614378565b600080600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050160008360ff1660ff168152602001908152602001600020600301600081548092919060010191905055508373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fa00c953eff38ec1b71e7fe060b2ab8df0bbe5354319fbdde4fbdafd6324386a6600186604051808360ff1681526020018260ff1660ff1681526020019250505060405180910390a45b5b50505050565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040160008360ff1660ff16815260200190815260200160002060009054906101000a900460ff1661260d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260038152602001807f353030000000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60026000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008460ff1660ff16815260200190815260200160002060010180549050101561327a576000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008360ff1660ff1681526020019081526020016000206001018490806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f68062c5925c4317adf3a7095478d28b33fd8b41458bc7620b61bc46bf1b24d826002856000808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008860ff1660ff16815260200190815260200160002060010180549050604051808460ff1681526020018360ff1660ff1681526020018260ff1660ff168152602001935050505060405180910390a3826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008460ff1660ff16815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561291957612914838560028585614378565b613bf3565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008460ff1660ff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008460ff1660ff1681526020019081526020016000206002018590806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505060008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008560ff1660ff168152602001908152602001600020600101805490509050600281148015612b8757508473ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008660ff1660ff168152602001908152602001600020600101600081548110612b4457fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b8015612c4f57508473ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008660ff1660ff168152602001908152602001600020600101600181548110612c0c57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b15612dcc5760016000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008660ff1660ff168152602001908152602001600020600101805490501415612d43578173ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167f68062c5925c4317adf3a7095478d28b33fd8b41458bc7620b61bc46bf1b24d826002876005604051808460ff1681526020018360ff1660ff1681526020018260ff168152602001935050505060405180910390a3612dc7565b8173ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167f68062c5925c4317adf3a7095478d28b33fd8b41458bc7620b61bc46bf1b24d826002876006604051808460ff1681526020018360ff1660ff1681526020018260ff168152602001935050505060405180910390a35b613267565b6001811480612ddb5750600281145b8015612ea357508473ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008660ff1660ff168152602001908152602001600020600101600081548110612e6057fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b156130205760016000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008660ff1660ff168152602001908152602001600020600101805490501415612f97578173ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167f68062c5925c4317adf3a7095478d28b33fd8b41458bc7620b61bc46bf1b24d826002876003604051808460ff1681526020018360ff1660ff1681526020018260ff168152602001935050505060405180910390a361301b565b8173ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167f68062c5925c4317adf3a7095478d28b33fd8b41458bc7620b61bc46bf1b24d826002876004604051808460ff1681526020018360ff1660ff1681526020018260ff168152602001935050505060405180910390a35b613266565b6002811480156130ec57508473ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008660ff1660ff1681526020019081526020016000206001016001815481106130a957fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b156132655760016000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008660ff1660ff1681526020019081526020016000206001018054905014156131e0578173ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167f68062c5925c4317adf3a7095478d28b33fd8b41458bc7620b61bc46bf1b24d826002876005604051808460ff1681526020018360ff1660ff1681526020018260ff168152602001935050505060405180910390a3613264565b8173ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167f68062c5925c4317adf3a7095478d28b33fd8b41458bc7620b61bc46bf1b24d826002876006604051808460ff1681526020018360ff1660ff1681526020018260ff168152602001935050505060405180910390a35b5b5b5b61327386838686614620565b5050613bf3565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008360ff1660ff1681526020019081526020016000206002018490806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050600073ffffffffffffffffffffffffffffffffffffffff166000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008460ff1660ff16815260200190815260200160002060050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461381b576000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008360ff1660ff16815260200190815260200160002060010160018154811061344f57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008460ff1660ff1681526020019081526020016000206001016000815481106134f757fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614801561367c57506000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008360ff1660ff16815260200190815260200160002060050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008460ff1660ff16815260200190815260200160002060010160008154811061363957fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b1561369f5761368e8484846001615044565b61369a84848484614620565b613bf3565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008360ff1660ff16815260200190815260200160002060050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008460ff1660ff16815260200190815260200160002060010160008154811061379857fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156137fd576137ec8484846001615044565b6137f884848484614620565b613bf3565b61380a8484846000615044565b61381684848484614620565b613bf3565b8373ffffffffffffffffffffffffffffffffffffffff166000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008460ff1660ff16815260200190815260200160002060010160018154811061389957fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156138fe576138ed8484846000615044565b6138f984848484614620565b613bf3565b8373ffffffffffffffffffffffffffffffffffffffff166000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008460ff1660ff16815260200190815260200160002060010160008154811061397c57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156139e1576139d08484846001615044565b6139dc84848484614620565b613bf3565b6000808060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008560ff1660ff168152602001908152602001600020600101600181548110613a4b57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008360ff1660ff168152602001908152602001600020600101805490506000808060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008660ff1660ff168152602001908152602001600020600101600081548110613b3b57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008460ff1660ff1681526020019081526020016000206001018054905011613bd857613bd38484846000615044565b613be6565b613be58484846001615044565b5b613bf284848484614620565b5b50505050565b60008160ff161415613c835760066003541115613c7e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f596f75206e6f742068617665207468697320707265762e00000000000000000081525060200191505060405180910390fd5b613d00565b66b1a2bc2ec500003414613cff576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f496e76616c696420436f7374000000000000000000000000000000000000000081525060200191505060405180910390fd5b5b613d0983610e7f565b15613d7c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f757365722065786973747300000000000000000000000000000000000000000081525060200191505060405180910390fd5b613d8582610e7f565b613df7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f7265666572726572206e6f74206578697374730000000000000000000000000081525060200191505060405180910390fd5b6000833b905060008163ffffffff1614613e79576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260028152602001807f636300000000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b613e81615f13565b604051806060016040528060035481526020018573ffffffffffffffffffffffffffffffffffffffff16815260200160008152509050806000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000820151816000015560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604082015181600201559050508460016000600354815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550836000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003016000600160ff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206004016000600160ff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508460026000600354815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506003600081548092919060010191905055506000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002016000815480929190600101919050555060006141ca866001611876565b9050806000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206005016000600160ff16815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506142718682600187611cd2565b6142888661428088600161091c565b600187612535565b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001548573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f309bb360e8b69c23937ccc5fb01f9aeeead1c95a99604e175113ff82f2b1723a6000808a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546040518082815260200191505060405180910390a4505050505050565b60018160ff1614156145715760008061439387878787615c43565b915091508173ffffffffffffffffffffffffffffffffffffffff166108fc600560008760ff1660ff168152602001908152602001600020549081150290604051600060405180830381858888f193505050506144c4578573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fc49a43029f7a5081f25c42ed054858ba33024bb737d162eeb4eea7e8923098774788886000604051808581526020018460ff1660ff1681526020018360ff1660ff1681526020018260ff16815260200194505050505060405180910390a38173ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156144bc573d6000803e3d6000fd5b505050614619565b8573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fc49a43029f7a5081f25c42ed054858ba33024bb737d162eeb4eea7e892309877600560008860ff1660ff1681526020019081526020016000205488886001604051808581526020018460ff1660ff1681526020018360ff1660ff1681526020018260ff16815260200194505050505060405180910390a35050614618565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fc49a43029f7a5081f25c42ed054858ba33024bb737d162eeb4eea7e892309877600560008660ff1660ff1681526020019081526020016000205486866001604051808581526020018460ff1660ff1681526020018360ff1660ff1681526020018260ff16815260200194505050505060405180910390a35b5b5050505050565b60046000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008460ff1660ff16815260200190815260200160002060020180549050101561469a57614695838560028585614378565b61503e565b60606000808060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008660ff1660ff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008460ff1660ff1681526020019081526020016000206001018054806020026020016040519081016040528092919081815260200182805480156147f257602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116147a8575b50505050509050600281511415614b1a578373ffffffffffffffffffffffffffffffffffffffff168160008151811061482757fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16148061489057508373ffffffffffffffffffffffffffffffffffffffff168160018151811061487057fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16145b156149af57836000808060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008760ff1660ff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008560ff1660ff16815260200190815260200160002060050160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550614b19565b600181511415614b18578373ffffffffffffffffffffffffffffffffffffffff16816000815181106149dd57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff161415614b1757836000808060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008760ff1660ff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008560ff1660ff16815260200190815260200160002060050160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5b5b5b6000604051908082528060200260200182016040528015614b4a5781602001602082028038833980820191505090505b506000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008560ff1660ff1681526020019081526020016000206001019080519060200190614bb9929190615e89565b506000604051908082528060200260200182016040528015614bea5781602001602082028038833980820191505090505b506000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008560ff1660ff1681526020019081526020016000206002019080519060200190614c59929190615e89565b5060008060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008560ff1660ff16815260200190815260200160002060050160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040160006001850160ff1660ff16815260200190815260200160002060009054906101000a900460ff16158015614d725750600c60ff168360ff1614155b15614dec5760016000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008560ff1660ff16815260200190815260200160002060030160006101000a81548160ff0219169083151502179055505b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008460ff1660ff16815260200190815260200160002060040160008154809291906001019190505550600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614614f5a576000614eb8858561091c565b90508573ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fa00c953eff38ec1b71e7fe060b2ab8df0bbe5354319fbdde4fbdafd6324386a6600288604051808360ff1681526020018260ff1660ff1681526020019250505060405180910390a4614f5485828686612535565b5061503c565b8473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fa00c953eff38ec1b71e7fe060b2ab8df0bbe5354319fbdde4fbdafd6324386a6600287604051808360ff1681526020018260ff1660ff1681526020019250505060405180910390a461503b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168660028686614378565b5b505b50505050565b80615645576000808060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008560ff1660ff1681526020019081526020016000206001016000815481106150b357fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008360ff1660ff1681526020019081526020016000206001018490806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008360ff1660ff16815260200190815260200160002060010160008154811061520057fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f68062c5925c4317adf3a7095478d28b33fd8b41458bc7620b61bc46bf1b24d826002856000808060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008a60ff1660ff1681526020019081526020016000206001016000815481106152e657fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008860ff1660ff16815260200190815260200160002060010180549050604051808460ff1681526020018360ff1660ff1681526020018260ff1660ff168152602001935050505060405180910390a38273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f68062c5925c4317adf3a7095478d28b33fd8b41458bc7620b61bc46bf1b24d826002856000808060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008a60ff1660ff16815260200190815260200160002060010160008154811061545a57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008860ff1660ff16815260200190815260200160002060010180549050600201604051808460ff1681526020018360ff1660ff1681526020018260ff1660ff168152602001935050505060405180910390a36000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008360ff1660ff16815260200190815260200160002060010160008154811061557c57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008460ff1660ff16815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550615c3d565b6000808060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008560ff1660ff1681526020019081526020016000206001016001815481106156af57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008360ff1660ff1681526020019081526020016000206001018490806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008360ff1660ff1681526020019081526020016000206001016001815481106157fc57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f68062c5925c4317adf3a7095478d28b33fd8b41458bc7620b61bc46bf1b24d826002856000808060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008a60ff1660ff1681526020019081526020016000206001016001815481106158e257fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008860ff1660ff16815260200190815260200160002060010180549050604051808460ff1681526020018360ff1660ff1681526020018260ff1660ff168152602001935050505060405180910390a38273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f68062c5925c4317adf3a7095478d28b33fd8b41458bc7620b61bc46bf1b24d826002856000808060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008a60ff1660ff168152602001908152602001600020600101600181548110615a5657fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008860ff1660ff16815260200190815260200160002060010180549050600401604051808460ff1681526020018360ff1660ff1681526020018260ff1660ff168152602001935050505060405180910390a36000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008360ff1660ff168152602001908152602001600020600101600181548110615b7857fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008460ff1660ff16815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50505050565b6000806000869050600060018660ff161415615d6d575b600115615d68576000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050160008660ff1660ff16815260200190815260200160002060020160009054906101000a900460ff1615615d5657600190506000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050160008660ff1660ff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150615d63565b8181935093505050615e80565b615c5a565b615e7d565b5b600115615e7c576000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008660ff1660ff16815260200190815260200160002060030160009054906101000a900460ff1615615e6a57600190506000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008660ff1660ff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150615e77565b8181935093505050615e80565b615d6e565b5b50505b94509492505050565b828054828255906000526020600020908101928215615f02579160200282015b82811115615f015782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555091602001919060010190615ea9565b5b509050615f0f9190615f4a565b5090565b604051806060016040528060008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600081525090565b615f8a91905b80821115615f8657600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550600101615f50565b5090565b9056fe75736572206973206e6f74206578697374732e2052656769737465722066697273742ea265627a7a72315820af9dc1981b35f6b51eed586bcc415db180133d09b9f5652383f93827ad1ad87164736f6c634300051100320000000000000000000000006787aa160ce8f512dbf2b7ed47d389cf0edf818d

Deployed Bytecode

0x6080604052600436106100f35760003560e01c80638109f1031161008a578063a87430ba11610059578063a87430ba146106c4578063dabfa58114610763578063e16f2cf214610854578063ecabdf79146108ca576100f3565b80638109f10314610533578063823fecc61461057e5780638da5cb5b146105cf5780639bd5ddfb14610626576100f3565b80634400739b116100c65780634400739b1461026d5780634635fd68146103d9578063509222cd14610454578063783f8cad146104bd576100f3565b8063236b619e146100f857806329c70400146101965780632a2d0c47146101c7578063348d448714610242575b600080fd5b34801561010457600080fd5b506101546004803603604081101561011b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff16906020019092919050505061091c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101a257600080fd5b506101ab610acb565b604051808260ff1660ff16815260200191505060405180910390f35b3480156101d357600080fd5b50610200600480360360208110156101ea57600080fd5b8101908080359060200190929190505050610ad0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561024e57600080fd5b50610257610b03565b6040518082815260200191505060405180910390f35b34801561027957600080fd5b506102c96004803603604081101561029057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff169060200190929190505050610b09565b604051808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018060200180602001851515151581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838103835287818151815260200191508051906020019060200280838360005b8381101561037e578082015181840152602081019050610363565b50505050905001838103825286818151815260200191508051906020019060200280838360005b838110156103c05780820151818401526020810190506103a5565b5050505090500197505050505050505060405180910390f35b3480156103e557600080fd5b50610412600480360360208110156103fc57600080fd5b8101908080359060200190929190505050610e4c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561046057600080fd5b506104a36004803603602081101561047757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e7f565b604051808215151515815260200191505060405180910390f35b3480156104c957600080fd5b50610519600480360360408110156104e057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff169060200190929190505050610ecd565b604051808215151515815260200191505060405180910390f35b61057c6004803603606081101561054957600080fd5b81019080803560ff169060200190929190803560ff169060200190929190803560ff169060200190929190505050610f3d565b005b6105cd6004803603604081101561059457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff169060200190929190505050611841565b005b3480156105db57600080fd5b506105e4611850565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561063257600080fd5b506106826004803603604081101561064957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff169060200190929190505050611876565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106d057600080fd5b50610713600480360360208110156106e757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a25565b604051808481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390f35b34801561076f57600080fd5b506107bf6004803603604081101561078657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff169060200190929190505050611a6f565b604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018060200183151515158152602001828103825284818151815260200191508051906020019060200280838360005b8381101561083e578082015181840152602081019050610823565b5050505090500194505050505060405180910390f35b34801561086057600080fd5b506108b06004803603604081101561087757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff169060200190929190505050611c4a565b604051808215151515815260200191505060405180910390f35b3480156108d657600080fd5b50610906600480360360208110156108ed57600080fd5b81019080803560ff169060200190929190505050611cba565b6040518082815260200191505060405180910390f35b60005b600115610ac4576000808060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040160008360ff1660ff16815260200190815260200160002060009054906101000a900460ff1615610a5b576000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050610ac5565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16925061091f565b5b92915050565b600c81565b60016020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60035481565b60006060806000806000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008760ff1660ff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008860ff1660ff1681526020019081526020016000206001016000808a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008960ff1660ff1681526020019081526020016000206002016000808b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008a60ff1660ff16815260200190815260200160002060030160009054906101000a900460ff166000808c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008b60ff1660ff16815260200190815260200160002060050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683805480602002602001604051908101604052809291908181526020018280548015610da957602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610d5f575b5050505050935082805480602002602001604051908101604052809291908181526020018280548015610e3157602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610de7575b50505050509250945094509450945094509295509295909350565b60026020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015414159050919050565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040160008360ff1660ff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60008160ff1614156110065760066000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001541115611001576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f596f75206e6f742068617665207468697320707265762e00000000000000000081525060200191505060405180910390fd5b611095565b600560008360ff1660ff168152602001908152602001600020543414611094576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f696e76616c69642070726963650000000000000000000000000000000000000081525060200191505060405180910390fd5b5b61109e33610e7f565b6110f3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180615f8e6023913960400191505060405180910390fd5b60018360ff161480611108575060028360ff16145b61117a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f696e76616c6964206d617472697800000000000000000000000000000000000081525060200191505060405180910390fd5b60018260ff161180156111945750600c60ff168260ff1611155b611206576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600d8152602001807f696e76616c6964206c6576656c0000000000000000000000000000000000000081525060200191505060405180910390fd5b60018360ff161415611576576000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160008360ff1660ff16815260200190815260200160002060009054906101000a900460ff16156112eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f6c6576656c20616c72656164792061637469766174656400000000000000000081525060200191505060405180910390fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050160006001840360ff1660ff16815260200190815260200160002060020160009054906101000a900460ff16156113d45760008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050160006001850360ff1660ff16815260200190815260200160002060020160006101000a81548160ff0219169083151502179055505b60006113e03384611876565b9050806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050160008560ff1660ff16815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160008560ff1660ff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506114f933828585611cd2565b8073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f18a92df19fd94d6cfff209966673a5ca05a1c8e2bb68e097fce2bdc2ed811119600186604051808360ff1681526020018260ff1660ff1681526020019250505060405180910390a35061183c565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040160008360ff1660ff16815260200190815260200160002060009054906101000a900460ff161561164f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f6c6576656c20616c72656164792061637469766174656400000000000000000081525060200191505060405180910390fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160006001840360ff1660ff16815260200190815260200160002060030160009054906101000a900460ff16156117385760008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160006001850360ff1660ff16815260200190815260200160002060030160006101000a81548160ff0219169083151502179055505b6000611744338461091c565b905060016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040160008560ff1660ff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506117c333828585612535565b8073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f18a92df19fd94d6cfff209966673a5ca05a1c8e2bb68e097fce2bdc2ed811119600286604051808360ff1681526020018260ff1660ff1681526020019250505060405180910390a3505b505050565b61184c338383613bf9565b5050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60005b600115611a1e576000808060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160008360ff1660ff16815260200190815260200160002060009054906101000a900460ff16156119b5576000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050611a1f565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169250611879565b5b92915050565b60006020528060005260406000206000915090508060000154908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020154905083565b6000606060008060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050160008560ff1660ff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050160008660ff1660ff1681526020019081526020016000206001016000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050160008760ff1660ff16815260200190815260200160002060020160009054906101000a900460ff1681805480602002602001604051908101604052809291908181526020018280548015611c3657602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611bec575b505050505091509250925092509250925092565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160008360ff1660ff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60056020528060005260406000206000915090505481565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050160008360ff1660ff1681526020019081526020016000206001018490806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505060036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050160008460ff1660ff168152602001908152602001600020600101805490501015611eee578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f68062c5925c4317adf3a7095478d28b33fd8b41458bc7620b61bc46bf1b24d826001856000808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050160008860ff1660ff16815260200190815260200160002060010180549050604051808460ff1681526020018360ff1660ff1681526020018260ff1660ff168152602001935050505060405180910390a3611ee9838560018585614378565b61252f565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f68062c5925c4317adf3a7095478d28b33fd8b41458bc7620b61bc46bf1b24d826001856003604051808460ff1681526020018360ff1660ff1681526020018260ff168152602001935050505060405180910390a36000604051908082528060200260200182016040528015611fa15781602001602082028038833980820191505090505b506000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050160008460ff1660ff1681526020019081526020016000206001019080519060200190612010929190615e89565b506000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160006001840160ff1660ff16815260200190815260200160002060009054906101000a900460ff1615801561208e5750600c60ff168260ff1614155b156121085760016000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050160008460ff1660ff16815260200190815260200160002060020160006101000a81548160ff0219169083151502179055505b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146123bf5760006121698484611876565b90508073ffffffffffffffffffffffffffffffffffffffff166000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050160008560ff1660ff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146122b457806000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050160008560ff1660ff16815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050160008460ff1660ff168152602001908152602001600020600301600081548092919060010191905055508473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fa00c953eff38ec1b71e7fe060b2ab8df0bbe5354319fbdde4fbdafd6324386a6600187604051808360ff1681526020018260ff1660ff1681526020019250505060405180910390a46123b984828585611cd2565b5061252e565b6123ef600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168560018585614378565b600080600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050160008360ff1660ff168152602001908152602001600020600301600081548092919060010191905055508373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fa00c953eff38ec1b71e7fe060b2ab8df0bbe5354319fbdde4fbdafd6324386a6600186604051808360ff1681526020018260ff1660ff1681526020019250505060405180910390a45b5b50505050565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040160008360ff1660ff16815260200190815260200160002060009054906101000a900460ff1661260d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260038152602001807f353030000000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60026000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008460ff1660ff16815260200190815260200160002060010180549050101561327a576000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008360ff1660ff1681526020019081526020016000206001018490806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f68062c5925c4317adf3a7095478d28b33fd8b41458bc7620b61bc46bf1b24d826002856000808973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008860ff1660ff16815260200190815260200160002060010180549050604051808460ff1681526020018360ff1660ff1681526020018260ff1660ff168152602001935050505060405180910390a3826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008460ff1660ff16815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561291957612914838560028585614378565b613bf3565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008460ff1660ff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008460ff1660ff1681526020019081526020016000206002018590806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505060008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008560ff1660ff168152602001908152602001600020600101805490509050600281148015612b8757508473ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008660ff1660ff168152602001908152602001600020600101600081548110612b4457fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b8015612c4f57508473ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008660ff1660ff168152602001908152602001600020600101600181548110612c0c57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b15612dcc5760016000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008660ff1660ff168152602001908152602001600020600101805490501415612d43578173ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167f68062c5925c4317adf3a7095478d28b33fd8b41458bc7620b61bc46bf1b24d826002876005604051808460ff1681526020018360ff1660ff1681526020018260ff168152602001935050505060405180910390a3612dc7565b8173ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167f68062c5925c4317adf3a7095478d28b33fd8b41458bc7620b61bc46bf1b24d826002876006604051808460ff1681526020018360ff1660ff1681526020018260ff168152602001935050505060405180910390a35b613267565b6001811480612ddb5750600281145b8015612ea357508473ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008660ff1660ff168152602001908152602001600020600101600081548110612e6057fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b156130205760016000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008660ff1660ff168152602001908152602001600020600101805490501415612f97578173ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167f68062c5925c4317adf3a7095478d28b33fd8b41458bc7620b61bc46bf1b24d826002876003604051808460ff1681526020018360ff1660ff1681526020018260ff168152602001935050505060405180910390a361301b565b8173ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167f68062c5925c4317adf3a7095478d28b33fd8b41458bc7620b61bc46bf1b24d826002876004604051808460ff1681526020018360ff1660ff1681526020018260ff168152602001935050505060405180910390a35b613266565b6002811480156130ec57508473ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008660ff1660ff1681526020019081526020016000206001016001815481106130a957fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b156132655760016000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008660ff1660ff1681526020019081526020016000206001018054905014156131e0578173ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167f68062c5925c4317adf3a7095478d28b33fd8b41458bc7620b61bc46bf1b24d826002876005604051808460ff1681526020018360ff1660ff1681526020018260ff168152602001935050505060405180910390a3613264565b8173ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167f68062c5925c4317adf3a7095478d28b33fd8b41458bc7620b61bc46bf1b24d826002876006604051808460ff1681526020018360ff1660ff1681526020018260ff168152602001935050505060405180910390a35b5b5b5b61327386838686614620565b5050613bf3565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008360ff1660ff1681526020019081526020016000206002018490806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050600073ffffffffffffffffffffffffffffffffffffffff166000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008460ff1660ff16815260200190815260200160002060050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461381b576000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008360ff1660ff16815260200190815260200160002060010160018154811061344f57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008460ff1660ff1681526020019081526020016000206001016000815481106134f757fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614801561367c57506000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008360ff1660ff16815260200190815260200160002060050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008460ff1660ff16815260200190815260200160002060010160008154811061363957fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b1561369f5761368e8484846001615044565b61369a84848484614620565b613bf3565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008360ff1660ff16815260200190815260200160002060050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008460ff1660ff16815260200190815260200160002060010160008154811061379857fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156137fd576137ec8484846001615044565b6137f884848484614620565b613bf3565b61380a8484846000615044565b61381684848484614620565b613bf3565b8373ffffffffffffffffffffffffffffffffffffffff166000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008460ff1660ff16815260200190815260200160002060010160018154811061389957fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156138fe576138ed8484846000615044565b6138f984848484614620565b613bf3565b8373ffffffffffffffffffffffffffffffffffffffff166000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008460ff1660ff16815260200190815260200160002060010160008154811061397c57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156139e1576139d08484846001615044565b6139dc84848484614620565b613bf3565b6000808060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008560ff1660ff168152602001908152602001600020600101600181548110613a4b57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008360ff1660ff168152602001908152602001600020600101805490506000808060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008660ff1660ff168152602001908152602001600020600101600081548110613b3b57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008460ff1660ff1681526020019081526020016000206001018054905011613bd857613bd38484846000615044565b613be6565b613be58484846001615044565b5b613bf284848484614620565b5b50505050565b60008160ff161415613c835760066003541115613c7e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f596f75206e6f742068617665207468697320707265762e00000000000000000081525060200191505060405180910390fd5b613d00565b66b1a2bc2ec500003414613cff576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600c8152602001807f496e76616c696420436f7374000000000000000000000000000000000000000081525060200191505060405180910390fd5b5b613d0983610e7f565b15613d7c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f757365722065786973747300000000000000000000000000000000000000000081525060200191505060405180910390fd5b613d8582610e7f565b613df7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f7265666572726572206e6f74206578697374730000000000000000000000000081525060200191505060405180910390fd5b6000833b905060008163ffffffff1614613e79576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260028152602001807f636300000000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b613e81615f13565b604051806060016040528060035481526020018573ffffffffffffffffffffffffffffffffffffffff16815260200160008152509050806000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000820151816000015560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604082015181600201559050508460016000600354815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550836000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003016000600160ff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206004016000600160ff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508460026000600354815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506003600081548092919060010191905055506000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002016000815480929190600101919050555060006141ca866001611876565b9050806000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206005016000600160ff16815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506142718682600187611cd2565b6142888661428088600161091c565b600187612535565b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001548573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f309bb360e8b69c23937ccc5fb01f9aeeead1c95a99604e175113ff82f2b1723a6000808a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546040518082815260200191505060405180910390a4505050505050565b60018160ff1614156145715760008061439387878787615c43565b915091508173ffffffffffffffffffffffffffffffffffffffff166108fc600560008760ff1660ff168152602001908152602001600020549081150290604051600060405180830381858888f193505050506144c4578573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fc49a43029f7a5081f25c42ed054858ba33024bb737d162eeb4eea7e8923098774788886000604051808581526020018460ff1660ff1681526020018360ff1660ff1681526020018260ff16815260200194505050505060405180910390a38173ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156144bc573d6000803e3d6000fd5b505050614619565b8573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fc49a43029f7a5081f25c42ed054858ba33024bb737d162eeb4eea7e892309877600560008860ff1660ff1681526020019081526020016000205488886001604051808581526020018460ff1660ff1681526020018360ff1660ff1681526020018260ff16815260200194505050505060405180910390a35050614618565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fc49a43029f7a5081f25c42ed054858ba33024bb737d162eeb4eea7e892309877600560008660ff1660ff1681526020019081526020016000205486866001604051808581526020018460ff1660ff1681526020018360ff1660ff1681526020018260ff16815260200194505050505060405180910390a35b5b5050505050565b60046000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008460ff1660ff16815260200190815260200160002060020180549050101561469a57614695838560028585614378565b61503e565b60606000808060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008660ff1660ff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008460ff1660ff1681526020019081526020016000206001018054806020026020016040519081016040528092919081815260200182805480156147f257602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116147a8575b50505050509050600281511415614b1a578373ffffffffffffffffffffffffffffffffffffffff168160008151811061482757fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16148061489057508373ffffffffffffffffffffffffffffffffffffffff168160018151811061487057fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16145b156149af57836000808060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008760ff1660ff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008560ff1660ff16815260200190815260200160002060050160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550614b19565b600181511415614b18578373ffffffffffffffffffffffffffffffffffffffff16816000815181106149dd57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff161415614b1757836000808060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008760ff1660ff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008560ff1660ff16815260200190815260200160002060050160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5b5b5b6000604051908082528060200260200182016040528015614b4a5781602001602082028038833980820191505090505b506000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008560ff1660ff1681526020019081526020016000206001019080519060200190614bb9929190615e89565b506000604051908082528060200260200182016040528015614bea5781602001602082028038833980820191505090505b506000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008560ff1660ff1681526020019081526020016000206002019080519060200190614c59929190615e89565b5060008060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008560ff1660ff16815260200190815260200160002060050160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040160006001850160ff1660ff16815260200190815260200160002060009054906101000a900460ff16158015614d725750600c60ff168360ff1614155b15614dec5760016000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008560ff1660ff16815260200190815260200160002060030160006101000a81548160ff0219169083151502179055505b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008460ff1660ff16815260200190815260200160002060040160008154809291906001019190505550600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614614f5a576000614eb8858561091c565b90508573ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fa00c953eff38ec1b71e7fe060b2ab8df0bbe5354319fbdde4fbdafd6324386a6600288604051808360ff1681526020018260ff1660ff1681526020019250505060405180910390a4614f5485828686612535565b5061503c565b8473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fa00c953eff38ec1b71e7fe060b2ab8df0bbe5354319fbdde4fbdafd6324386a6600287604051808360ff1681526020018260ff1660ff1681526020019250505060405180910390a461503b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168660028686614378565b5b505b50505050565b80615645576000808060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008560ff1660ff1681526020019081526020016000206001016000815481106150b357fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008360ff1660ff1681526020019081526020016000206001018490806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008360ff1660ff16815260200190815260200160002060010160008154811061520057fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f68062c5925c4317adf3a7095478d28b33fd8b41458bc7620b61bc46bf1b24d826002856000808060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008a60ff1660ff1681526020019081526020016000206001016000815481106152e657fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008860ff1660ff16815260200190815260200160002060010180549050604051808460ff1681526020018360ff1660ff1681526020018260ff1660ff168152602001935050505060405180910390a38273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f68062c5925c4317adf3a7095478d28b33fd8b41458bc7620b61bc46bf1b24d826002856000808060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008a60ff1660ff16815260200190815260200160002060010160008154811061545a57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008860ff1660ff16815260200190815260200160002060010180549050600201604051808460ff1681526020018360ff1660ff1681526020018260ff1660ff168152602001935050505060405180910390a36000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008360ff1660ff16815260200190815260200160002060010160008154811061557c57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008460ff1660ff16815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550615c3d565b6000808060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008560ff1660ff1681526020019081526020016000206001016001815481106156af57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008360ff1660ff1681526020019081526020016000206001018490806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008360ff1660ff1681526020019081526020016000206001016001815481106157fc57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f68062c5925c4317adf3a7095478d28b33fd8b41458bc7620b61bc46bf1b24d826002856000808060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008a60ff1660ff1681526020019081526020016000206001016001815481106158e257fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008860ff1660ff16815260200190815260200160002060010180549050604051808460ff1681526020018360ff1660ff1681526020018260ff1660ff168152602001935050505060405180910390a38273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f68062c5925c4317adf3a7095478d28b33fd8b41458bc7620b61bc46bf1b24d826002856000808060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008a60ff1660ff168152602001908152602001600020600101600181548110615a5657fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008860ff1660ff16815260200190815260200160002060010180549050600401604051808460ff1681526020018360ff1660ff1681526020018260ff1660ff168152602001935050505060405180910390a36000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008360ff1660ff168152602001908152602001600020600101600181548110615b7857fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008460ff1660ff16815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50505050565b6000806000869050600060018660ff161415615d6d575b600115615d68576000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050160008660ff1660ff16815260200190815260200160002060020160009054906101000a900460ff1615615d5657600190506000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050160008660ff1660ff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150615d63565b8181935093505050615e80565b615c5a565b615e7d565b5b600115615e7c576000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008660ff1660ff16815260200190815260200160002060030160009054906101000a900460ff1615615e6a57600190506000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060160008660ff1660ff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150615e77565b8181935093505050615e80565b615d6e565b5b50505b94509492505050565b828054828255906000526020600020908101928215615f02579160200282015b82811115615f015782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555091602001919060010190615ea9565b5b509050615f0f9190615f4a565b5090565b604051806060016040528060008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600081525090565b615f8a91905b80821115615f8657600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550600101615f50565b5090565b9056fe75736572206973206e6f74206578697374732e2052656769737465722066697273742ea265627a7a72315820af9dc1981b35f6b51eed586bcc415db180133d09b9f5652383f93827ad1ad87164736f6c63430005110032

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

0000000000000000000000006787aa160ce8f512dbf2b7ed47d389cf0edf818d

-----Decoded View---------------
Arg [0] : ownerAddress (address): 0x6787Aa160CE8f512DBf2B7Ed47D389cF0eDF818d

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000006787aa160ce8f512dbf2b7ed47d389cf0edf818d


Deployed Bytecode Sourcemap

36:19765:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16319:350;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16319:350:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16319:350:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;750:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;750:37:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;851:43;;8:9:-1;5:2;;;30:1;27;20:12;5:2;851:43:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;851:43:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;952:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;952:26:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17335:489;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17335:489:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17335:489:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;17335:489:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;17335:489:0;;;;;;;;;;;;;;;;;;;;;;901:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;901:39:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;901:39:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;17836:110;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17836:110:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17836:110:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;16849:157;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16849:157:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16849:157:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2525:1773;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2525:1773:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2376:137;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2376:137:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;985:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;985:29:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;15952:349;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15952:349:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15952:349:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;800:44;;8:9:-1;5:2;;;30:1;27;20:12;5:2;800:44:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;800:44:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17014:313;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17014:313:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17014:313:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;17014:313:0;;;;;;;;;;;;;;;;;;;16685:156;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16685:156:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16685:156:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1024:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1024:40:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1024:40:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16319:350;16402:7;16422:240;16429:4;16422:240;;;16454:5;:34;16460:5;:18;16466:11;16460:18;;;;;;;;;;;;;;;:27;;;;;;;;;;;;16454:34;;;;;;;;;;;;;;;:49;;:56;16504:5;16454:56;;;;;;;;;;;;;;;;;;;;;;;;;16450:131;;;16538:5;:18;16544:11;16538:18;;;;;;;;;;;;;;;:27;;;;;;;;;;;;16531:34;;;;16450:131;16623:5;:18;16629:11;16623:18;;;;;;;;;;;;;;;:27;;;;;;;;;;;;16609:41;;16422:240;;;16319:350;;;;;:::o;750:37::-;785:2;750:37;:::o;851:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;952:26::-;;;;:::o;17335:489::-;17414:7;17423:16;17441;17459:4;17465:7;17493:5;:18;17499:11;17493:18;;;;;;;;;;;;;;;:27;;:34;17521:5;17493:34;;;;;;;;;;;;;;;:50;;;;;;;;;;;;17562:5;:18;17568:11;17562:18;;;;;;;;;;;;;;;:27;;:34;17590:5;17562:34;;;;;;;;;;;;;;;:54;;17635:5;:18;17641:11;17635:18;;;;;;;;;;;;;;;:27;;:34;17663:5;17635:34;;;;;;;;;;;;;;;:55;;17709:5;:18;17715:11;17709:18;;;;;;;;;;;;;;;:27;;:34;17737:5;17709:34;;;;;;;;;;;;;;;:42;;;;;;;;;;;;17770:5;:18;17776:11;17770:18;;;;;;;;;;;;;;;:27;;:34;17798:5;17770:34;;;;;;;;;;;;;;;:45;;;;;;;;;;;;17485:331;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17335:489;;;;;;;;:::o;901:39::-;;;;;;;;;;;;;;;;;;;;;;:::o;17836:110::-;17893:4;17936:1;17918:5;:11;17924:4;17918:11;;;;;;;;;;;;;;;:14;;;:19;;17910:28;;17836:110;;;:::o;16849:157::-;16934:4;16958:5;:18;16964:11;16958:18;;;;;;;;;;;;;;;:33;;:40;16992:5;16958:40;;;;;;;;;;;;;;;;;;;;;;;;;16951:47;;16849:157;;;;:::o;2525:1773::-;2625:1;2618:5;:8;;;2615:198;;;2674:1;2651:5;:17;2657:10;2651:17;;;;;;;;;;;;;;;:20;;;:24;;2643:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2615:198;;;2766:10;:17;2777:5;2766:17;;;;;;;;;;;;;;;;2753:9;:30;2745:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2615:198;2839:24;2852:10;2839:12;:24::i;:::-;2831:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2932:1;2922:6;:11;;;:26;;;;2947:1;2937:6;:11;;;2922:26;2914:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3010:1;3002:5;:9;;;:32;;;;;785:2;3015:19;;:5;:19;;;;3002:32;2994:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3086:1;3076:6;:11;;;3072:1219;;;3113:5;:17;3119:10;3113:17;;;;;;;;;;;;;;;:32;;:39;3146:5;3113:39;;;;;;;;;;;;;;;;;;;;;;;;;3112:40;3104:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3201:5;:17;3207:10;3201:17;;;;;;;;;;;;;;;:26;;:35;3234:1;3228:5;:7;3201:35;;;;;;;;;;;;;;;:43;;;;;;;;;;;;3197:135;;;3311:5;3265;:17;3271:10;3265:17;;;;;;;;;;;;;;;:26;;:35;3298:1;3292:5;:7;3265:35;;;;;;;;;;;;;;;:43;;;:51;;;;;;;;;;;;;;;;;;3197:135;3352:22;3377:37;3396:10;3408:5;3377:18;:37::i;:::-;3352:62;;3481:14;3429:5;:17;3435:10;3429:17;;;;;;;;;;;;;;;:26;;:33;3456:5;3429:33;;;;;;;;;;;;;;;:49;;;:66;;;;;;;;;;;;;;;;;;3552:4;3510:5;:17;3516:10;3510:17;;;;;;;;;;;;;;;:32;;:39;3543:5;3510:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;3571:58;3589:10;3601:14;3617:5;3623;3571:17;:58::i;:::-;3683:14;3663:45;;3671:10;3663:45;;;3699:1;3702:5;3663:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3072:1219;;;;3752:5;:17;3758:10;3752:17;;;;;;;;;;;;;;;:32;;:39;3785:5;3752:39;;;;;;;;;;;;;;;;;;;;;;;;;3751:40;3743:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3841:5;:17;3847:10;3841:17;;;;;;;;;;;;;;;:26;;:35;3874:1;3868:5;:7;3841:35;;;;;;;;;;;;;;;:43;;;;;;;;;;;;3837:135;;;3951:5;3905;:17;3911:10;3905:17;;;;;;;;;;;;;;;:26;;:35;3938:1;3932:5;:7;3905:35;;;;;;;;;;;;;;;:43;;;:51;;;;;;;;;;;;;;;;;;3837:135;3988:22;4013:38;4033:10;4045:5;4013:19;:38::i;:::-;3988:63;;4122:4;4080:5;:17;4086:10;4080:17;;;;;;;;;;;;;;;:32;;:39;4113:5;4080:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;4141:59;4160:10;4172:14;4188:5;4194;4141:18;:59::i;:::-;4254:14;4234:45;;4242:10;4234:45;;;4270:1;4273:5;4234:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3072:1219;;2525:1773;;;:::o;2376:137::-;2458:47;2471:10;2483:15;2499:5;2458:12;:47::i;:::-;2376:137;;:::o;985:29::-;;;;;;;;;;;;;:::o;15952:349::-;16034:7;16054:240;16061:4;16054:240;;;16086:5;:34;16092:5;:18;16098:11;16092:18;;;;;;;;;;;;;;;:27;;;;;;;;;;;;16086:34;;;;;;;;;;;;;;;:49;;:56;16136:5;16086:56;;;;;;;;;;;;;;;;;;;;;;;;;16082:131;;;16170:5;:18;16176:11;16170:18;;;;;;;;;;;;;;;:27;;;;;;;;;;;;16163:34;;;;16082:131;16255:5;:18;16261:11;16255:18;;;;;;;;;;;;;;;:27;;;;;;;;;;;;16241:41;;16054:240;;;15952:349;;;;;:::o;800:44::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;17014:313::-;17092:7;17101:16;17119:4;17144:5;:18;17150:11;17144:18;;;;;;;;;;;;;;;:27;;:34;17172:5;17144:34;;;;;;;;;;;;;;;:50;;;;;;;;;;;;17213:5;:18;17219:11;17213:18;;;;;;;;;;;;;;;:27;;:34;17241:5;17213:34;;;;;;;;;;;;;;;:44;;17276:5;:18;17282:11;17276:18;;;;;;;;;;;;;;;:27;;:34;17304:5;17276:34;;;;;;;;;;;;;;;:42;;;;;;;;;;;;17136:183;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17014:313;;;;;:::o;16685:156::-;16769:4;16793:5;:18;16799:11;16793:18;;;;;;;;;;;;;;;:33;;:40;16827:5;16793:40;;;;;;;;;;;;;;;;;;;;;;;;;16786:47;;16685:156;;;;:::o;1024:40::-;;;;;;;;;;;;;;;;;:::o;5891:1689::-;6008:5;:22;6014:15;6008:22;;;;;;;;;;;;;;;:31;;:38;6040:5;6008:38;;;;;;;;;;;;;;;:48;;6062:11;6008:66;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;6008:66:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6149:1;6091:5;:22;6097:15;6091:22;;;;;;;;;;;;;;;:31;;:38;6123:5;6091:38;;;;;;;;;;;;;;;:48;;:55;;;;:59;6087:297;;;6198:15;6172:116;;6185:11;6172:116;;;6215:1;6218:5;6231;:22;6237:15;6231:22;;;;;;;;;;;;;;;:31;;:38;6263:5;6231:38;;;;;;;;;;;;;;;:48;;:55;;;;6172:116;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6310:62;6327:15;6344:11;6357:1;6360:5;6366;6310:16;:62::i;:::-;6303:69;;6087:297;6435:15;6409:55;;6422:11;6409:55;;;6452:1;6455:5;6462:1;6409:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6564:1;6550:16;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;6550:16:0;;;;6499:5;:22;6505:15;6499:22;;;;;;;;;;;;;;;:31;;:38;6531:5;6499:38;;;;;;;;;;;;;;;:48;;:67;;;;;;;;;;;;:::i;:::-;;6582:5;:22;6588:15;6582:22;;;;;;;;;;;;;;;:37;;:46;6626:1;6620:5;:7;6582:46;;;;;;;;;;;;;;;;;;;;;;;;;6581:47;:70;;;;;785:2;6632:19;;:5;:19;;;;6581:70;6577:156;;;6717:4;6668:5;:22;6674:15;6668:22;;;;;;;;;;;;;;;:31;;:38;6700:5;6668:38;;;;;;;;;;;;;;;:46;;;:53;;;;;;;;;;;;;;;;;;6577:156;6777:5;;;;;;;;;;;6758:24;;:15;:24;;;6754:819;;6812:27;6842:42;6861:15;6878:5;6842:18;:42::i;:::-;6812:72;;6961:19;6903:77;;:5;:22;6909:15;6903:22;;;;;;;;;;;;;;;:31;;:38;6935:5;6903:38;;;;;;;;;;;;;;;:54;;;;;;;;;;;;:77;;;6899:194;;7058:19;7001:5;:22;7007:15;7001:22;;;;;;;;;;;;;;;:31;;:38;7033:5;7001:38;;;;;;;;;;;;;;;:54;;;:76;;;;;;;;;;;;;;;;;;6899:194;7121:5;:22;7127:15;7121:22;;;;;;;;;;;;;;;:31;;:38;7153:5;7121:38;;;;;;;;;;;;;;;:52;;;:54;;;;;;;;;;;;;7242:11;7195:69;;7221:19;7195:69;;7204:15;7195:69;;;7255:1;7258:5;7195:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7279:68;7297:15;7314:19;7335:5;7341;7279:17;:68::i;:::-;6754:819;;;;7380:52;7397:5;;;;;;;;;;;7404:11;7417:1;7420:5;7426;7380:16;:52::i;:::-;7447:5;:12;7453:5;;;;;;;;;;;7447:12;;;;;;;;;;;;;;;:21;;:28;7469:5;7447:28;;;;;;;;;;;;;;;:42;;;:44;;;;;;;;;;;;;7539:11;7511:50;;7535:1;7511:50;;7520:5;;;;;;;;;;;7511:50;;;7552:1;7555:5;7511:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6754:819;5891:1689;;;;;:::o;7588:4767::-;7714:5;:22;7720:15;7714:22;;;;;;;;;;;;;;;:37;;:44;7752:5;7714:44;;;;;;;;;;;;;;;;;;;;;;;;;7706:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7859:1;7791:5;:22;7797:15;7791:22;;;;;;;;;;;;;;;:31;;:38;7823:5;7791:38;;;;;;;;;;;;;;;:58;;:65;;;;:69;7787:2286;;;7877:5;:22;7883:15;7877:22;;;;;;;;;;;;;;;:31;;:38;7909:5;7877:38;;;;;;;;;;;;;;;:58;;7941:11;7877:76;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;7877:76:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7999:15;7973:126;;7986:11;7973:126;;;8016:1;8019:5;8032;:22;8038:15;8032:22;;;;;;;;;;;;;;;:31;;:38;8064:5;8032:38;;;;;;;;;;;;;;;:58;;:65;;;;7973:126;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8188:15;8135:5;:18;8141:11;8135:18;;;;;;;;;;;;;;;:27;;:34;8163:5;8135:34;;;;;;;;;;;;;;;:50;;;:68;;;;;;;;;;;;;;;;;;8243:5;;;;;;;;;;;8224:24;;:15;:24;;;8220:134;;;8276:62;8293:15;8310:11;8323:1;8326:5;8332;8276:16;:62::i;:::-;8269:69;;8220:134;8382:11;8396:5;:22;8402:15;8396:22;;;;;;;;;;;;;;;:31;;:38;8428:5;8396:38;;;;;;;;;;;;;;;:54;;;;;;;;;;;;8382:68;;8477:5;:10;8483:3;8477:10;;;;;;;;;;;;;;;:19;;:26;8497:5;8477:26;;;;;;;;;;;;;;;:47;;8530:11;8477:65;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;8477:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8572:8;8583:5;:10;8589:3;8583:10;;;;;;;;;;;;;;;:19;;:26;8603:5;8583:26;;;;;;;;;;;;;;;:46;;:53;;;;8572:64;;8677:1;8670:3;:8;8669:102;;;;;8755:15;8702:68;;:5;:10;8708:3;8702:10;;;;;;;;;;;;;;;:19;;:26;8722:5;8702:26;;;;;;;;;;;;;;;:46;;8749:1;8702:49;;;;;;;;;;;;;;;;;;;;;;;;;:68;;;8669:102;:193;;;;;8846:15;8793:68;;:5;:10;8799:3;8793:10;;;;;;;;;;;;;;;:19;;:26;8813:5;8793:26;;;;;;;;;;;;;;;:46;;8840:1;8793:49;;;;;;;;;;;;;;;;;;;;;;;;;:68;;;8669:193;8665:1313;;;8956:1;8887:5;:22;8893:15;8887:22;;;;;;;;;;;;;;;:31;;:38;8919:5;8887:38;;;;;;;;;;;;;;;:58;;:65;;;;:70;8883:264;;;9013:3;8987:43;;9000:11;8987:43;;;9018:1;9021:5;9028:1;8987:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8883:264;;;9110:3;9084:43;;9097:11;9084:43;;;9115:1;9118:5;9125:1;9084:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8883:264;8665:1313;;;9181:1;9174:3;:8;:20;;;;9193:1;9186:3;:8;9174:20;9173:115;;;;;9273:15;9220:68;;:5;:10;9226:3;9220:10;;;;;;;;;;;;;;;:19;;:26;9240:5;9220:26;;;;;;;;;;;;;;;:46;;9267:1;9220:49;;;;;;;;;;;;;;;;;;;;;;;;;:68;;;9173:115;9169:809;;;9382:1;9313:5;:22;9319:15;9313:22;;;;;;;;;;;;;;;:31;;:38;9345:5;9313:38;;;;;;;;;;;;;;;:58;;:65;;;;:70;9309:264;;;9439:3;9413:43;;9426:11;9413:43;;;9444:1;9447:5;9454:1;9413:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9309:264;;;9536:3;9510:43;;9523:11;9510:43;;;9541:1;9544:5;9551:1;9510:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9309:264;9169:809;;;9605:1;9598:3;:8;:80;;;;;9663:15;9610:68;;:5;:10;9616:3;9610:10;;;;;;;;;;;;;;;:19;;:26;9630:5;9610:26;;;;;;;;;;;;;;;:46;;9657:1;9610:49;;;;;;;;;;;;;;;;;;;;;;;;;:68;;;9598:80;9594:384;;;9772:1;9703:5;:22;9709:15;9703:22;;;;;;;;;;;;;;;:31;;:38;9735:5;9703:38;;;;;;;;;;;;;;;:58;;:65;;;;:70;9699:264;;;9829:3;9803:43;;9816:11;9803:43;;;9834:1;9837:5;9844:1;9803:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9699:264;;;9926:3;9900:43;;9913:11;9900:43;;;9931:1;9934:5;9941:1;9900:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9699:264;9594:384;9169:809;8665:1313;10001:60;10031:11;10044:3;10049:5;10055;10001:29;:60::i;:::-;9994:67;;;;7787:2286;10093:5;:22;10099:15;10093:22;;;;;;;;;;;;;;;:31;;:38;10125:5;10093:38;;;;;;;;;;;;;;;:59;;10158:11;10093:77;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;10093:77:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10248:1;10187:63;;:5;:22;10193:15;10187:22;;;;;;;;;;;;;;;:31;;:38;10219:5;10187:38;;;;;;;;;;;;;;;:49;;;;;;;;;;;;:63;;;10183:1108;;10355:5;:22;10361:15;10355:22;;;;;;;;;;;;;;;:31;;:38;10387:5;10355:38;;;;;;;;;;;;;;;:58;;10414:1;10355:61;;;;;;;;;;;;;;;;;;;;;;;;;10272:144;;:5;:22;10278:15;10272:22;;;;;;;;;;;;;;;:31;;:38;10304:5;10272:38;;;;;;;;;;;;;;;:58;;10331:1;10272:61;;;;;;;;;;;;;;;;;;;;;;;;;:144;;;10271:300;;;;;10521:5;:22;10527:15;10521:22;;;;;;;;;;;;;;;:31;;:38;10553:5;10521:38;;;;;;;;;;;;;;;:49;;;;;;;;;;;;10439:131;;:5;:22;10445:15;10439:22;;;;;;;;;;;;;;;:31;;:38;10471:5;10439:38;;;;;;;;;;;;;;;:58;;10498:1;10439:61;;;;;;;;;;;;;;;;;;;;;;;;;:131;;;10271:300;10267:1013;;;10594:53;10605:11;10618:15;10635:5;10642:4;10594:10;:53::i;:::-;10673:72;10703:11;10716:15;10733:5;10739;10673:29;:72::i;:::-;10666:79;;10267:1013;10854:5;:22;10860:15;10854:22;;;;;;;;;;;;;;;:31;;:38;10886:5;10854:38;;;;;;;;;;;;;;;:49;;;;;;;;;;;;10771:132;;:5;:22;10777:15;10771:22;;;;;;;;;;;;;;;:31;;:38;10803:5;10771:38;;;;;;;;;;;;;;;:58;;10830:1;10771:61;;;;;;;;;;;;;;;;;;;;;;;;;:132;;;10767:513;;;10920:53;10931:11;10944:15;10961:5;10968:4;10920:10;:53::i;:::-;10999:72;11029:11;11042:15;11059:5;11065;10999:29;:72::i;:::-;10992:79;;10767:513;11112:54;11123:11;11136:15;11153:5;11160;11112:10;:54::i;:::-;11192:72;11222:11;11235:15;11252:5;11258;11192:29;:72::i;:::-;11185:79;;10183:1108;11372:11;11307:76;;:5;:22;11313:15;11307:22;;;;;;;;;;;;;;;:31;;:38;11339:5;11307:38;;;;;;;;;;;;;;;:58;;11366:1;11307:61;;;;;;;;;;;;;;;;;;;;;;;;;:76;;;11303:519;;;11400:54;11411:11;11424:15;11441:5;11448;11400:10;:54::i;:::-;11476:72;11506:11;11519:15;11536:5;11542;11476:29;:72::i;:::-;11469:79;;11303:519;11635:11;11570:76;;:5;:22;11576:15;11570:22;;;;;;;;;;;;;;;:31;;:38;11602:5;11570:38;;;;;;;;;;;;;;;:58;;11629:1;11570:61;;;;;;;;;;;;;;;;;;;;;;;;;:76;;;11566:256;;;11663:53;11674:11;11687:15;11704:5;11711:4;11663:10;:53::i;:::-;11738:72;11768:11;11781:15;11798:5;11804;11738:29;:72::i;:::-;11731:79;;11566:256;11975:5;:68;11981:5;:22;11987:15;11981:22;;;;;;;;;;;;;;;:31;;:38;12013:5;11981:38;;;;;;;;;;;;;;;:58;;12040:1;11981:61;;;;;;;;;;;;;;;;;;;;;;;;;11975:68;;;;;;;;;;;;;;;:77;;:84;12053:5;11975:84;;;;;;;;;;;;;;;:104;;:111;;;;11846:5;:68;11852:5;:22;11858:15;11852:22;;;;;;;;;;;;;;;:31;;:38;11884:5;11852:38;;;;;;;;;;;;;;;:58;;11911:1;11852:61;;;;;;;;;;;;;;;;;;;;;;;;;11846:68;;;;;;;;;;;;;;;:77;;:84;11924:5;11846:84;;;;;;;;;;;;;;;:104;;:111;;;;:240;11842:413;;12103:54;12114:11;12127:15;12144:5;12151;12103:10;:54::i;:::-;11842:413;;;12190:53;12201:11;12214:15;12231:5;12238:4;12190:10;:53::i;:::-;11842:413;12275:72;12305:11;12318:15;12335:5;12341;12275:29;:72::i;:::-;7588:4767;;;;;:::o;4314:1565::-;4421:1;4414:5;:8;;;4411:163;;;4459:1;4446:10;;:14;;4438:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4411:163;;;4536:10;4523:9;:23;4515:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4411:163;4602:25;4615:11;4602:12;:25::i;:::-;4601:26;4593:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4662:29;4675:15;4662:12;:29::i;:::-;4654:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4732:11;4798;4786:24;4778:32;;4847:1;4839:4;:9;;;4831:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4876:23;;:::i;:::-;4902:124;;;;;;;;4933:10;;4902:124;;;;4968:15;4902:124;;;;;;5013:1;4902:124;;;4876:150;;5068:4;5047:5;:18;5053:11;5047:18;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5109:11;5083;:23;5095:10;;5083:23;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;5171:15;5141:5;:18;5147:11;5141:18;;;;;;;;;;;;;;;:27;;;:45;;;;;;;;;;;;;;;;;;5246:4;5207:5;:18;5213:11;5207:18;;;;;;;;;;;;;;;:33;;:36;5241:1;5207:36;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;5301:4;5262:5;:18;5268:11;5262:18;;;;;;;;;;;;;;;:33;;:36;5296:1;5262:36;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;5358:11;5336:7;:19;5344:10;;5336:19;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;5380:10;;:12;;;;;;;;;;;;;5413:5;:22;5419:15;5413:22;;;;;;;;;;;;;;;:36;;;:38;;;;;;;;;;;;;5464:22;5489:34;5508:11;5521:1;5489:18;:34::i;:::-;5464:59;;5583:14;5534:5;:18;5540:11;5534:18;;;;;;;;;;;;;;;:27;;:30;5562:1;5534:30;;;;;;;;;;;;;:46;;;:63;;;;;;;;;;;;;;;;;;5608:55;5626:11;5639:14;5655:1;5657:5;5608:17;:55::i;:::-;5676:77;5695:11;5708:35;5728:11;5741:1;5708:19;:35::i;:::-;5745:1;5747:5;5676:18;:77::i;:::-;5822:5;:18;5828:11;5822:18;;;;;;;;;;;;;;;:21;;;5805:15;5779:92;;5792:11;5779:92;;;5845:5;:22;5851:15;5845:22;;;;;;;;;;;;;;;:25;;;5779:92;;;;;;;;;;;;;;;;;;4314:1565;;;;;;:::o;18927:701::-;19057:1;19050:5;:8;;;19047:574;;;19071:16;19089:21;19114:49;19129:11;19142:5;19149:6;19157:5;19114:14;:49::i;:::-;19070:93;;;;19214:8;19198:31;;:50;19230:10;:17;19241:5;19230:17;;;;;;;;;;;;;;;;19198:50;;;;;;;;;;;;;;;;;;;;;;;19193:235;;19292:5;19272:64;;19283:8;19272:64;;;19298:21;19321:6;19328:5;19334:1;19272:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19374:8;19358:35;;:58;19394:21;19358:58;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19358:58:0;19351:65;;;;19193:235;19465:5;19445:59;;19456:8;19445:59;;;19471:10;:17;19482:5;19471:17;;;;;;;;;;;;;;;;19489:6;19496:5;19502:1;19445:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19047:574;;;;;19570:5;19547:62;;19558:11;19547:62;;;19576:10;:17;19587:5;19576:17;;;;;;;;;;;;;;;;19594:6;19601:5;19607:1;19547:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19047:574;18927:701;;;;;;:::o;13994:1946::-;14198:1;14129:5;:22;14135:15;14129:22;;;;;;;;;;;;;;;:31;;:38;14161:5;14129:38;;;;;;;;;;;;;;;:59;;:66;;;;:70;14125:172;;;14223:62;14240:15;14257:11;14270:1;14273:5;14279;14223:16;:62::i;:::-;14216:69;;14125:172;14317:19;14339:5;:61;14345:5;:22;14351:15;14345:22;;;;;;;;;;;;;;;:31;;:38;14377:5;14345:38;;;;;;;;;;;;;;;:54;;;;;;;;;;;;14339:61;;;;;;;;;;;;;;;:70;;:77;14410:5;14339:77;;;;;;;;;;;;;;;:97;;14317:119;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14474:1;14461:2;:9;:14;14457:501;;;14505:15;14496:24;;:2;14499:1;14496:5;;;;;;;;;;;;;;:24;;;:69;;;;14550:15;14541:24;;:2;14544:1;14541:5;;;;;;;;;;;;;;:24;;;14496:69;14492:455;;;14677:15;14586:5;:61;14592:5;:22;14598:15;14592:22;;;;;;;;;;;;;;;:31;;:38;14624:5;14592:38;;;;;;;;;;;;;;;:54;;;;;;;;;;;;14586:61;;;;;;;;;;;;;;;:70;;:77;14657:5;14586:77;;;;;;;;;;;;;;;:88;;;:106;;;;;;;;;;;;;;;;;;14492:455;;;14731:1;14718:2;:9;:14;14714:233;;;14766:15;14757:24;;:2;14760:1;14757:5;;;;;;;;;;;;;;:24;;;14753:179;;;14897:15;14806:5;:61;14812:5;:22;14818:15;14812:22;;;;;;;;;;;;;;;:31;;:38;14844:5;14812:38;;;;;;;;;;;;;;;:54;;;;;;;;;;;;14806:61;;;;;;;;;;;;;;;:70;;:77;14877:5;14806:77;;;;;;;;;;;;;;;:88;;;:106;;;;;;;;;;;;;;;;;;14753:179;14714:233;14492:455;14457:501;15053:1;15039:16;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;15039:16:0;;;;14978:5;:22;14984:15;14978:22;;;;;;;;;;;;;;;:31;;:38;15010:5;14978:38;;;;;;;;;;;;;;;:58;;:77;;;;;;;;;;;;:::i;:::-;;15142:1;15128:16;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;15128:16:0;;;;15066:5;:22;15072:15;15066:22;;;;;;;;;;;;;;;:31;;:38;15098:5;15066:38;;;;;;;;;;;;;;;:59;;:78;;;;;;;;;;;;:::i;:::-;;15215:1;15155:5;:22;15161:15;15155:22;;;;;;;;;;;;;;;:31;;:38;15187:5;15155:38;;;;;;;;;;;;;;;:49;;;:62;;;;;;;;;;;;;;;;;;15235:5;:22;15241:15;15235:22;;;;;;;;;;;;;;;:37;;:46;15279:1;15273:5;:7;15235:46;;;;;;;;;;;;;;;;;;;;;;;;;15234:47;:70;;;;;785:2;15285:19;;:5;:19;;;;15234:70;15230:156;;;15370:4;15321:5;:22;15327:15;15321:22;;;;;;;;;;;;;;;:31;;:38;15353:5;15321:38;;;;;;;;;;;;;;;:46;;;:53;;;;;;;;;;;;;;;;;;15230:156;15398:5;:22;15404:15;15398:22;;;;;;;;;;;;;;;:31;;:38;15430:5;15398:38;;;;;;;;;;;;;;;:52;;;:54;;;;;;;;;;;;;15496:5;;;;;;;;;;;15477:24;;:15;:24;;;15473:460;;15518:27;15548:43;15568:15;15585:5;15548:19;:43::i;:::-;15518:73;;15660:11;15613:69;;15639:19;15613:69;;15622:15;15613:69;;;15673:1;15676:5;15613:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15697;15716:15;15733:19;15754:5;15760;15697:18;:69::i;:::-;15473:460;;;;15832:11;15804:50;;15828:1;15804:50;;15813:5;;;;;;;;;;;15804:50;;;15845:1;15848:5;15804:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15869:52;15886:5;;;;;;;;;;;15893:11;15906:1;15909:5;15915;15869:16;:52::i;:::-;15473:460;13994:1946;;;;;;:::o;12363:1619::-;12475:2;12470:1505;;12494:5;:68;12500:5;:22;12506:15;12500:22;;;;;;;;;;;;;;;:31;;:38;12532:5;12500:38;;;;;;;;;;;;;;;:58;;12559:1;12500:61;;;;;;;;;;;;;;;;;;;;;;;;;12494:68;;;;;;;;;;;;;;;:77;;:84;12572:5;12494:84;;;;;;;;;;;;;;;:104;;12604:11;12494:122;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;12494:122:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12662:5;:22;12668:15;12662:22;;;;;;;;;;;;;;;:31;;:38;12694:5;12662:38;;;;;;;;;;;;;;;:58;;12721:1;12662:61;;;;;;;;;;;;;;;;;;;;;;;;;12636:218;;12649:11;12636:218;;;12725:1;12728:5;12741;:68;12747:5;:22;12753:15;12747:22;;;;;;;;;;;;;;;:31;;:38;12779:5;12747:38;;;;;;;;;;;;;;;:58;;12806:1;12747:61;;;;;;;;;;;;;;;;;;;;;;;;;12741:68;;;;;;;;;;;;;;;:77;;:84;12819:5;12741:84;;;;;;;;;;;;;;;:104;;:111;;;;12636:218;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12900:15;12874:176;;12887:11;12874:176;;;12917:1;12920:5;12937;:68;12943:5;:22;12949:15;12943:22;;;;;;;;;;;;;;;:31;;:38;12975:5;12943:38;;;;;;;;;;;;;;;:58;;13002:1;12943:61;;;;;;;;;;;;;;;;;;;;;;;;;12937:68;;;;;;;;;;;;;;;:77;;:84;13015:5;12937:84;;;;;;;;;;;;;;;:104;;:111;;;;12927:1;:122;12874:176;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13151:5;:22;13157:15;13151:22;;;;;;;;;;;;;;;:31;;:38;13183:5;13151:38;;;;;;;;;;;;;;;:58;;13210:1;13151:61;;;;;;;;;;;;;;;;;;;;;;;;;13098:5;:18;13104:11;13098:18;;;;;;;;;;;;;;;:27;;:34;13126:5;13098:34;;;;;;;;;;;;;;;:50;;;:114;;;;;;;;;;;;;;;;;;12470:1505;;;13245:5;:68;13251:5;:22;13257:15;13251:22;;;;;;;;;;;;;;;:31;;:38;13283:5;13251:38;;;;;;;;;;;;;;;:58;;13310:1;13251:61;;;;;;;;;;;;;;;;;;;;;;;;;13245:68;;;;;;;;;;;;;;;:77;;:84;13323:5;13245:84;;;;;;;;;;;;;;;:104;;13355:11;13245:122;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;13245:122:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13413:5;:22;13419:15;13413:22;;;;;;;;;;;;;;;:31;;:38;13445:5;13413:38;;;;;;;;;;;;;;;:58;;13472:1;13413:61;;;;;;;;;;;;;;;;;;;;;;;;;13387:218;;13400:11;13387:218;;;13476:1;13479:5;13492;:68;13498:5;:22;13504:15;13498:22;;;;;;;;;;;;;;;:31;;:38;13530:5;13498:38;;;;;;;;;;;;;;;:58;;13557:1;13498:61;;;;;;;;;;;;;;;;;;;;;;;;;13492:68;;;;;;;;;;;;;;;:77;;:84;13570:5;13492:84;;;;;;;;;;;;;;;:104;;:111;;;;13387:218;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13651:15;13625:176;;13638:11;13625:176;;;13668:1;13671:5;13688;:68;13694:5;:22;13700:15;13694:22;;;;;;;;;;;;;;;:31;;:38;13726:5;13694:38;;;;;;;;;;;;;;;:58;;13753:1;13694:61;;;;;;;;;;;;;;;;;;;;;;;;;13688:68;;;;;;;;;;;;;;;:77;;:84;13766:5;13688:84;;;;;;;;;;;;;;;:104;;:111;;;;13678:1;:122;13625:176;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13902:5;:22;13908:15;13902:22;;;;;;;;;;;;;;;:31;;:38;13934:5;13902:38;;;;;;;;;;;;;;;:58;;13961:1;13902:61;;;;;;;;;;;;;;;;;;;;;;;;;13849:5;:18;13855:11;13849:18;;;;;;;;;;;;;;;:27;;:34;13877:5;13849:34;;;;;;;;;;;;;;;:50;;;:114;;;;;;;;;;;;;;;;;;12470:1505;12363:1619;;;;:::o;17954:965::-;18057:7;18066:4;18083:16;18102:11;18083:30;;18124:21;18170:1;18160:6;:11;;;18156:756;;;18188:342;18195:4;18188:342;;;18224:5;:15;18230:8;18224:15;;;;;;;;;;;;;;;:24;;:31;18249:5;18224:31;;;;;;;;;;;;;;;:39;;;;;;;;;;;;18220:295;;;18326:4;18307:23;;18364:5;:15;18370:8;18364:15;;;;;;;;;;;;;;;:24;;:31;18389:5;18364:31;;;;;;;;;;;;;;;:47;;;;;;;;;;;;18353:58;;18220:295;;;18468:8;18478:16;18460:35;;;;;;;;18220:295;18188:342;;;18156:756;;;18562:339;18569:4;18562:339;;;18598:5;:15;18604:8;18598:15;;;;;;;;;;;;;;;:24;;:31;18623:5;18598:31;;;;;;;;;;;;;;;:39;;;;;;;;;;;;18594:292;;;18697:4;18678:23;;18735:5;:15;18741:8;18735:15;;;;;;;;;;;;;;;:24;;:31;18760:5;18735:31;;;;;;;;;;;;;;;:47;;;;;;;;;;;;18724:58;;18594:292;;;18839:8;18849:16;18831:35;;;;;;;;18594:292;18562:339;;;18156:756;17954:965;;;;;;;;;;:::o;36:19765::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o

Swarm Source

bzzr://af9dc1981b35f6b51eed586bcc415db180133d09b9f5652383f93827ad1ad871

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
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.