anchor.diff:      end;
     end;
   
  -  NewSize := FindSize(PLimb(ResData), ResSize);
  +  NewSize := ActualSize(PLimb(ResData), ResSize);
     if NewSize = 0 then
     begin
       Result.FSize := 0;
  
positive.code:     Length: NativeInt;
    end;
  
    Swapper = class
      class procedure Swap<T>(var A, B: T); inline;
    end;
  
  // This fine for simple types, BUT DO NOT USE THIS FOR MANAGED RECORDS like BigInteger!
  // It will add an extra implicit try-finally around the code, even if there is already
  // a try-finally around the enclosing ("calling") code.
  // Directly swapping the values in code does not create the try-finally.
  class procedure Swapper.Swap<T>(var A, B: T);
  var
    Temp: T;
  begin
    Temp := A;
    A := B;
    B := Temp;
  end;
  
  function FindSize(Limb: PLimb; Size: Integer): Integer;
  {$IFDEF PUREPASCAL}
  begin
    while (Size > 0) and (Limb[Size - 1] = 0) do
  
negative.code: var
    LCount, LTail: Integer;
    Sum: NativeUInt;
    I: Integer;
    L: PLimb;
  begin
    if LSize < RSize then
    begin
      I := LSize;
      LSize := RSize;
      RSize := I;
      L := Left;
      Left := Right;
      Right := L;
    end;
  
    Sum := 0;
  