if ((ti = T[i] & 0xff) < (t0 = T[0] & 0xff) || (T[i] == T[0] && flag != 0)) { if (flag == 0) { ++bucketB[BUCKET_BSTAR(ti, t0)]; SA[--m] = i; } else { } while (0 <= --i && (T[i] & 0xff) >= (T[i + 1] & 0xff)); if (0 <= i) { ++bucketB[BUCKET_BSTAR(T[i] & 0xff, T[i + 1] & 0xff)]; SA[--m] = i; for (--i; 0 <= i && (ti = T[i] & 0xff) <= (ti1 = T[i + 1] & 0xff); --i) { i = t + bucketB[BUCKET_B(c0, c0)]; for (c1 = c0 + 1; c1 < 256; ++c1) { j += bucketB[BUCKET_BSTAR(c0, c1)]; bucketB[(c0 << 8) | c1] = j; i += bucketB[BUCKET_B(c0, c1)]; c0 = T[t] & 0xff; c1 = T[t + 1] & 0xff; SA[--bucketB[BUCKET_BSTAR(c0, c1)]] = i; SA[--bucketB[BUCKET_BSTAR(c0, c1)]] = m - 1; i = bucketB[BUCKET_BSTAR(c0, c1)]; if (1 < j - i) { subStringSort(PAb, i, j, buf, bufoffset, bufsize, 2, SA[i] == m - 1, n); for (i = t, j = bucketB[BUCKET_BSTAR(c0, c1)]; j <= k; --i, --k) {
for (i = bucketB[BUCKET_BSTAR(c1, c1 + 1)], j = bucketA[c1 + 1], t = 0, c2 = -1; i <= j; --j) {
if ((ti = T[i] & 0xff) < (t0 = T[0] & 0xff) || (T[i] == T[0] && flag != 0)) { if (flag == 0) { ++bucketB[BUCKET_BSTAR(ti, t0)]; SA[--m] = i; } else { } while (0 <= --i && (T[i] & 0xff) >= (T[i + 1] & 0xff)); if (0 <= i) { ++bucketB[BUCKET_BSTAR(T[i] & 0xff, T[i + 1] & 0xff)]; SA[--m] = i; for (--i; 0 <= i && (ti = T[i] & 0xff) <= (ti1 = T[i + 1] & 0xff); --i) { i = t + bucketB[BUCKET_B(c0, c0)]; for (c1 = c0 + 1; c1 < 256; ++c1) { j += bucketB[BUCKET_BSTAR(c0, c1)]; bucketB[(c0 << 8) | c1] = j; i += bucketB[BUCKET_B(c0, c1)]; c0 = T[t] & 0xff; c1 = T[t + 1] & 0xff; SA[--bucketB[BUCKET_BSTAR(c0, c1)]] = i; SA[--bucketB[BUCKET_BSTAR(c0, c1)]] = m - 1; i = bucketB[BUCKET_BSTAR(c0, c1)]; if (1 < j - i) { subStringSort(PAb, i, j, buf, bufoffset, bufsize, 2, SA[i] == m - 1, n); for (i = t, j = bucketB[BUCKET_BSTAR(c0, c1)]; j <= k; --i, --k) {
for (i = bucketB[BUCKET_BSTAR(c1, c1 + 1)], j = bucketA[c1 + 1], t = 0, c2 = -1; i <= j; --j) {
if ((ti = T[i] & 0xff) < (t0 = T[0] & 0xff) || (T[i] == T[0] && flag != 0)) { if (flag == 0) { ++bucketB[BUCKET_BSTAR(ti, t0)]; SA[--m] = i; } else { } while (0 <= --i && (T[i] & 0xff) >= (T[i + 1] & 0xff)); if (0 <= i) { ++bucketB[BUCKET_BSTAR(T[i] & 0xff, T[i + 1] & 0xff)]; SA[--m] = i; for (--i; 0 <= i && (ti = T[i] & 0xff) <= (ti1 = T[i + 1] & 0xff); --i) { i = t + bucketB[BUCKET_B(c0, c0)]; for (c1 = c0 + 1; c1 < 256; ++c1) { j += bucketB[BUCKET_BSTAR(c0, c1)]; bucketB[(c0 << 8) | c1] = j; i += bucketB[BUCKET_B(c0, c1)]; c0 = T[t] & 0xff; c1 = T[t + 1] & 0xff; SA[--bucketB[BUCKET_BSTAR(c0, c1)]] = i; SA[--bucketB[BUCKET_BSTAR(c0, c1)]] = m - 1; i = bucketB[BUCKET_BSTAR(c0, c1)]; if (1 < j - i) { subStringSort(PAb, i, j, buf, bufoffset, bufsize, 2, SA[i] == m - 1, n); for (i = t, j = bucketB[BUCKET_BSTAR(c0, c1)]; j <= k; --i, --k) {
for (i = bucketB[BUCKET_BSTAR(c1, c1 + 1)], j = bucketA[c1 + 1], t = 0, c2 = -1; i <= j; --j) {
if ((ti = T[i] & 0xff) < (t0 = T[0] & 0xff) || (T[i] == T[0] && flag != 0)) { if (flag == 0) { ++bucketB[BUCKET_BSTAR(ti, t0)]; SA[--m] = i; } else { } while (0 <= --i && (T[i] & 0xff) >= (T[i + 1] & 0xff)); if (0 <= i) { ++bucketB[BUCKET_BSTAR(T[i] & 0xff, T[i + 1] & 0xff)]; SA[--m] = i; for (--i; 0 <= i && (ti = T[i] & 0xff) <= (ti1 = T[i + 1] & 0xff); --i) { i = t + bucketB[BUCKET_B(c0, c0)]; for (c1 = c0 + 1; c1 < 256; ++c1) { j += bucketB[BUCKET_BSTAR(c0, c1)]; bucketB[(c0 << 8) | c1] = j; i += bucketB[BUCKET_B(c0, c1)]; c0 = T[t] & 0xff; c1 = T[t + 1] & 0xff; SA[--bucketB[BUCKET_BSTAR(c0, c1)]] = i; SA[--bucketB[BUCKET_BSTAR(c0, c1)]] = m - 1; i = bucketB[BUCKET_BSTAR(c0, c1)]; if (1 < j - i) { subStringSort(PAb, i, j, buf, bufoffset, bufsize, 2, SA[i] == m - 1, n); for (i = t, j = bucketB[BUCKET_BSTAR(c0, c1)]; j <= k; --i, --k) {
for (i = bucketB[BUCKET_BSTAR(c1, c1 + 1)], j = bucketA[c1 + 1], t = 0, c2 = -1; i <= j; --j) {
if ((ti = T[i] & 0xff) < (t0 = T[0] & 0xff) || (T[i] == T[0] && flag != 0)) { if (flag == 0) { ++bucketB[BUCKET_BSTAR(ti, t0)]; SA[--m] = i; } else { } while (0 <= --i && (T[i] & 0xff) >= (T[i + 1] & 0xff)); if (0 <= i) { ++bucketB[BUCKET_BSTAR(T[i] & 0xff, T[i + 1] & 0xff)]; SA[--m] = i; for (--i; 0 <= i && (ti = T[i] & 0xff) <= (ti1 = T[i + 1] & 0xff); --i) { i = t + bucketB[BUCKET_B(c0, c0)]; for (c1 = c0 + 1; c1 < 256; ++c1) { j += bucketB[BUCKET_BSTAR(c0, c1)]; bucketB[(c0 << 8) | c1] = j; i += bucketB[BUCKET_B(c0, c1)]; c0 = T[t] & 0xff; c1 = T[t + 1] & 0xff; SA[--bucketB[BUCKET_BSTAR(c0, c1)]] = i; SA[--bucketB[BUCKET_BSTAR(c0, c1)]] = m - 1; i = bucketB[BUCKET_BSTAR(c0, c1)]; if (1 < j - i) { subStringSort(PAb, i, j, buf, bufoffset, bufsize, 2, SA[i] == m - 1, n); for (i = t, j = bucketB[BUCKET_BSTAR(c0, c1)]; j <= k; --i, --k) {
for (i = bucketB[BUCKET_BSTAR(c1, c1 + 1)], j = bucketA[c1 + 1], t = 0, c2 = -1; i <= j; --j) {
if ((ti = T[i] & 0xff) < (t0 = T[0] & 0xff) || (T[i] == T[0] && flag != 0)) { if (flag == 0) { ++bucketB[BUCKET_BSTAR(ti, t0)]; SA[--m] = i; } else { } while (0 <= --i && (T[i] & 0xff) >= (T[i + 1] & 0xff)); if (0 <= i) { ++bucketB[BUCKET_BSTAR(T[i] & 0xff, T[i + 1] & 0xff)]; SA[--m] = i; for (--i; 0 <= i && (ti = T[i] & 0xff) <= (ti1 = T[i + 1] & 0xff); --i) { i = t + bucketB[BUCKET_B(c0, c0)]; for (c1 = c0 + 1; c1 < 256; ++c1) { j += bucketB[BUCKET_BSTAR(c0, c1)]; bucketB[(c0 << 8) | c1] = j; i += bucketB[BUCKET_B(c0, c1)]; c0 = T[t] & 0xff; c1 = T[t + 1] & 0xff; SA[--bucketB[BUCKET_BSTAR(c0, c1)]] = i; SA[--bucketB[BUCKET_BSTAR(c0, c1)]] = m - 1; i = bucketB[BUCKET_BSTAR(c0, c1)]; if (1 < j - i) { subStringSort(PAb, i, j, buf, bufoffset, bufsize, 2, SA[i] == m - 1, n); for (i = t, j = bucketB[BUCKET_BSTAR(c0, c1)]; j <= k; --i, --k) {
if ((ti = T[i] & 0xff) < (t0 = T[0] & 0xff) || (T[i] == T[0] && flag != 0)) { if (flag == 0) { ++bucketB[BUCKET_BSTAR(ti, t0)]; SA[--m] = i; } else { } while (0 <= --i && (T[i] & 0xff) >= (T[i + 1] & 0xff)); if (0 <= i) { ++bucketB[BUCKET_BSTAR(T[i] & 0xff, T[i + 1] & 0xff)]; SA[--m] = i; for (--i; 0 <= i && (ti = T[i] & 0xff) <= (ti1 = T[i + 1] & 0xff); --i) { i = t + bucketB[BUCKET_B(c0, c0)]; for (c1 = c0 + 1; c1 < 256; ++c1) { j += bucketB[BUCKET_BSTAR(c0, c1)]; bucketB[(c0 << 8) | c1] = j; i += bucketB[BUCKET_B(c0, c1)]; c0 = T[t] & 0xff; c1 = T[t + 1] & 0xff; SA[--bucketB[BUCKET_BSTAR(c0, c1)]] = i; SA[--bucketB[BUCKET_BSTAR(c0, c1)]] = m - 1; i = bucketB[BUCKET_BSTAR(c0, c1)]; if (1 < j - i) { subStringSort(PAb, i, j, buf, bufoffset, bufsize, 2, SA[i] == m - 1, n); for (i = t, j = bucketB[BUCKET_BSTAR(c0, c1)]; j <= k; --i, --k) {
for (i = bucketB[BUCKET_BSTAR(c1, c1 + 1)], j = bucketA[c1 + 1], t = 0, c2 = -1; i <= j; --j) {
for (i = bucketB[BUCKET_BSTAR(c1, c1 + 1)], j = bucketA[c1 + 1], t = 0, c2 = -1; i <= j; --j) {