docs: private int insertNewKey(int key) {
          if (check && occupiedCount != keyCount) Kit.codeBug();
          if (check && keyCount == 1 << power) Kit.codeBug();
          int[] keys = this.keys;
          int fraction = key * A;
          int index = fraction >>> (32 - power);
          if (keys[index] != EMPTY) {
              int mask = (1 << power) - 1;
              int step = tableLookupStep(fraction, mask, power);
              int firstIndex = index;
              do {
                  if (check && keys[index] == DELETED) Kit.codeBug();
                  index = (index + step) & mask;
                  if (check && firstIndex == index) Kit.codeBug();
              } while (keys[index] != EMPTY);
          }
          keys[index] = key;
          ++occupiedCount;
          ++keyCount;
          return index;
      }