func: function endRound(address _bountyHunter)
          private
      {
          uint256 _rId = curRoundId;
          uint256 keyBlockNr = getKeyBlockNr(round[_rId].keyBlockNr);
          uint256 _seed = getSeed(keyBlockNr) + curRSalt;
          uint256 onePercent = grandPot / 100;
          uint256 rGrandReward = onePercent * grandRewardPercent;
  
          
          uint256 toF2mAmount = onePercent * toTokenPercent;
          
          
          grandPot = grandPot - toF2mAmount - onePercent;
          f2mContract.pushDividends.value(toF2mAmount)();
  
          
          uint256 weightRange = getWeightRange();
  
          
          for (uint256 i = 0; i < 3; i++){
              uint256 winNr = Helper.getRandom(_seed, weightRange);
              
              
              
              if (winNr <= curRWeight) {
                  grandPot -= rGrandReward;
                  uint256 _winSlot = getWinSlot(winNr);
                  address _winner = slot[_winSlot].buyer;
                  mintReward(_winner, _winSlot, rGrandReward, RewardType.Grand);
                  _seed = _seed + (_seed / 10);
              }
          }
          mintReward(_bountyHunter, 0, onePercent * 3 / 10, RewardType.Bounty);
          rewardContract.pushBounty.value(onePercent * 7 / 10)(curRoundId);
      }