Qt 5.5.1 is a bug-fix release. It maintains both forward and backward
compatibility (source and binary) with Qt 5.5.0.

For more details, refer to the online documentation included in this
distribution. The documentation is also available online:

  http://doc.qt.io/qt-5/index.html

The Qt version 5.5 series is binary compatible with the 5.4.x series.
Applications compiled for 5.4 will continue to run with 5.5.

Some of the changes listed in this file include issue tracking numbers
corresponding to tasks in the Qt Bug Tracker:

  https://bugreports.qt.io/

Each of these identifiers can be entered in the bug tracker to obtain more
information about a particular change.

****************************************************************************
*                          Library                                         *
****************************************************************************

 - Improved the Terminal example:
   * The example has a permanent status message now.

 - QSerialPortInfo:
   * [QTBUG-46875] Fixed crash while enumerating available ports
     on OS X 10.10
   * [QTBUG-47127] Available serial port information is not duplicated
     anymore on Windows.
   * [QTBUG-47210] Now do not return devices which are not serial ports
     on FreeBSD.
   * Now returns the full information about the serial port on FreeBSD.

 - QSerialPort:
   * Fixed the serial ports closing and data reading on WinCE.
   * [QTBUG-45338] Fixed opening of the serial ports when using the
     App Sandbox on OS X.
   * [QTBUG-46993] Fixed opening of the serial ports on Windows, which
     are provided by the "Exar VCP" driver.
