code: private static final int find(final Memory mem, final int lgArr,
        final int coupon) {
      final int arrMask = (1 << lgArr) - 1;
      int probe = coupon & arrMask;
      final int loopIndex = probe;
      do {
        final int couponAtIndex = extractInt(mem, HASH_SET_INT_ARR_START + (probe << 2));
        if (couponAtIndex == EMPTY) { return ~probe; } //empty
        else if (coupon == couponAtIndex) { return probe; } //duplicate
        final int stride = ((coupon & KEY_MASK_26) >>> lgArr) | 1;
        probe = (probe + stride) & arrMask;
      } while (probe != loopIndex);
      throw new SketchesArgumentException("Key not found and no empty slots!");
    }
docs: If the probe comes back to original index, throws an exception.