int (byte[] input, int off, int len) { checkPositionIndexes(off, off + len, input.length); int h1 = seed; int i; for (i = 0; i + CHUNK_SIZE <= len; i += CHUNK_SIZE) { int k1 = mixK1(getIntLittleEndian(input, off + i)); h1 = mixH1(h1, k1); } int k1 = 0; for (int shift = 0; i < len; i++, shift += 8) { k1 ^= toInt(input[off + i]) << shift; } h1 ^= mixK1(k1); return fMix(h1, len); }