anchor.diff:  uses
   {$IFDEF HAS_UNITSCOPE}
     System.Classes,
  +  System.StrUtils,
     System.SysUtils,
   {$ELSE}
     Classes,
  +  StrUtils,
     SysUtils,
   {$ENDIF HAS_UNITSCOPE}
     HlpHashLibTypes,
  
positive.code: {$IFDEF DEBUG}
      Check(a_in, 1, 4);
  {$ENDIF DEBUG}
      StrtoProcess := AnsiUpperCase(TBitConverter.ToString(a_in));
  {$IFNDEF DELPHI}
      StringList := TStringList.Create();
      StringList.StrictDelimiter := True;
      try
        StringList.Delimiter := '-';
        StringList.DelimitedText := StrtoProcess;
        System.SetLength(ar, StringList.Count);
        for LowVal := 0 to StringList.Count - 1 do
          ar[LowVal] := StringList.Strings[LowVal];
      finally
        StringList.Free;
      end;
  
  {$ELSE}
      ar := TConverters.SplitString(StrtoProcess, '-');
  
  {$ENDIF DELPHI}
      hex := '';
      I := 0;
  
  
negative.code:   TConverters = class sealed(TObject)
  
    strict private
      class function SplitString(const S: String; Delimiter: Char)
        : THashLibStringArray; static;
  
  {$IFDEF DEBUG}
      class procedure Check(a_in: THashLibByteArray;
        a_in_size, a_out_size: Int32); overload; static;
  {$ENDIF DEBUG}
      class procedure swap_copy_str_to_u32(src: Pointer; src_index: Int32;
        dest: Pointer; dest_index: Int32; length: Int32); static;
  