anchor.diff:  var
     C, Last : Byte;
     OpI : LongInt;
  -  OpO : LongInt;
     I, J, Sz : Integer;
     D : Word;
     SPos : LongInt;
  
positive.code:              line}
              OpI := (FOutSent + LongInt(FOutPos))-(Swap(D)+C+1);
  
              if OpI >= 8192 then
                OpO := OpI mod 8192
              else
                OpO := OpI;
              for I := 0 to Len+2 do begin
                if OpI < 0 then
                  uzWriteByte(0)
                else begin
                  SPos := FOutWriter.Position;
                  FOutWriter.Position := OpO;
                  FOutWriter.Read( MyByte, 1 );
                  FOutWriter.Position := SPos;
                  uzWriteByte(MyByte);
                end;
                Inc(OpI);
                Inc(OpO);
                if OpO >= 8192 then
                  OpO := 0;
              end;
  
              State := 0;
  
negative.code:         Followers^[I].FSet[J] := uzReadBits(8);
      end;
  
      while (not FInEof) and ((FOutSent + LongInt(FOutPos)) < FUncompressedSize) do begin
        Last := C;
        with Followers^[Last] do
          if Size = 0 then
  