@Override
    public @NotNull LongRangeSet mod(LongRangeSet divisor) {
      if (divisor instanceof Point) {
        if (((Point)divisor).myValue > 1 && ((Point)divisor).myValue <= Long.SIZE) {
          int divisorValue = (int)((Point)divisor).myValue;
          int lcm = lcm(divisorValue);
          if (lcm <= Long.SIZE) {
            long from = MathUtil.clamp(myFrom, -divisorValue + 1, 0);
            long to = MathUtil.clamp(myTo, 0, divisorValue - 1);
            long possibleMods = widenBits(lcm);
            while (Long.SIZE - Long.numberOfLeadingZeros(possibleMods) > divisorValue) {
              possibleMods = extractBits(possibleMods, divisorValue, Long.SIZE) |
                             extractBits(possibleMods, 0, divisorValue);
            }
            return modRange(from, to, divisorValue, possibleMods);
          }
        }
      }
      return range(myFrom, myTo).mod(divisor);
    }
@Override
    public @NotNull LongRangeSet mod(LongRangeSet divisor)