public static int update(int hash, int value) {
		final int c1 = 0xCC9E2D51;
		final int c2 = 0x1B873593;
		final int r1 = 15;
		final int r2 = 13;
		final int m = 5;
		final int n = 0xE6546B64;

		int k = value;
		k = k * c1;
		k = (k << r1) | (k >>> (32 - r1));
		k = k * c2;

		hash = hash ^ k;
		hash = (hash << r2) | (hash >>> (32 - r2));
		hash = hash * m + n;

		return hash;
	}
Update the intermediate hash value for the next input {@code value}.

@param hash the intermediate hash value
@param value the value to add to the current hash
@return the updated intermediate hash value
runtime/Java/src/org/antlr/v4/runtime/misc/MurmurHash.java