for (int i = finalId; i >= 0; i--) {
if (isOverflow(i, last.get(i), incs[i])) {
if (i == 0) {
throw new RangeOverflowException(range, last, incs[i].longValue());
}
long rem = incrementAndGetReminder(i, last.get(i), value.longValue());
incs[i] = new BigDecimal(rem);
incs[i - 1] = incs[i-1].add(new BigDecimal(1));
overflowFlag[i] = true;
} else {
if (i > 0) {