anchor.diff:  // https://docs.microsoft.com/it-it/windows/desktop/FileIO/naming-a-file#basic_naming_conventions
   function SanitizeFileName(const aSrc: String) : String;
   
  -function GetTimeStampForFileName(const aInstant : TDateTime): string;
  +function GetTimeStampForFileName(const aInstant : TDateTime; const aAddTime : boolean = true): string;
   
   // encode a file to base64
   procedure EncodeFileToBase64(const aFullPathInputFile: String; out aOutputData: String);
   procedure DecodeBase64ToFile(const aInputData : String; const aFullPathOutputFile: String);
  +
  +procedure AddUTF8BOMToFileStream (aFileStream : TFileStream);
   
   function IsRunningAsRoot : boolean;
   
  
positive.code:   {$ifdef windows}shlobj, registry, winutils,{$else}LazUTF8,{$endif}
    {$ifdef linux}initc, ctypes, BaseUnix,{$endif}
    mMathUtility;
  
  {$ifdef linux}
  function sysconf(i:cint):clong;cdecl;external name 'sysconf';
  
negative.code: {$ENDIF}
  end;
  
  function GetTimeStampForFileName(const aInstant: TDateTime; const aAddTime : boolean = true): string;
  var
    year, month, day : word;
    hour, minute, second, millisecond : word;
  begin
    DecodeDate(aInstant, year, month, day);
    DecodeTime(aInstant, hour, minute, second, millisecond);
    Result := AddZerosFront(year, 4) + AddZerosFront(month, 2) + AddZerosFront(day, 2);
    if aAddTime then
      Result := Result  + '-' + AddZerosFront(hour, 2) + AddZerosFront(minute, 2) + AddZerosFront(second, 2);
  end;
  
  procedure EncodeFileToBase64(const aFullPathInputFile: String; out aOutputData: String);
  