private final int insertString() {
private int insertString() {
  private final int insertString() {    short match;    int hash = ((ins_h << HASH_SHIFT) ^ window[strstart + (MIN_MATCH -1)])      & HASH_MASK;    if (DEBUGGING)      {	if (hash != (((window[strstart] << (2*HASH_SHIFT))		      ^ (window[strstart + 1] << HASH_SHIFT)		      ^ (window[strstart + 2])) & HASH_MASK))	  throw new InternalError("hash inconsistent: "+hash+"/"				  +window[strstart]+","				  +window[strstart+1]+","				  +window[strstart+2]+","+HASH_SHIFT);      }    prev[strstart & WMASK] = match = head[hash];    head[hash] = (short) strstart;    ins_h = hash;    return match & 0xffff;  }