anchor.diff:  begin
     Ss := TStringList.Create;
     try
  -    TBase64Stream.New(TDataStream.New(TXT)).Save(Ss);
  -    CheckEquals(TBase64Hash.New(TXT).AsString, Trim(Ss.Text));
  +    TBase64StreamEncoded.New(TDataStream.New(TXT)).Save(Ss);
  +    CheckEquals(TBase64Encoder.New(TXT).AsString, Trim(Ss.Text));
     finally
       Ss.Free;
     end;
  
positive.code: begin
    Buf := TMemoryStream.Create;
    try
      TBase64Stream.New(TDataStream.New(TXT)).Save(Buf);
      SetLength(S, Buf.Size);
      Buf.Position := 0;
      Buf.ReadBuffer(S[1], Buf.Size);
      CheckEquals(TBase64Hash.New(TXT).AsString, S);
    finally
      Buf.Free;
    end;
  end;
  
  procedure TBase64StreamTest.TestSaveStrings;
  const
    TXT: string = 'ABCDEFG#13#10IJLMNO-PQRS';
  var
  
negative.code:     Buf.WriteBuffer(TXT[1], Length(TXT) * SizeOf(Char));
      Ss.Text := TXT;
      CheckEquals(
        TBase64Encoder.New(TXT).AsString,
        TBase64StreamEncoded.New(TDataStream.New(Buf)).AsString,
        'Test Stream'
      );
      CheckEquals(
        TBase64Encoder.New(TXT).AsString,
        TBase64StreamEncoded.New(TDataStream.New(TXT)).AsString,
        'Test String'
      );
      CheckEquals(
        TBase64Encoder.New(TXT+#13#10).AsString,
        TBase64StreamEncoded.New(TDataStream.New(Ss)).AsString,
        'Test Strings'
      );
    finally
  