anchor.diff:  procedure TCompactProtocolImpl.WriteDouble( const dub: Double);
   var data : TBytes;
   begin
  -  SetLength( data, 8);
     fixedLongToBytes( DoubleToInt64Bits(dub), data);
     Transport.Write( data);
   end;
  
positive.code: {$ENDIF}
  
  
  initialization
    {$IFDEF Debug}
    TestDoubleToInt64Bits;
    TestZigZag;
    {$ENDIF}
  
  end.
  
negative.code: // Convert a Int64 into 8 little-endian bytes in buf
  class procedure TCompactProtocolImpl.fixedLongToBytes( const n : Int64; var buf : TBytes);
  begin
    SetLength( buf, 8);
    buf[0] := Byte( n         and $FF);
    buf[1] := Byte((n shr 8)  and $FF);
    buf[2] := Byte((n shr 16) and $FF);
  