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                                        *
****************************************************************************

QtPositioning
-------------

 - Added support for tvOs to iOS/OS X positioning engine
 - Added qHash() function for QGeoCoordinate
 - Fixed negative QGeoCoordinate.azimuthTo results
 - Added experimental support for GeoPosition API on Windows desktop
 running Windows 8 or later

QtLocation
----------

 - [QTBUG-47025] Added option to hide map data copyright information
 - Adjusted minimum map zoom level to prevent gray bounds. It prevents the map
 from being smaller than the canvas size.
 - Fixed several internal performance issues
