/// <summary>
        /// Reset internal state
        /// </summary>
        public void Reset()
        {
            huffman.Reset();
            adler.Reset();
            blockStart    = strstart = 1;
            lookahead     = 0;
            totalIn       = 0;
            prevAvailable = false;
            matchLen      = MIN_MATCH - 1;

            for (int i = 0; i < HASH_SIZE; i++)
            {
                head[i] = 0;
            }

            for (int i = 0; i < WSIZE; i++)
            {
                prev[i] = 0;
            }
        }