anchor.diff:  var
     NewData: PByte;
     NewSize: Integer;
  -  NewMag: TMagnitude;
   begin
     NewSize := (RequiredSize + 3) and BigInteger.CapacityMask;
  -  // $$RV: debug
  -  SetLength(FData, NewSize);
  -//  NewData := AllocMem(NewSize * CLimbSize + SizeOf(TDynArrayRec));
  -//  PDynArrayRec(NewData).RefCnt := 1;
  -//  PDynArrayRec(NewData).Length := NewSize;
  -//  FData := NewData + SizeOf(TDynArrayRec);
  +  NewData := AllocMem(NewSize * CLimbSize + SizeOf(TDynArrayRec));
  +  PDynArrayRec(NewData).RefCnt := 1;
  +  PDynArrayRec(NewData).Length := NewSize;
  +  PByte(FData) := NewData + SizeOf(TDynArrayRec);
   end;
   
   { BigInteger }
  
positive.code:     /// <summary>Tries to parse the specified string into a valid BigInteger value in the specified numeric base.
      ///   Returns False if this failed.</summary>
      /// <param name="S">The string that represents a big integer value in the specified numeric base.</param>
      /// <param name="Base">The numeric base that is assumed when parsing the string. Valid values are 2..36.</param>
      /// <param name="Value">The resulting BigInteger, if the parsing succeeds. Value is undefined if the
      ///   parsing fails.</param>
      /// <returns>Returns True if S could be parsed into a valid BigInteger in Res. Returns False on failure.</returns>
      class function TryParse(const S: string; ABase: TNumberBase; var AValue: BigInteger): Boolean; overload; static;
  
      // -------------------------------------------------------------------------------------------------------------//
  
negative.code:       Inc(N);
        Inc(P);
      end;
      Value := Value * CIntPowersOfTen[N] + Cumulative;
    end;
    Result := True;
  end;
  