Qt 5.7 introduces many new features and improvements as well as bugfixes
over the 5.6.x series. Also, there is a change in the licensing terms.
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.7 series is binary compatible with the 5.6.x series.
Applications compiled for 5.6 will continue to run with 5.7.

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.

****************************************************************************
*                          Important License Changes                       *
****************************************************************************

  This module is no longer available under LGPLv2.1. The libraries are
  now available under the following licenses:
    * Commercial License
    * GNU General Public License v2.0 (LICENSE.GPL2) and later
    * GNU Lesser General Public License v3.0 (LICENSE.LGPL3)

  The tools are now available under the following licenses:
    * Commercial License
    * GNU General Public License 3.0 (LICENSE.GPL3) with exceptions
      described in The Qt Company GPL Exception 1.0 (LICENSE.GPL3-EXCEPT)

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

QtBluetooth
-----------

 - Added API for Bluetooth Low Energy Peripheral support. This new API is
   a Technology Preview and currently only supported on BlueZ.
 - [QTBUG-52428] Added QLowEnergyConnectionParameters class to enable
   adjustment of BTLE connection parameters
 - Added operator!= for QBluetoothUuid
 - Added Bluetooth Low Energy signed write support on Linux/BlueZ and Android

****************************************************************************
*                      Platform Specific Changes                           *
****************************************************************************

iOS/tvOS
--------

 - Added support for QtBluetooth on tvOS.
