summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeter Yard <peter.yard@nokia.com>2011-08-30 10:18:10 +1000
committerQt by Nokia <qt-info@nokia.com>2011-08-30 05:11:01 +0200
commit6f390c5d4abd460e80c6c07cc0c885d53db865c1 (patch)
tree1aaaaeb7f8288660872a1e5dac580c48dd38344d
parent19c8ffcb012f7a55f7207c8834cb03cf12772ed8 (diff)
Import sensors docs from Mobility.
Also bring in some examples that are referenced in the docs. Change-Id: I74560c62be447dda06ccfd8996818225df007c2e Reviewed-on: http://codereview.qt.nokia.com/3828 Reviewed-by: Lincoln Ramsay <lincoln.ramsay@nokia.com>
-rw-r--r--doc/src/examples/sensors.qdoc166
-rw-r--r--doc/src/images/sensor_explorer.pngbin0 -> 52889 bytes
-rw-r--r--doc/src/images/sensors-coordinates.jpgbin0 -> 43508 bytes
-rw-r--r--doc/src/images/sensors-coordinates2.jpgbin0 -> 58471 bytes
-rw-r--r--doc/src/images/sensors-coordinates3.jpgbin0 -> 47920 bytes
-rw-r--r--doc/src/images/sensors-dynamic.pngbin0 -> 34911 bytes
-rw-r--r--doc/src/images/sensors-geo-vs-raw-magnetism.jpgbin0 -> 171856 bytes
-rw-r--r--doc/src/images/sensors-orientation.jpgbin0 -> 39716 bytes
-rw-r--r--doc/src/images/sensors-overview.pngbin0 -> 9670 bytes
-rw-r--r--doc/src/images/sensors-rotation-anim.gifbin0 -> 296580 bytes
-rw-r--r--doc/src/images/sensors-rotation.jpgbin0 -> 36653 bytes
-rw-r--r--doc/src/images/sensors-rotation2.jpgbin0 -> 39953 bytes
-rw-r--r--doc/src/images/sensors-rotation3.jpgbin0 -> 31417 bytes
-rw-r--r--doc/src/images/sensors-sides.jpgbin0 -> 48614 bytes
-rw-r--r--doc/src/images/sensors-sides2.jpgbin0 -> 22706 bytes
-rw-r--r--doc/src/images/sensors-static.pngbin0 -> 23472 bytes
-rw-r--r--doc/src/plugins/qml-sensors.qdoc99
-rw-r--r--doc/src/sensors-dynamic.diabin0 -> 2058 bytes
-rw-r--r--doc/src/sensors-overview.diabin0 -> 1349 bytes
-rw-r--r--doc/src/sensors-static.diabin0 -> 1814 bytes
-rw-r--r--doc/src/sensors.qdoc524
-rw-r--r--doc/src/snippets/sensors/creating.cpp64
-rw-r--r--doc/src/snippets/sensors/main.cpp46
-rw-r--r--doc/src/snippets/sensors/mybackend.h59
-rw-r--r--doc/src/snippets/sensors/plugin.cpp69
-rw-r--r--doc/src/snippets/sensors/sensors.pro9
-rw-r--r--doc/src/snippets/sensors/start.cpp59
-rw-r--r--doc/src/snippets/snippets.pro3
-rw-r--r--examples/examples.pro3
-rw-r--r--examples/sensors/accel/accel.pro (renamed from examples/accel/accel.pro)0
-rw-r--r--examples/sensors/accel/main.cpp (renamed from examples/accel/main.cpp)0
-rw-r--r--examples/sensors/cubehouse/camera.cpp1051
-rw-r--r--examples/sensors/cubehouse/camera.h166
-rw-r--r--examples/sensors/cubehouse/cube.h89
-rw-r--r--examples/sensors/cubehouse/cubehouse.pro31
-rw-r--r--examples/sensors/cubehouse/cubehouse.qrc8
-rw-r--r--examples/sensors/cubehouse/light.cpp675
-rw-r--r--examples/sensors/cubehouse/light.h141
-rw-r--r--examples/sensors/cubehouse/lighting.vsh121
-rw-r--r--examples/sensors/cubehouse/lightmodel.cpp243
-rw-r--r--examples/sensors/cubehouse/lightmodel.h108
-rw-r--r--examples/sensors/cubehouse/main.cpp57
-rw-r--r--examples/sensors/cubehouse/material.cpp331
-rw-r--r--examples/sensors/cubehouse/material.fsh47
-rw-r--r--examples/sensors/cubehouse/material.h101
-rw-r--r--examples/sensors/cubehouse/painter.cpp83
-rw-r--r--examples/sensors/cubehouse/painter.h115
-rw-r--r--examples/sensors/cubehouse/painter_fixed.cpp242
-rw-r--r--examples/sensors/cubehouse/painter_shader.cpp159
-rw-r--r--examples/sensors/cubehouse/qtlogo.pngbin0 -> 13923 bytes
-rw-r--r--examples/sensors/cubehouse/teapot.h4550
-rw-r--r--examples/sensors/cubehouse/texture.fsh51
-rw-r--r--examples/sensors/cubehouse/view.cpp291
-rw-r--r--examples/sensors/cubehouse/view.h94
-rw-r--r--examples/sensors/grueapp/grueapp.pro5
-rw-r--r--examples/sensors/grueapp/main.cpp89
-rw-r--r--examples/sensors/grueplugin/grueplugin.pri8
-rw-r--r--examples/sensors/grueplugin/grueplugin.pro15
-rw-r--r--examples/sensors/grueplugin/gruesensor.cpp143
-rw-r--r--examples/sensors/grueplugin/gruesensor.h79
-rw-r--r--examples/sensors/grueplugin/gruesensor_p.h66
-rw-r--r--examples/sensors/grueplugin/gruesensorimpl.cpp135
-rw-r--r--examples/sensors/grueplugin/gruesensorimpl.h74
-rw-r--r--examples/sensors/grueplugin/main.cpp82
-rw-r--r--examples/sensors/grueplugin/version.pri1
-rw-r--r--examples/sensors/sensor_explorer/explorer.cpp450
-rw-r--r--examples/sensors/sensor_explorer/explorer.h83
-rw-r--r--examples/sensors/sensor_explorer/explorer.ui406
-rw-r--r--examples/sensors/sensor_explorer/main.cpp50
-rw-r--r--examples/sensors/sensor_explorer/sensor_explorer.pro16
-rw-r--r--examples/sensors/sensors.pro9
-rw-r--r--qtsensors.pro5
72 files changed, 11569 insertions, 2 deletions
diff --git a/doc/src/examples/sensors.qdoc b/doc/src/examples/sensors.qdoc
new file mode 100644
index 00000000..3363642b
--- /dev/null
+++ b/doc/src/examples/sensors.qdoc
@@ -0,0 +1,166 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the documentation of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:FDL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Free Documentation License
+** Alternatively, this file may be used under the terms of the GNU Free
+** Documentation License version 1.3 as published by the Free Software
+** Foundation and appearing in the file included in the packaging of this
+** file.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \example sensors/grueplugin
+ \title Grue Plugin
+
+ The Grue plugin example demonstrates the creation of a new sensor type,
+ a sensor backend and plugin for the sensors library. Related to this example
+ is the \l{sensors/grueapp}{Grue Application} example.
+
+ \tableofcontents
+
+ \section1 Grue Sensor Type
+
+ The files for this are:
+
+ \list
+ \o gruesensor.h
+ \o gruesensor_p.h
+ \o gruesensor.cpp
+ \endlist
+
+ First up is the sensor type. This is the interface for sensors that report
+ on your likelihood of being eaten by a Grue. Such sensors are very important
+ to adventurers, particularly if they are going into dark places as this is
+ where Grues live.
+
+ The interface is a simple one. It provides only 1 piece of information, your
+ chance of being eaten. For the details on how this is property should be
+ interpreted please see the documentation in gruesensor.cpp.
+
+ This example was created using the make_sensor.pl script which can be found in
+ src/sensors. As such, it contains some generated code that defines the convenience
+ classes GrueFilter and GrueSensor.
+
+ \section1 Grue Sensor Backend
+
+ The files for this are:
+
+ \list
+ \o gruesensorimpl.h
+ \o gruesensorimpl.cpp
+ \endlist
+
+ The Grue sensor needs a backend before it can be used. The backend provided
+ is rather basic and it relies on some kind of light sensor to work but it
+ gets the job done. If new hardware that can detect the actual presence of Grues
+ becomes available a backend could be created that supports this hardware and
+ applications using the Grue sensor would be able to use it without any changes.
+
+ There are a few mandatory parts to a backend. They are the start and stop methods
+ and the setReading call. The start and stop methods are used to start and stop
+ any underlying hardware. In the case of this backend they start and stop a
+ light sensor. In the start method, the backend should be sure to call the
+ sensorStopped() or sensorBusy() methods if it cannot start.
+
+ \snippet ../../examples/sensors/grueplugin/gruesensorimpl.cpp start
+
+ The setReading method is needed so that the sensors library knows where the
+ readings are coming from. This backend has a local copy of the reading so
+ it passes a pointer to the function.
+
+ \snippet ../../examples/sensors/grueplugin/gruesensorimpl.cpp setReading
+
+ However it is also possible to pass null to the setReading method in which
+ case the sensors library will create an instance and return a pointer.
+
+ \code
+ // Create a reading instance for us to use
+ m_reading = setReading<GrueSensorReading>(0);
+ \endcode
+
+ The Grue sensor backend also supplies some metadata.
+
+ The backend checks 2 things, how dark it is and how long you have been in the dark.
+ It uses the readingChanged() signal to know when to check the light sensor's
+ value. Once it is dark, it uses a timer to increase your chance of being eaten.
+
+ \section1 Grue Sensor Plugin
+
+ The files for this are:
+
+ \list
+ \o main.cpp
+ \endlist
+
+ The Grue sensor backend is delivered as a plugin. The plugin has a factory object
+ that registers the types available and does the actual instantiation of the backend.
+
+ \sa {sensors/grueapp}{Grue Application}
+*/
+
+
+/*!
+ \example sensors/grueapp
+ \title Grue Application
+
+ The Grue application example demonstrates the use of the Grue sensor which
+ was defined and implemented by the \l{sensors/grueplugin}{Grue Plugin} example.
+ The Grue application is a commandline application. It is significant to note that
+ there is no link-time dependency on the Grue plugin. The Grue application uses
+ the generic access feature of the Sensors API.
+
+ \sa {sensors/grueplugin}{Grue Plugin}
+*/
+
+
+/*!
+ \example sensors/cubehouse
+ \title Cube House
+
+ \image cubehouse.png
+
+ The Cube House example demonstrates the use of the accelerometer to drive a camera
+ to create a pseudo-3D effect. It also demonstrates the use of a filter to smooth
+ out the accelerometer values.
+
+ The accelerometer is created and the filter is added.
+
+ \snippet ../../examples/sensors/cubehouse/view.cpp accelerometer
+
+ When new values are available, the view is recalculated.
+
+ \snippet ../../examples/sensors/cubehouse/view.cpp accelerometer2
+
+ The filter is defined like this.
+
+ \snippet ../../examples/sensors/cubehouse/view.cpp smoothed
+*/
+
+
+/*!
+ \example sensors/sensor_explorer
+ \title Sensor Explorer
+
+ \image sensor_explorer.png
+
+ The Sensor Explorer example demonstrates how to read the meta-data of available sensors.
+ It was designed as a debugging aid.
+*/
+
diff --git a/doc/src/images/sensor_explorer.png b/doc/src/images/sensor_explorer.png
new file mode 100644
index 00000000..91d255ec
--- /dev/null
+++ b/doc/src/images/sensor_explorer.png
Binary files differ
diff --git a/doc/src/images/sensors-coordinates.jpg b/doc/src/images/sensors-coordinates.jpg
new file mode 100644
index 00000000..e2e98908
--- /dev/null
+++ b/doc/src/images/sensors-coordinates.jpg
Binary files differ
diff --git a/doc/src/images/sensors-coordinates2.jpg b/doc/src/images/sensors-coordinates2.jpg
new file mode 100644
index 00000000..8dd43a21
--- /dev/null
+++ b/doc/src/images/sensors-coordinates2.jpg
Binary files differ
diff --git a/doc/src/images/sensors-coordinates3.jpg b/doc/src/images/sensors-coordinates3.jpg
new file mode 100644
index 00000000..02634000
--- /dev/null
+++ b/doc/src/images/sensors-coordinates3.jpg
Binary files differ
diff --git a/doc/src/images/sensors-dynamic.png b/doc/src/images/sensors-dynamic.png
new file mode 100644
index 00000000..d2ba937d
--- /dev/null
+++ b/doc/src/images/sensors-dynamic.png
Binary files differ
diff --git a/doc/src/images/sensors-geo-vs-raw-magnetism.jpg b/doc/src/images/sensors-geo-vs-raw-magnetism.jpg
new file mode 100644
index 00000000..272fa310
--- /dev/null
+++ b/doc/src/images/sensors-geo-vs-raw-magnetism.jpg
Binary files differ
diff --git a/doc/src/images/sensors-orientation.jpg b/doc/src/images/sensors-orientation.jpg
new file mode 100644
index 00000000..245533d5
--- /dev/null
+++ b/doc/src/images/sensors-orientation.jpg
Binary files differ
diff --git a/doc/src/images/sensors-overview.png b/doc/src/images/sensors-overview.png
new file mode 100644
index 00000000..29e9ebd4
--- /dev/null
+++ b/doc/src/images/sensors-overview.png
Binary files differ
diff --git a/doc/src/images/sensors-rotation-anim.gif b/doc/src/images/sensors-rotation-anim.gif
new file mode 100644
index 00000000..22c678d5
--- /dev/null
+++ b/doc/src/images/sensors-rotation-anim.gif
Binary files differ
diff --git a/doc/src/images/sensors-rotation.jpg b/doc/src/images/sensors-rotation.jpg
new file mode 100644
index 00000000..1bd1b14b
--- /dev/null
+++ b/doc/src/images/sensors-rotation.jpg
Binary files differ
diff --git a/doc/src/images/sensors-rotation2.jpg b/doc/src/images/sensors-rotation2.jpg
new file mode 100644
index 00000000..1bf34fee
--- /dev/null
+++ b/doc/src/images/sensors-rotation2.jpg
Binary files differ
diff --git a/doc/src/images/sensors-rotation3.jpg b/doc/src/images/sensors-rotation3.jpg
new file mode 100644
index 00000000..d69a3e19
--- /dev/null
+++ b/doc/src/images/sensors-rotation3.jpg
Binary files differ
diff --git a/doc/src/images/sensors-sides.jpg b/doc/src/images/sensors-sides.jpg
new file mode 100644
index 00000000..8e842242
--- /dev/null
+++ b/doc/src/images/sensors-sides.jpg
Binary files differ
diff --git a/doc/src/images/sensors-sides2.jpg b/doc/src/images/sensors-sides2.jpg
new file mode 100644
index 00000000..db66a9b5
--- /dev/null
+++ b/doc/src/images/sensors-sides2.jpg
Binary files differ
diff --git a/doc/src/images/sensors-static.png b/doc/src/images/sensors-static.png
new file mode 100644
index 00000000..657aaad2
--- /dev/null
+++ b/doc/src/images/sensors-static.png
Binary files differ
diff --git a/doc/src/plugins/qml-sensors.qdoc b/doc/src/plugins/qml-sensors.qdoc
new file mode 100644
index 00000000..15f4c993
--- /dev/null
+++ b/doc/src/plugins/qml-sensors.qdoc
@@ -0,0 +1,99 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the documentation of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:FDL$
+** GNU Free Documentation License
+** Alternatively, this file may be used under the terms of the GNU Free
+** Documentation License version 1.3 as published by the Free Software
+** Foundation and appearing in the file included in the packaging of
+** this file.
+**
+** Other Usage
+** Alternatively, this file may be used in accordance with the terms
+** and conditions contained in a signed written agreement between you
+** and Nokia.
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \group qml-sensors
+ \title QML Sensors API Plugin
+ QML Support for the QtMobility Project Sensors API.
+*/
+
+/*!
+ \page qml-sensors.html
+
+ \title Sensors QML Plugin
+
+ \brief A QML plugin for the QtMobility Project Sensors API.
+
+ \section1 Overview
+
+ The QML Sensors Plugin provides an easy to use interface to the Sensors API.
+ It enables us to receive sensor events and to read current values from
+ sensors.
+
+ The plugin contains many sensor types and access functions to read values
+ from them. As an example consider the orientation sensor. The orientation
+ example simply displays text on-screen to show the current orientation.
+
+ The QML code that reads the value is quite simple. Here we see a QML component
+ \e orientation declared which is an \l OrientationSensor element. First
+ the sensor is started by setting the \l {Sensor::active}{active} property
+ to \e true. The element receives a signal when the reading changes and it
+ is picked up by the \e onReadingChanged slot. Now the
+ \l {OrientationSensor::reading}{reading} property of this element can be
+ used to extract the current orientation so that it can be compared against
+ the defined values of various orientations in the \l OrientationReading
+ element.
+
+ \qml
+ OrientationSensor {
+ id: orientation
+ active: true
+
+ onReadingChanged: {
+
+ if (reading.orientation == OrientationReading.FaceUp)
+ content.state = "FaceUp";
+
+ // ... more tests for different orientations ...
+ }
+ }
+
+ \endqml
+
+ Other sensors can be treated in a similar manner. For example, the \l Compass
+ sensor could have almost identical coding
+
+ \qml
+ Compass {
+ id: compass
+ active: true
+
+ onReadingChanged: {
+ compassHeading.text = reading.azimuth;
+
+ // ...
+ }
+ }
+ \endqml
+
+ \section1 QML Elements
+ \annotatedlist qml-sensors_type
+ \annotatedlist qml-sensors_reading
+
+*/
+
+
diff --git a/doc/src/sensors-dynamic.dia b/doc/src/sensors-dynamic.dia
new file mode 100644
index 00000000..d5cb8ac7
--- /dev/null
+++ b/doc/src/sensors-dynamic.dia
Binary files differ
diff --git a/doc/src/sensors-overview.dia b/doc/src/sensors-overview.dia
new file mode 100644
index 00000000..fb3dc66d
--- /dev/null
+++ b/doc/src/sensors-overview.dia
Binary files differ
diff --git a/doc/src/sensors-static.dia b/doc/src/sensors-static.dia
new file mode 100644
index 00000000..cd5d3d3f
--- /dev/null
+++ b/doc/src/sensors-static.dia
Binary files differ
diff --git a/doc/src/sensors.qdoc b/doc/src/sensors.qdoc
new file mode 100644
index 00000000..6dc1efbd
--- /dev/null
+++ b/doc/src/sensors.qdoc
@@ -0,0 +1,524 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the documentation of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:FDL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Free Documentation License
+** Alternatively, this file may be used under the terms of the GNU Free
+** Documentation License version 1.3 as published by the Free Software
+** Foundation and appearing in the file included in the packaging of this
+** file.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+\page sensors-api.html
+\title Sensors
+\brief The Sensors API provides access to sensors.
+\ingroup mobility
+\ingroup technology-apis
+
+
+The Sensors API is primarily concerned with low-level, real-time sensors such as
+the accelerometer although there are higher-level, event-driven sensors represented too.
+
+\tableofcontents
+
+\section1 Sensor Types
+
+On a device there can be many types of sensors. Not all of the types that the Sensors API
+supports may be available. There may also be types available that are not defined in the
+Sensors API. You can find the sensor types available on a device using the
+\l QSensor::sensorTypes() function.
+
+For a list of built-in sensor types, see the \l{Sensor Classes} section below.
+
+\section1 Common Conventions
+
+Unless otherwise specified, sensors shall use the
+\l{http://en.wikipedia.org/wiki/Cartesian_coordinate_system}{Right Hand Cartesian coordinate system}.
+
+\image sensors-coordinates.jpg
+
+To allow for measurements in all 6 directions, negative values are used.
+
+\image sensors-coordinates2.jpg
+
+Where rotation around an axis is used, the rotation shall be expressed as a Right Hand rotation.
+
+\image sensors-coordinates3.jpg
+
+In general, sensor data is oriented to the top of the device. If values are to be displayed on
+the screen the values may need to be transformed so that they match the user interface orientation. A sensor
+may define its data as being oriented to the UI. This will be noted in the documentation for the
+sensor.
+
+\image sensors-sides2.jpg
+
+\section1 Using a Sensor
+
+The life cycle of a sensor is typically:
+
+\list
+\o Create an instance of QSensor or one of its sub-classes on the stack or heap.
+\o Setup as required by the application.
+\o Start receiving values.
+\o Sensor data is used by the application.
+\o Stop receiving values.
+\endlist
+
+Here is an example of creating a sensor on the heap and on the stack.
+
+\snippet snippets/sensors/creating.cpp Creating a sensor
+
+\section1 Accessing sensor data in a generic fashion
+
+The preferred way to deal with sensor data is via the \l{Reading Classes}.
+However, sometimes this may not be possible. For example, you may be deploying
+an application to a device that has a new sensor type but no C++ header
+describing the reading class is available.
+
+Thanks to Qt's property system you can still access the sensor data. You need to know
+3 pieces of information in order to do this:
+
+\list
+\o The sensor type.
+\o The property name or index.
+\o The property type or a comparable type.
+\endlist
+
+For example, here is an example of how you can access a property of the accelerometer.
+This code does not require any compile-time links to \l QAccelerometer or
+\l QAccelerometerReading.
+
+\snippet snippets/sensors/start.cpp Starting a sensor
+
+You can discover all of this information at runtime too. The sensor_explorer example
+shows you information about available sensors.
+
+\section1 Platform notes
+
+\section2 S60 3rd Edition
+
+Note that support for sensors in S60 3.1 device is extremely limited due to the native API.
+Only the accelerometer is supported and only a few devices.
+
+Some devices running S60 3.2 support a newer native API and therefore support more sensors.
+
+More information about these platforms can be found \l{http://wiki.forum.nokia.com/index.php/Nokia_Sensor_APIs}{here}.
+
+Note that timestamps on this platform come from the system clock.
+Applications need to handle shifts in time caused by the user manually setting the clock or
+from the automatic time synchronization feature setting the clock.
+
+\section2 Symbian
+
+Most Symbian devices have their sensor data read via the Sensor Framework API. Some limitations
+appear in the Sensors API as a result.
+
+Only specific data rates can be selected. Setting an invalid data rate has no effect so applications
+that need to influence the used data rate should connect to the sensor, check the available data rates
+and select one as appropriate.
+
+Readings are delivered to the application via a queue. If the application blocks the event loop or otherwise
+interferes with the ability of the system to deliver readings (eg. by using up too much CPU time), they can
+get blocked in this queue. Since delayed readings are not useful, the system will drop readings as needed
+so that the application is always dealing with the most recent reading available. The application can tweak
+the policy by setting properties on the sensor.
+
+The default policy is to accept up to 100 readings from the system at once and to discard all but the last one.
+
+\code
+QAccelerometer sensor;
+sensor.setProperty("maximumReadingCount", 100);
+sensor.setProperty("processAllReadings", false);
+\endcode
+
+Applications that desire the original behaviour can set the maximumReadingCount to 1. Note that this does not
+guarantee that readings will not be dropped by the system. If the queue fills up, readings will be dropped.
+
+\code
+QAccelerometer sensor;
+sensor.setProperty("maximumReadingCount", 1);
+\endcode
+
+Larger maximumReadingCount values reduce the need for the lower-priority sensor daemon to get CPU timeslices.
+If the application is using lots of CPU but is still able to process readings quickly, it can request that
+all the fetched readings are processed.
+
+\code
+QAccelerometer sensor;
+sensor.setProperty("maximumReadingCount", 10);
+sensor.setProperty("processAllReadings", true);
+\endcode
+
+More information about the native API can be found \l{http://wiki.forum.nokia.com/index.php/Nokia_Sensor_APIs}{here}.
+
+Note that timestamps on this platform come from the system clock.
+Applications need to handle shifts in time caused by the user manually setting the clock or
+from the automatic time synchronization feature setting the clock.
+
+The ambient light sensor can only detect changes. Unlike all other sensors, it cannot report the "current value"
+so it is not possible to determine the current ambient light level.
+
+\section2 Maemo 5
+
+The N900 represents a unique device for the Sensors API. Unlike the Symbian and MeeGo platforms, sensor data is
+retrieved directly from the kernel and this has implications on the API.
+
+Axes are rotated when compared to Symbian or MeeGo devices. While Symbian and MeeGo devices orient their
+hardware sensors towards a portrait orientation, the N900 does not do this. Instead, it orients the hardware sensors
+towards its default landscape orientation. This has portability implications for applications that want to force the
+use of a particular screen orientation and use sensors. The following code shows how accelerometer values can be
+interpreted to ensure consistent results on the N900 as well as Symbian and MeeGo devices.
+
+\code
+#ifdef Q_WS_MAEMO_5
+ qreal x = reading->y();
+ qreal y = -reading->x();
+#else
+ qreal x = reading->x();
+ qreal y = reading->y();
+#endif
+ qreal z = reading->z();
+\endcode
+
+Alternatively, applications can set the environment variable \c N900_PORTRAIT_SENSORS to 1. This must be done
+before any Sensors API calls are made so the beginning of the main function is a good place to do it.
+
+\code
+int main(int argc, char **argv)
+{
+ qputenv("N900_PORTRAIT_SENSORS", "1");
+ ...
+\endcode
+
+Despite hardware that allows for multiple data rates and output ranges, the Sensors API does not allow access to
+these due to permissions issues.
+
+Readings are polled using a timer. If the application blocks the event loop or otherwise interferes with the
+ability of the timer to fire, readings will be missed. There are no queues so applications must ensure that
+they process the readings promptly (possibly saving them into a buffer for later processing if required).
+
+\section2 MeeGo
+
+The data rates offered by MeeGo are not tied to how fast the hardware runs.
+
+The default data rate for a sensor is likely to be low when compared to Symbian or Maemo 5. Applications should
+request a suitable data rate, taking care to avoid selecting invalid rates on other devices.
+
+Sensors may be suspended by the system in order to save power. Applications can avoid this by setting a property
+on the sensor object.
+
+\code
+QAccelerometer *accelerometer = new QAccelerometer(this);
+accelerometer->setProperty("alwaysOn", true);
+accelerometer->start();
+\endcode
+
+Unlike Symbian and N900, MeeGo does not currently provide initial readings. Thus, certain sensors must detect
+a change in value before a value can be reported. Examples include the orientation sensor and ambient light
+sensor.
+
+\section1 Front end, back end
+
+The Sensors API has a front end, for application developers to use and a back end,
+where device implementors write code to access their hardware. As an application
+developer you do not need to access the back end though it may be useful to understand
+how it works.
+
+Commands from the application are delivered through QSensor and then down to the
+device plugin. Data comes back through the QSensorReading class.
+
+\image sensors-overview.png
+
+More information about the back end can be found in \l{Sensors Backend}.
+
+\section1 Main Classes
+
+The primary classes that make up the Sensors API.
+
+\annotatedlist sensors_main
+
+\section1 Reading Classes
+
+The best way to access sensor data is via one of these classes.
+
+\annotatedlist sensors_reading
+
+\section1 Sensor Classes
+
+These classes provide convenience wrappers that reduce the need for casting.
+Each of these classes represents a sensor type that the Sensors API knows
+about. Note that additional types may be made available at run-time. See
+\l{Sensor Types} for more information.
+
+\annotatedlist sensors_type
+
+\section1 Filter Classes
+
+As with the sensor classes, these provide convenience wrappers that reduce
+the need for casting.
+
+\annotatedlist sensors_filter
+
+*/
+
+/*!
+\page sensors-backend.html
+\title Sensors Backend
+\brief The Sensors Backend connects the Sensors API to the platform services or hardware sensors.
+
+The Sensors Backend connects the Sensors API to the platform services or hardware sensors.
+
+\tableofcontents
+
+\section1 Overview
+
+\section1 Backend API
+
+QSensor instances talk to a backend object. Backends are usually supplied
+with the QtSensors library for a specific device although third party
+backends may be used as well. A backend may talk
+directly to hardware or it may talk to a system service. In some instances
+it may even talk to another sensor.
+An example of this is the orientation sensor backend that talks to an
+accelerometer to determine the orientation.
+
+There are also some \l{Sensors Backend Topics}{topics} specific to backend
+implementors.
+
+\section1 Backend Classes
+If you are making sensors available through the Sensors API, these are the
+classes to use.
+\annotatedlist sensors_backend
+
+\sa {Sensors Backend Topics}
+
+*/
+
+/*!
+\group sensors_backend_topics
+\title Sensors Backend Topics
+\generatelist related
+*/
+
+/*!
+\page creating-a-sensor-plugin.html
+\title Creating a sensor plugin
+\ingroup sensors_backend_topics
+
+\section1 How a sensor plugin is loaded
+
+Since sensor backends are created on demand, the sensor plugin is loaded and asked
+to register the sensor backends it handles. The plugin should implement
+QSensorPluginInterface::registerSensors() and call QSensorManager::registerBackend()
+to register available backends. Typically the plugin will also inherit from
+QSensorBackendFactory and implement
+QSensorBackendFactory::createBackend() in order to instantiate backends it has registered.
+
+The simplest plugin will have just once sensor backend although there is no reason
+that multiple sensor backends cannot be in a plugin.
+
+An example follows.
+
+\snippet snippets/sensors/plugin.cpp Plugin
+
+If you would like to build a backend into a library or application you can use the
+REGISTER_STATIC_PLUGIN() macro although it may not work in all situations as it
+uses static initialization.
+
+*/
+
+/*!
+\page determining-the-default-sensor-for-a-type.html
+\title Determining the default sensor for a type
+\ingroup sensors_backend_topics
+
+\section1 Multiple sensors can exist for a type
+
+Sensors was designed so that multiple sensors could exist for a given type. Why?
+Consider this example.
+
+The N900 has an accelerometer built-in. It also features bluetooth and can pair
+with a gaming controller that features an accelerometer. To a developer writing
+a game these two devices are conceptually the same type.
+
+\section1 Default sensor for a type
+
+To avoid the need to know (or check) what the default sensor for a type is, the system will
+use the default sensor for a type. Most of the time this is what the app developer wants to
+do. In cases where the app developer wants to select a specific sensor they must call the
+QSensor::setIdentifier() method before they start the sensor so that the appropriate backend
+is used.
+
+From a system perspective though, selecting which sensor should be the default gets tricky.
+The sensors library uses the first registered identifier as the default. This means that the
+order in which sensor backends are registered is important so the system will allow a config
+file to determine the default instead.
+
+\section1 Sensors.conf
+
+The config file that determines the default sensor for a type is called Sensors.conf. If present,
+it is located in /etc/xdg/Nokia. It is read using QSettings so it has the standard formatting
+of a QSettings .conf file.
+
+The settings live in the Default group and the general format is:
+\code
+type = identifier
+\endcode
+
+An example Sensors.conf that ensures the N900 accelerometer is used as the default no matter the
+order in which backends were registered is presented here.
+
+\code
+[Default]
+QAccelerometer = n900.accelerometer
+\endcode
+
+If Sensors.conf specifies an identifier that is not registered then the system will fall back to
+the first registered identifier as the default.
+
+Note that there is special case logic to prevent the generic plugin's backends from becoming the
+default when another backend is registered for the same type. This logic means that a backend
+identifier starting with \c{generic.} will only be the default if no other backends have been
+registered for that type or if it is specified in \c{Sensors.conf}.
+
+*/
+
+/*!
+\page dynamic-sensor-backend-registration.html
+\title Dynamic Sensor Backend Registration
+\ingroup sensors_backend_topics
+
+\section1 Static Backend Registration
+
+Sensor backends are generally registered statically. The registration happens when the sensors
+library is first used and the registration remains in effect while the program runs.
+
+\image sensors-static.png
+
+Statically registered backends may still exhibit some dynamic behaviour as the
+QSensorBackendFactory is free to return 0 to indicate that a backend cannot be created.
+
+\section1 Dynamic Backend Registration
+
+While static registration is fine for most backends there are some situations where this is
+problematic.
+
+The clearest example is backends that represent non-fixed hardware. As an example, lets consider
+a game controller that is connected via Bluetooth. As there may be more than one game controller
+in range of the phone, the program wants to record that a specific game controller should be used.
+If the backend had been registered statically there would have been no unique information about
+the controller. Instead, the registration is delayed until the controller is seen.
+
+\image sensors-dynamic.png
+
+\section1 Suggested Registration Policy
+
+A backend for fixed hardware should be registered immediately. Applications can see that the
+sensor can be used.
+
+A backend for remote hardware should not be registered immediately. Applications can see that
+the sensor cannot be used. When the remote hardware becomes available the backend should be
+registered. Applications can see that the sensor is now available.
+
+If it is necessary to return 0 from a factory for a backend that was registered, the backend
+should be unregistered. Applications can see that the sensor is no longer available. If the
+factory can create the backend again it should be registered. Applications can see that the
+sensor is available again.
+
+When the underlying hardware is no longer available, the backend should be deregistered.
+Existing instances of the backend should report error states to the application but should
+handle the situation gracefully.
+
+*/
+
+/*!
+\page qml-sensors.html
+\title Sensors QML Plugin
+\brief A QML plugin for the QtMobility Project Sensors API.
+
+\section1 Overview
+
+The identifying string for this component is \e {"QtMobility.sensors"}.
+Use this in the QML \e {import} statement.
+
+The Sensors QML Plugin registers the C++ Sensors classes directly to the QML environment.
+This causes some limitations due to the use of types that do not work in the QML environment.
+See \l{Sensors QML Limitations}{below} for a list of the known limitations.
+
+See \l Sensors for more information about the Sensors API.
+
+\section1 Sensors QML Limitations
+
+The following limitations affect the Sensors QML bindings for Qt Mobility 1.1 and 1.2.
+
+\list 1
+\o The QSensor::sensorid property cannot be set because QML does not support QByteArray.
+ This means that it is not possible to specify a particular sensor when two or more have
+ been registered with the same type.
+\o The QSensor::availableDataRates property cannot be used because QML does not support \l qrangelist.
+\o The QSensor::outputRanges property cannot be used because QML does not support \l qoutputrangelist.
+\o The QLightSensor::fieldOfView property cannot be used because QML cannot access dynamic properties.
+\o The QMagnetometer::returnGeoValues property cannot be used because QML cannot access dynamic properties.
+\o The QRotationSensor::hasZ property cannot be used because QML cannot access dynamic properties.
+\o The QTapSensor::returnDoubleTapEvents property cannot be used because QML cannot access dynamic properties.
+\endlist
+
+\section1 QML Sensor Elements
+
+These elements represent specific types of sensors.
+
+\annotatedlist qml-sensors_type
+
+\section1 QML Reading Elements
+
+The data from a sensor comes through a reading class.
+
+\annotatedlist qml-sensors_reading
+
+*/
+
+/*!
+\page meego-integration-notes.html
+\title MeeGo Integration Notes
+\ingroup sensors_backend_topics
+
+\section1 MeeGo Integration Notes
+
+The implementation of the API builds on top of the MeeGo Sensor Framework
+that provides all the sensors specified in 1.2 API version.
+
+\section2 Available sensors
+
+If HW sensor is missing, the configuration file "Sensors.conf"
+must be updated and sensor removed. The file
+has the following format:
+
+\code
+[Default]
+QAccelerometer=meego.accelerometer
+QAmbientLightSensor=meego.als
+\endcode
+
+It lists sensor types and type's default implementation by giving the sensor id.
+If the type is omitted then the backend does not support it in this device; this
+gives a way of controlling and differentiating the supported sensor set.
+
+*/
+
diff --git a/doc/src/snippets/sensors/creating.cpp b/doc/src/snippets/sensors/creating.cpp
new file mode 100644
index 00000000..98e7d5df
--- /dev/null
+++ b/doc/src/snippets/sensors/creating.cpp
@@ -0,0 +1,64 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the Qt Mobility Components.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** GNU Lesser General Public License Usage
+** This file may be used under the terms of the GNU Lesser General Public
+** License version 2.1 as published by the Free Software Foundation and
+** appearing in the file LICENSE.LGPL included in the packaging of this
+** file. Please review the following information to ensure the GNU Lesser
+** General Public License version 2.1 requirements will be met:
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU General
+** Public License version 3.0 as published by the Free Software Foundation
+** and appearing in the file LICENSE.GPL included in the packaging of this
+** file. Please review the following information to ensure the GNU General
+** Public License version 3.0 requirements will be met:
+** http://www.gnu.org/copyleft/gpl.html.
+**
+** Other Usage
+** Alternatively, this file may be used in accordance with the terms and
+** conditions contained in a signed written agreement between you and Nokia.
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QWidget>
+#include <qaccelerometer.h>
+#include <qorientationsensor.h>
+
+class MyWidget : public QWidget
+{
+ void create();
+};
+
+void MyWidget::create()
+{
+//! [Creating a sensor]
+// On the heap (deleted when this object is deleted)
+QAccelerometer *sensor = new QAccelerometer(this);
+
+// On the stack (deleted when the current scope ends)
+QOrientationSensor orient_sensor;
+//! [Creating a sensor]
+
+ Q_UNUSED(sensor)
+ Q_UNUSED(orient_sensor);
+}
+
diff --git a/doc/src/snippets/sensors/main.cpp b/doc/src/snippets/sensors/main.cpp
new file mode 100644
index 00000000..81e526cb
--- /dev/null
+++ b/doc/src/snippets/sensors/main.cpp
@@ -0,0 +1,46 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the Qt Mobility Components.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** GNU Lesser General Public License Usage
+** This file may be used under the terms of the GNU Lesser General Public
+** License version 2.1 as published by the Free Software Foundation and
+** appearing in the file LICENSE.LGPL included in the packaging of this
+** file. Please review the following information to ensure the GNU Lesser
+** General Public License version 2.1 requirements will be met:
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU General
+** Public License version 3.0 as published by the Free Software Foundation
+** and appearing in the file LICENSE.GPL included in the packaging of this
+** file. Please review the following information to ensure the GNU General
+** Public License version 3.0 requirements will be met:
+** http://www.gnu.org/copyleft/gpl.html.
+**
+** Other Usage
+** Alternatively, this file may be used in accordance with the terms and
+** conditions contained in a signed written agreement between you and Nokia.
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+int main(int /*argc*/, char ** /*argv*/)
+{
+ return 0;
+}
+
diff --git a/doc/src/snippets/sensors/mybackend.h b/doc/src/snippets/sensors/mybackend.h
new file mode 100644
index 00000000..7a99caa5
--- /dev/null
+++ b/doc/src/snippets/sensors/mybackend.h
@@ -0,0 +1,59 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the Qt Mobility Components.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** GNU Lesser General Public License Usage
+** This file may be used under the terms of the GNU Lesser General Public
+** License version 2.1 as published by the Free Software Foundation and
+** appearing in the file LICENSE.LGPL included in the packaging of this
+** file. Please review the following information to ensure the GNU Lesser
+** General Public License version 2.1 requirements will be met:
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU General
+** Public License version 3.0 as published by the Free Software Foundation
+** and appearing in the file LICENSE.GPL included in the packaging of this
+** file. Please review the following information to ensure the GNU General
+** Public License version 3.0 requirements will be met:
+** http://www.gnu.org/copyleft/gpl.html.
+**
+** Other Usage
+** Alternatively, this file may be used in accordance with the terms and
+** conditions contained in a signed written agreement between you and Nokia.
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef MYBACKEND_H
+#define MYBACKEND_H
+
+#include <qaccelerometer.h>
+#include <qsensorbackend.h>
+
+class MyBackend : public QSensorBackend
+{
+public:
+ MyBackend(QSensor *sensor) : QSensorBackend(sensor) {}
+ void stop() {}
+ void start() {}
+ void poll() {}
+
+ static const char *id;
+};
+
+#endif
diff --git a/doc/src/snippets/sensors/plugin.cpp b/doc/src/snippets/sensors/plugin.cpp
new file mode 100644
index 00000000..7d548b77
--- /dev/null
+++ b/doc/src/snippets/sensors/plugin.cpp
@@ -0,0 +1,69 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the Qt Mobility Components.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** GNU Lesser General Public License Usage
+** This file may be used under the terms of the GNU Lesser General Public
+** License version 2.1 as published by the Free Software Foundation and
+** appearing in the file LICENSE.LGPL included in the packaging of this
+** file. Please review the following information to ensure the GNU Lesser
+** General Public License version 2.1 requirements will be met:
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU General
+** Public License version 3.0 as published by the Free Software Foundation
+** and appearing in the file LICENSE.GPL included in the packaging of this
+** file. Please review the following information to ensure the GNU General
+** Public License version 3.0 requirements will be met:
+** http://www.gnu.org/copyleft/gpl.html.
+**
+** Other Usage
+** Alternatively, this file may be used in accordance with the terms and
+** conditions contained in a signed written agreement between you and Nokia.
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "mybackend.h"
+#include <qsensorplugin.h>
+#include <qsensormanager.h>
+
+const char *MyBackend::id = "mybackend";
+
+//! [Plugin]
+class MyPluginClass : public QObject, QSensorPluginInterface, public QSensorBackendFactory
+{
+ Q_OBJECT
+ Q_INTERFACES(QSensorPluginInterface)
+public:
+ void registerSensors()
+ {
+ QSensorManager::registerBackend(QAccelerometer::type, MyBackend::id, this);
+ }
+
+ QSensorBackend *createBackend(QSensor *sensor)
+ {
+ if (sensor->identifier() == MyBackend::id)
+ return new MyBackend(sensor);
+ return 0;
+ }
+};
+//! [Plugin]
+
+//Q_EXPORT_PLUGIN2(libmy_plugin_file_name, MyPluginClass);
+#include "plugin.moc"
diff --git a/doc/src/snippets/sensors/sensors.pro b/doc/src/snippets/sensors/sensors.pro
new file mode 100644
index 00000000..61a00955
--- /dev/null
+++ b/doc/src/snippets/sensors/sensors.pro
@@ -0,0 +1,9 @@
+TEMPLATE=app
+TARGET=sensorsdocsnippet
+QT += sensors
+SOURCES+=main.cpp\
+ creating.cpp\
+ start.cpp\
+ plugin.cpp
+HEADERS+=mybackend.h
+LIBS+=-rdynamic
diff --git a/doc/src/snippets/sensors/start.cpp b/doc/src/snippets/sensors/start.cpp
new file mode 100644
index 00000000..85fe1ed7
--- /dev/null
+++ b/doc/src/snippets/sensors/start.cpp
@@ -0,0 +1,59 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the Qt Mobility Components.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** GNU Lesser General Public License Usage
+** This file may be used under the terms of the GNU Lesser General Public
+** License version 2.1 as published by the Free Software Foundation and
+** appearing in the file LICENSE.LGPL included in the packaging of this
+** file. Please review the following information to ensure the GNU Lesser
+** General Public License version 2.1 requirements will be met:
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU General
+** Public License version 3.0 as published by the Free Software Foundation
+** and appearing in the file LICENSE.GPL included in the packaging of this
+** file. Please review the following information to ensure the GNU General
+** Public License version 3.0 requirements will be met:
+** http://www.gnu.org/copyleft/gpl.html.
+**
+** Other Usage
+** Alternatively, this file may be used in accordance with the terms and
+** conditions contained in a signed written agreement between you and Nokia.
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <qsensor.h>
+
+void start()
+{
+//! [Starting a sensor]
+// start the sensor
+QSensor sensor("QAccelerometer");
+sensor.start();
+
+// later
+QSensorReading *reading = sensor.reading();
+qreal x = reading->property("x").value<qreal>();
+qreal y = reading->value(1).value<qreal>();
+//! [Starting a sensor]
+
+ Q_UNUSED(x)
+ Q_UNUSED(y)
+}
diff --git a/doc/src/snippets/snippets.pro b/doc/src/snippets/snippets.pro
new file mode 100644
index 00000000..0685c62c
--- /dev/null
+++ b/doc/src/snippets/snippets.pro
@@ -0,0 +1,3 @@
+TEMPLATE = subdirs
+
+SUBDIRS += sensors
diff --git a/examples/examples.pro b/examples/examples.pro
index 72678375..0685c62c 100644
--- a/examples/examples.pro
+++ b/examples/examples.pro
@@ -1,4 +1,3 @@
TEMPLATE = subdirs
-SUBDIRS += accel
-
+SUBDIRS += sensors
diff --git a/examples/accel/accel.pro b/examples/sensors/accel/accel.pro
index 86303eca..86303eca 100644
--- a/examples/accel/accel.pro
+++ b/examples/sensors/accel/accel.pro
diff --git a/examples/accel/main.cpp b/examples/sensors/accel/main.cpp
index 1fed675d..1fed675d 100644
--- a/examples/accel/main.cpp
+++ b/examples/sensors/accel/main.cpp
diff --git a/examples/sensors/cubehouse/camera.cpp b/examples/sensors/cubehouse/camera.cpp
new file mode 100644
index 00000000..2e7b6af4
--- /dev/null
+++ b/examples/sensors/cubehouse/camera.cpp
@@ -0,0 +1,1051 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the examples of the Qt Mobility Components.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "camera.h"
+#include <QtGui/qquaternion.h>
+#include <QtCore/qmath.h>
+
+/*!
+ \class Camera
+ \brief The Camera class defines the projection to apply to simulate a camera's position, orientation, and optics.
+ \since 4.7
+ \ingroup qt3d
+ \ingroup qt3d::viewing
+
+ \section1 Modelview and projection transformations
+
+ A Camera instance is applied to the scene in two phases:
+ modelview transformation and projection transformation.
+
+ During the modelview transformation, the eye(), center(), and
+ upVector() are used to generate a 4x4 transformation matrix that
+ reflects the viewer's current position and orientation.
+
+ During the projection transformation, the projectionType(),
+ nearPlane(), farPlane(), fieldOfView(), and viewSize() are used
+ to define a viewing volume as a 4x4 transformation matrix.
+
+ The modelview transformation matrix is returned by modelViewMatrix().
+ The projection transformation matrix is returned by projectionMatrix().
+
+ \section1 Positioning and orienting the view
+
+ The viewer position and orientation are defined by eye(), center(),
+ and upVector(). The location of the viewer in world co-ordinates is
+ given by eye(), the viewer is looking at the object of interest located
+ at center(), and the upVector() specifies the direction that should
+ be considered "up" with respect to the viewer.
+
+ The vector from the eye() to the center() is called the "view vector",
+ and the cross-product of the view vector and upVector() is called
+ the "side vector". The view vector specifies the direction the
+ viewer is looking, and the side vector points off to the right of
+ the viewer.
+
+ It is recommended that the view vector and upVector() be at right angles
+ to each other, but this is not required as long as the angle between
+ them is close to 90 degrees.
+
+ The most common use of view and up vectors that are not at right angles
+ is to simulate a human eye at a specific height above the ground looking
+ down at a lower object or up at a higher object. In this case, the
+ the view vector will not be true horizontal, but the upVector() indicating
+ the human's upright stance will be true vertical.
+
+ \section1 Zooming the camera image
+
+ There are two ways to zoom the image seen through the camera: either
+ the camera eye() position can be moved closer to the object of interest,
+ or the field of view of the camera lens can be changed to make it appear
+ as though the object is moving closer.
+
+ Changing the eye() position changes the lighting calculation in the
+ scene because the viewer is in a different position, changing the
+ angle of light reflection on the object's surface.
+
+ The setFieldOfView() function can be used to simulate the effect of a
+ camera lens. The smaller the fieldOfView(), the closer the object
+ will appear. The lighting calculation will be the same as for the
+ unzoomed scene.
+
+ If fieldOfView() is zero, then a standard perspective frustum of
+ viewSize() is used to define the viewing volume. The viewSize()
+ can be adjusted with setViewSize() to zoom the view. A smaller
+ viewSize() will make the the object appear closer.
+
+ The fieldOfView() or viewSize() is applied as part of the
+ projectionMatrix().
+
+\section1 Rotating the viewer or object of interest
+
+Rotating a viewer in 3D space is a very delicate process. It is very
+easy to construct the rotation incorrectly and end up in a "gimbal lock"
+state where further rotations are impossible in certain directions.
+
+To help alleviate this problem, Camera uses a quaternion-based
+approach to generate rotations. A quaternion is a compact representation
+of a rotation in 3D space. Rotations can be combined through quaternion
+multiplication. More information on quaternions can be found in the
+documentation for QQuaternion.
+
+Before rotating the view, you should first decide the type
+of rotation you want to perform:
+
+\list
+\i Tilting or panning a fixed eye to reveal the scene in different
+directions and orientations. This is equivalent to mounting a camera
+on a fixed tripod and then adjusting the direction of view and
+orientation with the tripod controls.
+\i Rotating a moving viewer about the object of interest. This is
+equivalent to moving the viewer around the object at a fixed distance,
+ but with the viewer always pointing at the object.
+ \endlist
+
+ In the Camera class, the first type of rotation is performed with
+ rotateEye() and the second with rotateCenter(). Each of these functions
+ take a quaternion argument that defines the type of rotation to perform.
+
+ The tilt(), pan(), and roll() functions return values that can help with
+ constructing the rotation quaternions to pass to rotateEye() and
+ rotateCenter(). Tilt and pan are also known as "pitch" and "yaw" in
+ flight dynamics.
+
+Three axes of rotation are used to compute the quaternions. The tilt()
+quaternion is computed with respect to the side vector, the pan()
+quaterion is computed with respect to the upVector(), and the roll()
+quaternion is computed with respect to the view vector.
+
+The following example tilts the direction the eye() is pointing
+by 5 degrees, and then pans by 45 degrees:
+
+\code
+camera.rotateEye(camera.tilt(5));
+camera.rotateEye(camera.pan(45));
+\endcode
+
+The next example performs the two rotations in a single fluid step
+(note that the rotation to be performed first is multiplied last):
+
+ \code
+ camera.rotateEye(camera.pan(45) * camera.tilt(5));
+ \endcode
+
+ These two examples will not produce the same visual result, even though
+it looks like they might. In the first example, the upVector() is tilted
+before the pan() quaternion is computed. In the second example, the pan()
+quaternion is computed using the original upVector().
+
+This difference in behavior is useful in different situations. Some
+applications may wish to perform all rotations relative to the original
+viewer orientation, and other applications may wish to perform rotations
+relative to the current viewer orientation. These application types
+correspond to the second and first examples above.
+
+\section1 Moving the viewer or object of interest
+
+The simplest way to move the viewer or object of interest is to call
+setEye() or setCenter() respectively and supply a new position in
+world co-ordinates. However, this can lead to non-intuitive movements
+if the viewer orientation is not aligned with the world co-ordinate axes.
+
+For example, subtracting 3 from the eye() x co-ordinate will appear to
+move the eye left 3 units if the viewer orientation is aligned with the
+world co-ordinate axes. But it will not appear to move the eye left 3
+units in any other orientation.
+
+The translation() function can be used to construct a translation
+vector that is aligned with the viewer's current orientation.
+Movement in the x direction will move along the side vector, movement in
+the y direction will move along upVector(), and movement in the z
+direction will move along the view vector.
+
+The translation() function is useful when implementing operations such
+as "step left", "jump up", and so on where the movement should be
+interpreted relative to the viewer's current orientation, not the
+world co-ordinate axes,
+
+ In other words, the following two lines of code are not equivalent
+ unless the view is oriented with the world co-ordinate axes:
+
+ \code
+ camera.translateEye(camera.translation(x, y, z));
+
+ camera.translateEye(QVector3D(x, y, z));
+ \endcode
+
+ The following example translates the eye() position while
+ keeping the object of interest at the original center():
+
+ \code
+ camera.translateEye(camera.translation(x, y, z));
+ \endcode
+
+ The following example translates the object of interest at
+ center() while keeping the eye() position fixed:
+
+ \code
+ camera.translateCenter(camera.translation(x, y, z));
+ \endcode
+
+The following example translates both the eye() and the center()
+by the same amount, which will maintain the original view vector.
+
+\code
+QVector3D vector = camera.translation(x, y, z);
+camera.translateEye(vector);
+camera.translateCenter(vector);
+\endcode
+
+It is important that the translation vector for center() be computed
+before eye() is translated if both eye() and center() must move by the
+same amount. The following code translates center() in the viewer
+orientation after the eye() is translated:
+
+\code
+camera.translateEye(camera.translation(x, y, z));
+camera.translateCenter(camera.translation(x, y, z));
+\endcode
+
+Translating both eye() and center() by the same amount can be used
+to simulate sliding a viewer past a scene while always looking in the
+same direction (for example, filming a scene from a moving vehicle).
+An alternative is to fix the viewer and move the scene itself:
+the negation of the translation() vector can be applied to the
+scene's modelview transformation.
+
+\section1 Motion tracking
+
+Viewing of 3D scenes can be enhanced if there is some way to track
+the motion of the viewer or the orientation of the display device.
+
+Applications can use setMotionAdjustment() to alter the position
+of the camera to account for the viewer's motion. This indicates
+the viewer's position relative to the center of the screen.
+The motionAdjustment() vector is used to determine by how much
+the camera position should be adjusted. The distance of the viewer
+from the screen is ignored.
+
+On handheld devices that use accelerometers to determine the
+orientation of the device, the down vector due to gravity
+can be adjusted to serve as a motion tracking vector.
+
+The output of motion tracking hardware can be very noisy,
+ with minor fluctuations due to viewer twitch movements or
+ environmental factors. The application is responsible for
+ cleaning up the signal and removing these fluctuations before
+ setMotionAdjustment() is called.
+ */
+
+ class CameraPrivate
+{
+public:
+ CameraPrivate();
+
+ Camera::ProjectionType projectionType;
+ qreal fieldOfView;
+ qreal nearPlane;
+ qreal farPlane;
+ QSizeF viewSize;
+ QSizeF minViewSize;
+ int screenRotation;
+ QVector3D eye;
+ QVector3D upVector;
+ QVector3D center;
+ QVector3D viewVector;
+ qreal eyeSeparation;
+ QVector3D motionAdjustment;
+ QQuaternion motionQuaternion;
+ bool adjustForAspectRatio;
+};
+
+CameraPrivate::CameraPrivate()
+: projectionType(Camera::Perspective),
+ fieldOfView(0.0f),
+ nearPlane(5.0f),
+ farPlane(1000.0f),
+ viewSize(2.0f, 2.0f),
+ minViewSize(0.0001f, 0.0001f),
+ screenRotation(0),
+ eye(0.0f, 0.0f, 10.0f),
+ upVector(0.0f, 1.0f, 0.0f),
+ center(0.0f, 0.0f, 0.0f),
+ viewVector(0.0f, 0.0f, -10.0f),
+ eyeSeparation(0.0f),
+ motionAdjustment(0.0f, 0.0f, 1.0f),
+ adjustForAspectRatio(true)
+{
+}
+
+/*!
+ Constructs a Camera with the default properties and
+ attaches it to \a parent.
+*/
+Camera::Camera(QObject *parent)
+: QObject(parent), d_ptr(new CameraPrivate)
+{
+}
+
+/*!
+ Destroys this Camera object.
+*/
+Camera::~Camera()
+{
+ delete d_ptr;
+}
+
+/*!
+ \enum Camera::ProjectionType
+ This enum defines the type of view projection to use for a Camera.
+
+ \value Perspective Use a perspective view.
+ \value Orthographic Use an ortographic view.
+*/
+
+/*!
+ \property Camera::projectionType
+ \brief the projection type for this camera. The default is Perspective.
+*/
+Camera::ProjectionType Camera::projectionType() const
+{
+ Q_D(const Camera);
+ return d->projectionType;
+}
+
+void Camera::setProjectionType(Camera::ProjectionType value)
+{
+ Q_D(Camera);
+ if (d->projectionType != value) {
+ d->projectionType = value;
+ emit projectionChanged();
+ }
+}
+
+/*!
+ \property Camera::fieldOfView
+ \brief the field of view in degrees for a perspective projection.
+
+ The default value is zero, which indicates a standard perspective
+ frustum view volume of viewSize() in size. If the value is not
+ zero, then viewSize() is ignored.
+
+ This value is ignored if projectionType() is Orthographic.
+
+ \sa viewSize()
+*/
+qreal Camera::fieldOfView() const
+{
+ Q_D(const Camera);
+ return d->fieldOfView;
+}
+
+void Camera::setFieldOfView(qreal angle)
+{
+ Q_D(Camera);
+ if (d->fieldOfView != angle) {
+ d->fieldOfView = angle;
+ emit projectionChanged();
+ }
+}
+
+/*!
+ \property Camera::nearPlane
+ \brief the distance from the eye to the near clipping plane.
+ The default value is 5.
+
+ \sa farPlane()
+*/
+qreal Camera::nearPlane() const
+{
+ Q_D(const Camera);
+ return d->nearPlane;
+}
+
+void Camera::setNearPlane(qreal value)
+{
+ Q_D(Camera);
+ if (d->nearPlane != value) {
+ d->nearPlane = value;
+ emit projectionChanged();
+ }
+}
+
+/*!
+ \property Camera::farPlane
+ \brief the distance from the eye to the far clipping plane.
+ The default value is 1000.
+
+ \sa nearPlane()
+*/
+qreal Camera::farPlane() const
+{
+ Q_D(const Camera);
+ return d->farPlane;
+}
+
+void Camera::setFarPlane(qreal value)
+{
+ Q_D(Camera);
+ if (d->farPlane != value) {
+ d->farPlane = value;
+ emit projectionChanged();
+ }
+}
+
+/*!
+ \property Camera::viewSize
+ \brief the size of the front of the projection viewing volume.
+ The viewing volume is assumed to be centered on the origin.
+
+ The default value is (2, 2), which indicates a viewing volume front
+ from (-1, -1) to (1, 1).
+
+ If the width or height of the viewing volume is negative, then the
+ co-ordinates will be swapped. For example, a size of (2, -2) will
+ flip the vertical axis upside down for a viewing volume from
+ (-1, 1) to (1, -1).
+
+ The view size will be further adjusted by the window's aspect ratio
+ when projectionMatrix() is called. For best results, the width and
+ height of the view size should be the same to define an ideal square
+ viewing volume, which is then extended to the final viewing volume
+ width and height based on the window's aspect ratio.
+
+ \sa projectionMatrix(), minViewSize()
+*/
+QSizeF Camera::viewSize() const
+{
+ Q_D(const Camera);
+ return d->viewSize;
+}
+
+void Camera::setViewSize(const QSizeF& size)
+{
+ Q_D(Camera);
+ QSizeF sz(size);
+ if (sz.width() < d->minViewSize.width())
+ sz.setWidth(d->minViewSize.width());
+ if (sz.height() < d->minViewSize.height())
+ sz.setHeight(d->minViewSize.height());
+ if (d->viewSize != sz) {
+ d->viewSize = sz;
+ emit projectionChanged();
+ }
+}
+
+/*!
+ \property Camera::minViewSize
+ \brief the minimum size of the front of the projection viewing volume.
+
+ The minimum view size is used to clamp viewSize() when zooming
+ the camera closer to an object to prevent it "passing through"
+ the object and causing the scale factor to become infinite.
+
+ The default value is (0.0001, 0.0001).
+
+ \sa projectionMatrix(), viewSize()
+*/
+QSizeF Camera::minViewSize() const
+{
+ Q_D(const Camera);
+ return d->minViewSize;
+}
+
+void Camera::setMinViewSize(const QSizeF& size)
+{
+ Q_D(Camera);
+ if (d->viewSize != size) {
+ d->viewSize = size;
+ emit projectionChanged();
+ }
+}
+
+/*!
+ \property Camera::screenRotation
+ \brief the screen rotation angle in degrees. The default
+ value is 0. If this value is 90 or 270, then the view
+ will be flipped width for height. The only supported values
+ are 0, 90, 180, and 270. The screen is rotated around the
+ positive z axis.
+
+ This setting is intended for simple screen rotations on handheld
+ devices that can be held in either portrait or landscape orientations.
+ The entire screen image is rotated so that it can be viewed in a
+ different device orientation.
+
+ Use rotateEye() or rotateCenter() for more complex rotations
+ that are not aligned with 0, 90, 180, or 270 degrees.
+*/
+int Camera::screenRotation() const
+{
+ Q_D(const Camera);
+ return d->screenRotation;
+}
+
+void Camera::setScreenRotation(int angle)
+{
+ Q_D(Camera);
+ if (d->screenRotation != angle) {
+ d->screenRotation = angle;
+ emit projectionChanged();
+ }
+}
+
+/*!
+ \property Camera::xEye
+ \brief the x position of the viewer's eye. The default value is 0.
+
+ \sa eye(), translateEye(), upVector(), center(), eyeSeparation()
+ \sa motionAdjustment()
+*/
+qreal Camera::xEye() const
+{
+ Q_D(Camera);
+ return d->eye.x();
+}
+
+void Camera::setXEye(qreal value)
+{
+ Q_D(Camera);
+ d->eye.setX(value);
+ emit viewChanged();
+}
+
+/*!
+ \property Camera::yEye
+ \brief the y position of the viewer's eye. The default value is 0.
+
+ \sa eye(), translateEye(), upVector(), center(), eyeSeparation()
+ \sa motionAdjustment()
+*/
+qreal Camera::yEye() const
+{
+ Q_D(Camera);
+ return d->eye.y();
+}
+
+void Camera::setYEye(qreal value)
+{
+ Q_D(Camera);
+ d->eye.setY(value);
+ emit viewChanged();
+}
+
+/*!
+ \property Camera::zEye
+ \brief the z position of the viewer's eye. The default value is 10.
+
+ \sa eye(), translateEye(), upVector(), center(), eyeSeparation()
+ \sa motionAdjustment()
+*/
+qreal Camera::zEye() const
+{
+ Q_D(Camera);
+ return d->eye.z();
+}
+
+void Camera::setZEye(qreal value)
+{
+ Q_D(Camera);
+ d->eye.setZ(value);
+ emit viewChanged();
+}
+
+/*!
+ \property Camera::eye
+ \brief the position of the viewer's eye. The default value is (0, 0, 10).
+
+ \sa translateEye(), upVector(), center(), eyeSeparation()
+ \sa motionAdjustment()
+*/
+QVector3D Camera::eye() const
+{
+ Q_D(const Camera);
+ return d->eye;
+}
+
+void Camera::setEye(const QVector3D& vertex)
+{
+ Q_D(Camera);
+ if (d->eye != vertex) {
+ d->eye = vertex;
+ d->viewVector = d->center - d->eye;
+ emit viewChanged();
+ }
+}
+
+/*!
+ Adjusts the position of the viewer's eye by the components of \a vector.
+ The final position is eye() + \a vector.
+
+ \sa eye(), setEye(), translateCenter()
+*/
+void Camera::translateEye(const QVector3D& vector)
+{
+ Q_D(Camera);
+ d->eye += vector;
+ d->viewVector = d->center - d->eye;
+ emit viewChanged();
+}
+
+/*!
+ \property Camera::upVector
+ \brief the up vector for the viewer. The default value is (0, 1, 0).
+
+ \sa eye(), center()
+*/
+QVector3D Camera::upVector() const
+{
+ Q_D(const Camera);
+ return d->upVector;
+}
+
+void Camera::setUpVector(const QVector3D& vector)
+{
+ Q_D(Camera);
+ if (d->upVector != vector) {
+ d->upVector = vector;
+ emit viewChanged();
+ }
+}
+
+/*!
+ \property Camera::xCentre
+ \brief the x position of the center of the view visible from the viewer's
+ position. The default value is 0.
+
+ \sa eye(), translateEye(), upVector(), center(), eyeSeparation()
+ \sa motionAdjustment()
+*/
+qreal Camera::xCentre() const
+{
+ Q_D(Camera);
+ return d->center.x();
+}
+
+void Camera::setXCentre(qreal value)
+{
+ Q_D(Camera);
+ d->center.setX(value);
+ emit viewChanged();
+}
+
+/*!
+ \property Camera::yCentre
+ \brief the y position of the center of the view visible from the
+ viewer's position. The default value is 0.
+
+ \sa eye(), translateEye(), upVector(), center(), eyeSeparation()
+ \sa motionAdjustment()
+*/
+qreal Camera::yCentre() const
+{
+ Q_D(Camera);
+ return d->center.y();
+}
+
+void Camera::setYCentre(qreal value)
+{
+ Q_D(Camera);
+ d->center.setY(value);
+ emit viewChanged();
+}
+
+/*!
+ \property Camera::zCentre
+ \brief the z position of the center of the view visible from the
+ viewer's position. The default value is 0.
+
+ \sa eye(), translateEye(), upVector(), center(), eyeSeparation()
+ \sa motionAdjustment()
+*/
+qreal Camera::zCentre() const
+{
+ Q_D(Camera);
+ return d->center.z();
+}
+
+void Camera::setZCentre(qreal value)
+{
+ Q_D(Camera);
+ d->center.setZ(value);
+ emit viewChanged();
+}
+
+/*!
+ \property Camera::center
+ \brief the center of the view visible from the viewer's position.
+ The default value is (0, 0, 0).
+
+ \sa translateCenter(), eye(), upVector()
+*/
+QVector3D Camera::center() const
+{
+ Q_D(const Camera);
+ return d->center;
+}
+
+void Camera::setCenter(const QVector3D& vertex)
+{
+ Q_D(Camera);
+ if (d->center != vertex) {
+ d->center = vertex;
+ d->viewVector = d->center - d->eye;
+ emit viewChanged();
+ }
+}
+
+/*!
+ Adjusts the center of the view by the components of \a vector.
+ The final position is center() + \a vector.
+
+ \sa center(), setCenter(), translateEye()
+*/
+void Camera::translateCenter(const QVector3D& vector)
+{
+ Q_D(Camera);
+ d->center += vector;
+ d->viewVector = d->center - d->eye;
+ emit viewChanged();
+}
+
+/*!
+ \property Camera::eyeSeparation
+ \brief the separation between the eyes when stereo viewing is in use,
+ with eye() specifying the mid-point between the eyes. The default
+ value is 0.
+
+ \sa eye()
+*/
+qreal Camera::eyeSeparation() const
+{
+ Q_D(const Camera);
+ return d->eyeSeparation;
+}
+
+void Camera::setEyeSeparation(qreal value)
+{
+ Q_D(Camera);
+ if (d->eyeSeparation != value) {
+ d->eyeSeparation = value;
+ emit viewChanged();
+ }
+}
+
+/*!
+ \property Camera::motionAdjustment
+ \brief the adjustment vector to apply to the eye() for user motion.
+
+ This property is typically used to implement motion tracking.
+ It is interpreted as a vector from the center of the screen to the
+ current position of the viewer. The angle between the motion
+ adjustment vector and the screen center is used to adjust the
+ position of the eye() when apply() is called.
+
+ The default value is (0, 0, 1), which indicates a viewer
+ directly in front of the center of the screen.
+
+ The units for the vector are unspecified. They could be
+ meters, centimeters, or the force due to gravity in various
+ directions from an accelerometer. The angle defined
+ by the vector is used to perform the adjustment, not its
+ magnitude.
+
+ The output of motion tracking hardware can be very noisy,
+ with minor fluctuations due to viewer twitch movements or
+ environmental factors. The application is responsible for
+ cleaning up the signal and removing these fluctuations before
+ altering this property.
+
+ \sa eye(), apply()
+*/
+
+QVector3D Camera::motionAdjustment() const
+{
+ Q_D(const Camera);
+ return d->motionAdjustment;
+}
+
+void Camera::setMotionAdjustment(const QVector3D& vector)
+{
+ Q_D(Camera);
+ if (d->motionAdjustment != vector) {
+ d->motionAdjustment = vector;
+ if (vector.x() == 0.0f && vector.y() == 0.0f) {
+ // If the vector is centered, then don't perform any rotations.
+ d->motionQuaternion = QQuaternion();
+ } else {
+ // Determine the pan and tilt angles from the vector.
+ QVector3D view = -vector.normalized();
+ if (view.z() < 0.0f)
+ view = -view;
+ qreal xangle = asin(view.x()) * 180.0f / M_PI;
+ qreal yangle = asin(-view.y()) * 180.0f / M_PI;
+
+ // Construct the pan and tilt quaternions.
+ if (qFuzzyIsNull(xangle))
+ d->motionQuaternion = tilt(yangle);
+ else if (qFuzzyIsNull(yangle))
+ d->motionQuaternion = pan(xangle);
+ else
+ d->motionQuaternion = tilt(yangle) * pan(xangle);
+ }
+ emit viewChanged();
+ }
+}
+
+/*!
+ \property Camera::adjustForAspectRatio
+ \brief the adjustment state of the aspect ratio in the viewing volume.
+
+ By default, Camera adjusts the viewing volume for the aspect
+ ratio of the window so that pixels appear square without the
+ application needing to adjust viewSize() manually.
+
+ If this property is false, then the aspect ratio adjustment is
+ not performed.
+*/
+
+bool Camera::adjustForAspectRatio() const
+{
+ Q_D(const Camera);
+ return d->adjustForAspectRatio;
+}
+
+void Camera::setAdjustForAspectRatio(bool value)
+{
+ Q_D(Camera);
+ if (d->adjustForAspectRatio != value) {
+ d->adjustForAspectRatio = value;
+ emit viewChanged();
+ }
+}
+
+/*!
+ Returns the quaternion corresponding to tilting the view up or
+ down by \a angle degrees. The returned quaternion can be applied to
+ the eye() position with rotateEye() or to the center() position with
+ rotateCenter().
+
+ \sa pan(), roll(), rotateEye(), rotateCenter()
+*/
+QQuaternion Camera::tilt(qreal angle) const
+{
+ Q_D(const Camera);
+ QVector3D side = QVector3D::crossProduct(d->viewVector, d->upVector);
+ return QQuaternion::fromAxisAndAngle(side, angle);
+}
+
+/*!
+ Returns the quaternion corresponding to panning the view left or
+ right by \a angle degrees. The returned quaternion can be applied to
+ the eye() position with rotateEye() or to the center() position with
+ rotateCenter().
+
+ \sa tilt(), roll(), rotateEye(), rotateCenter()
+*/
+QQuaternion Camera::pan(qreal angle) const
+{
+ Q_D(const Camera);
+ return QQuaternion::fromAxisAndAngle(d->upVector, angle);
+}
+
+/*!
+ Returns the quaternion corresponding to rolling the view left or
+ right by \a angle degrees. The returned quaternion can be applied to
+ the eye() position with rotateEye() or to the center() position with
+ rotateCenter().
+
+ \sa tilt(), pan(), rotateEye(), rotateCenter()
+*/
+QQuaternion Camera::roll(qreal angle) const
+{
+ Q_D(const Camera);
+ return QQuaternion::fromAxisAndAngle(d->viewVector, angle);
+}
+
+/*!
+ Rotates the orientation of the eye() according to the quaternion \a q.
+ The eye() will remain in the same position, but the upVector() and
+ center() may be altered by the rotation.
+
+ \sa rotateCenter(), tilt(), pan(), roll()
+*/
+void Camera::rotateEye(const QQuaternion& q)
+{
+ Q_D(Camera);
+ d->upVector = q.rotatedVector(d->upVector);
+ d->viewVector = q.rotatedVector(d->viewVector);
+ d->center = d->eye + d->viewVector;
+ emit viewChanged();
+}
+
+/*!
+ Rotates the position and orientation of the eye() around center()
+ according to the quaternion \a q. The center() will remain in the
+ same position, but the upVector() and eye() may be altered by
+ the rotation.
+
+ \sa rotateEye(), tilt(), pan(), roll()
+*/
+void Camera::rotateCenter(const QQuaternion& q)
+{
+ Q_D(Camera);
+ d->upVector = q.rotatedVector(d->upVector);
+ d->viewVector = q.rotatedVector(d->viewVector);
+ d->eye = d->center - d->viewVector;
+ emit viewChanged();
+}
+
+/*!
+ Returns a translation vector that can be used to adjust the eye()
+ or center() by \a x units side-ways, \a y units up,
+ and \a z units forwards.
+
+ This function is useful when implementing operations such as
+ "step left", "jump up", and so on where the movement should be
+ interpreted relative to the viewer's current orientation, not the
+ world co-ordinate axes,
+
+ The translation vector can be applied to eye() or center() by
+ calling translateEye() or translateCenter() respectively.
+
+ \sa translateEye(), translateCenter()
+*/
+QVector3D Camera::translation(qreal x, qreal y, qreal z) const
+{
+ Q_D(const Camera);
+ QVector3D vector(0.0f, 0.0f, 0.0f);
+ if (x != 0.0f)
+ vector += QVector3D::normal(d->viewVector, d->upVector) * x;
+ if (y != 0.0f)
+ vector += d->upVector.normalized() * y;
+ if (z != 0.0f)
+ vector += d->viewVector.normalized() * z;
+ return vector;
+}
+
+/*!
+ Returns the transformation matrix to apply to the projection matrix
+ to present the scene as viewed from the camera position.
+
+ The \a aspectRatio specifies the aspect ratio of the window the
+ camera view is being displayed in. An \a aspectRatio of 1 indicates that
+ the window is square. An \a aspectRatio greater than 1 indicates that
+ the window is wider than it is high. An \a aspectRatio less than 1
+ indicates that the window is higher than it is wide.
+
+ \sa apply(), modelViewMatrix()
+*/
+QMatrix4x4 Camera::projectionMatrix(qreal aspectRatio) const
+{
+ Q_D(const Camera);
+ QMatrix4x4 m;
+ if (!d->adjustForAspectRatio)
+ aspectRatio = 1.0f;
+ if (d->screenRotation != 0) {
+ m.rotate((qreal)(d->screenRotation), 0.0f, 0.0f, 1.0f);
+ if (d->screenRotation == 90 || d->screenRotation == 270) {
+ if (aspectRatio != 0.0f)
+ aspectRatio = 1.0f / aspectRatio;
+ }
+ }
+ if (d->projectionType == Perspective && d->fieldOfView != 0.0f) {
+ m.perspective(d->fieldOfView, aspectRatio,
+ d->nearPlane, d->farPlane);
+ } else {
+ qreal halfWidth = d->viewSize.width() / 2.0f;
+ qreal halfHeight = d->viewSize.height() / 2.0f;
+ if (aspectRatio > 1.0f) {
+ halfWidth *= aspectRatio;
+ } else if (aspectRatio > 0.0f && aspectRatio < 1.0f) {
+ halfHeight /= aspectRatio;
+ }
+ if (d->projectionType == Perspective) {
+ m.frustum(-halfWidth, halfWidth, -halfHeight, halfHeight,
+ d->nearPlane, d->farPlane);
+ } else {
+ m.ortho(-halfWidth, halfWidth, -halfHeight, halfHeight,
+ d->nearPlane, d->farPlane);
+ }
+ }
+ return m;
+}
+
+/*!
+ Returns the transformation to apply to the modelview matrix
+ to present the scene as viewed from the eye() position.
+
+ \sa apply(), projectionMatrix()
+*/
+QMatrix4x4 Camera::modelViewMatrix() const
+{
+ Q_D(const Camera);
+ QMatrix4x4 m;
+ if (d->motionQuaternion.isIdentity()) {
+ m.lookAt(d->eye, d->center, d->upVector);
+ } else {
+ QVector3D up = d->motionQuaternion.rotatedVector(d->upVector);
+ QVector3D view = d->motionQuaternion.rotatedVector(d->viewVector);
+ QVector3D eye = d->center - view;
+ m.lookAt(eye, d->center, up);
+ }
+ return m;
+}
+
+/*!
+ \fn void Camera::projectionChanged()
+
+ This signal is emitted when one of projectionType(), fieldOfView(),
+ nearPlane(), farPlane(), viewSize(), or screenRotation() changes,
+ indicating a modification to the optical properties of the camera
+ looking at the scene.
+
+ \sa viewChanged()
+*/
+
+/*!
+ \fn void Camera::viewChanged()
+
+ This signal is emitted when one of eye(), upVector(), or center()
+ changes, indicating a modification to the viewer's position or
+ orientation.
+
+ \sa projectionChanged()
+*/
diff --git a/examples/sensors/cubehouse/camera.h b/examples/sensors/cubehouse/camera.h
new file mode 100644
index 00000000..0607d4c3
--- /dev/null
+++ b/examples/sensors/cubehouse/camera.h
@@ -0,0 +1,166 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the examples of the Qt Mobility Components.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef CAMERA_H
+#define CAMERA_H
+
+#include <QtCore/qobject.h>
+#include <QtCore/qsize.h>
+#include <QtGui/qvector3d.h>
+#include <QtGui/qmatrix4x4.h>
+#include <QtGui/qquaternion.h>
+
+class CameraPrivate;
+class QGLPainter;
+
+class Camera : public QObject
+{
+ Q_OBJECT
+ Q_ENUMS(ProjectionType)
+ Q_PROPERTY(ProjectionType projectionType READ projectionType WRITE setProjectionType NOTIFY projectionChanged)
+ Q_PROPERTY(qreal fieldOfView READ fieldOfView WRITE setFieldOfView NOTIFY projectionChanged)
+ Q_PROPERTY(qreal nearPlane READ nearPlane WRITE setNearPlane NOTIFY projectionChanged)
+ Q_PROPERTY(qreal farPlane READ farPlane WRITE setFarPlane NOTIFY projectionChanged)
+ Q_PROPERTY(QSizeF viewSize READ viewSize WRITE setViewSize NOTIFY projectionChanged)
+ Q_PROPERTY(QSizeF minViewSize READ minViewSize WRITE setMinViewSize NOTIFY projectionChanged)
+ Q_PROPERTY(int screenRotation READ screenRotation WRITE setScreenRotation NOTIFY projectionChanged)
+ Q_PROPERTY(qreal xEye READ xEye WRITE setXEye NOTIFY viewChanged)
+ Q_PROPERTY(qreal yEye READ yEye WRITE setYEye NOTIFY viewChanged)
+ Q_PROPERTY(qreal zEye READ zEye WRITE setZEye NOTIFY viewChanged)
+ Q_PROPERTY(QVector3D eye READ eye WRITE setEye NOTIFY viewChanged)
+ Q_PROPERTY(QVector3D upVector READ upVector WRITE setUpVector NOTIFY viewChanged)
+ Q_PROPERTY(qreal xCentre READ xCentre WRITE setXCentre NOTIFY viewChanged)
+ Q_PROPERTY(qreal yCentre READ yCentre WRITE setYCentre NOTIFY viewChanged)
+ Q_PROPERTY(qreal zCentre READ zCentre WRITE setZCentre NOTIFY viewChanged)
+ Q_PROPERTY(QVector3D center READ center WRITE setCenter NOTIFY viewChanged)
+ Q_PROPERTY(qreal eyeSeparation READ eyeSeparation WRITE setEyeSeparation NOTIFY viewChanged)
+ Q_PROPERTY(QVector3D motionAdjustment READ motionAdjustment WRITE setMotionAdjustment DESIGNABLE false NOTIFY viewChanged)
+ Q_PROPERTY(bool adjustForAspectRatio READ adjustForAspectRatio WRITE setAdjustForAspectRatio NOTIFY viewChanged)
+public:
+ explicit Camera(QObject *parent = 0);
+ ~Camera();
+
+ enum ProjectionType
+ {
+ Perspective,
+ Orthographic
+ };
+
+ Camera::ProjectionType projectionType() const;
+ void setProjectionType(Camera::ProjectionType value);
+
+ qreal fieldOfView() const;
+ void setFieldOfView(qreal angle);
+
+ qreal nearPlane() const;
+ void setNearPlane(qreal value);
+
+ qreal farPlane() const;
+ void setFarPlane(qreal value);
+
+ QSizeF viewSize() const;
+ void setViewSize(const QSizeF& size);
+
+ QSizeF minViewSize() const;
+ void setMinViewSize(const QSizeF& size);
+
+ int screenRotation() const;
+ void setScreenRotation(int angle);
+
+ qreal xEye() const;
+ void setXEye(qreal value);
+ qreal yEye() const;
+ void setYEye(qreal value);
+ qreal zEye() const;
+ void setZEye(qreal value);
+
+ QVector3D eye() const;
+ void setEye(const QVector3D& vertex);
+
+ QVector3D upVector() const;
+ void setUpVector(const QVector3D& vector);
+
+ qreal xCentre() const;
+ void setXCentre(qreal value);
+ qreal yCentre() const;
+ void setYCentre(qreal value);
+ qreal zCentre() const;
+ void setZCentre(qreal value);
+
+ QVector3D center() const;
+ void setCenter(const QVector3D& vertex);
+
+ qreal eyeSeparation() const;
+ void setEyeSeparation(qreal value);
+
+ QVector3D motionAdjustment() const;
+ void setMotionAdjustment(const QVector3D& vector);
+
+ bool adjustForAspectRatio() const;
+ void setAdjustForAspectRatio(bool value);
+
+ QQuaternion tilt(qreal angle) const;
+ QQuaternion pan(qreal angle) const;
+ QQuaternion roll(qreal angle) const;
+
+ void rotateEye(const QQuaternion& q);
+ void rotateCenter(const QQuaternion& q);
+
+ QVector3D translation(qreal x, qreal y, qreal z) const;
+
+ void translateEye(const QVector3D& vector);
+ void translateCenter(const QVector3D& vector);
+
+ QMatrix4x4 projectionMatrix(qreal aspectRatio) const;
+ QMatrix4x4 modelViewMatrix() const;
+
+Q_SIGNALS:
+ void projectionChanged();
+ void viewChanged();
+
+private:
+ CameraPrivate *d_ptr;
+
+ CameraPrivate *d_func() const { return d_ptr; }
+
+ Q_DISABLE_COPY(Camera)
+};
+
+#endif
diff --git a/examples/sensors/cubehouse/cube.h b/examples/sensors/cubehouse/cube.h
new file mode 100644
index 00000000..fe5bea3a
--- /dev/null
+++ b/examples/sensors/cubehouse/cube.h
@@ -0,0 +1,89 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the examples of the Qt Mobility Components.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef CUBE_H
+#define CUBE_H
+
+#define CUBE_SIZE (6 * 6 * (3 + 3 + 2))
+static float const cubeVertices[CUBE_SIZE] = {
+ -0.5f, -0.5f, -0.5f, -1.0f, 0.0f, 0.0f, 1.0f, 0.0f,
+ -0.5f, -0.5f, 0.5f, -1.0f, 0.0f, 0.0f, 1.0f, 1.0f,
+ -0.5f, 0.5f, 0.5f, -1.0f, 0.0f, 0.0f, 0.0f, 1.0f,
+ -0.5f, -0.5f, -0.5f, -1.0f, 0.0f, 0.0f, 1.0f, 0.0f,
+ -0.5f, 0.5f, 0.5f, -1.0f, 0.0f, 0.0f, 0.0f, 1.0f,
+ -0.5f, 0.5f, -0.5f, -1.0f, 0.0f, 0.0f, 0.0f, 0.0f,
+
+ -0.5f, 0.5f, -0.5f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f,
+ -0.5f, 0.5f, 0.5f, 0.0f, 1.0f, 0.0f, 1.0f, 1.0f,
+ 0.5f, 0.5f, 0.5f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f,
+ -0.5f, 0.5f, -0.5f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f,
+ 0.5f, 0.5f, 0.5f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f,
+ 0.5f, 0.5f, -0.5f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f,
+
+ 0.5f, 0.5f, -0.5f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f,
+ 0.5f, 0.5f, 0.5f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f,
+ 0.5f, -0.5f, 0.5f, 1.0f, 0.0f, 0.0f, 0.0f, 1.0f,
+ 0.5f, 0.5f, -0.5f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f,
+ 0.5f, -0.5f, 0.5f, 1.0f, 0.0f, 0.0f, 0.0f, 1.0f,
+ 0.5f, -0.5f, -0.5f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f,
+
+ 0.5f, -0.5f, -0.5f, 0.0f, -1.0f, 0.0f, 1.0f, 0.0f,
+ 0.5f, -0.5f, 0.5f, 0.0f, -1.0f, 0.0f, 1.0f, 1.0f,
+ -0.5f, -0.5f, 0.5f, 0.0f, -1.0f, 0.0f, 0.0f, 1.0f,
+ 0.5f, -0.5f, -0.5f, 0.0f, -1.0f, 0.0f, 1.0f, 0.0f,
+ -0.5f, -0.5f, 0.5f, 0.0f, -1.0f, 0.0f, 0.0f, 1.0f,
+ -0.5f, -0.5f, -0.5f, 0.0f, -1.0f, 0.0f, 0.0f, 0.0f,
+
+ 0.5f, -0.5f, 0.5f, 0.0f, 0.0f, 1.0f, 1.0f, 0.0f,
+ 0.5f, 0.5f, 0.5f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f,
+ -0.5f, 0.5f, 0.5f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f,
+ 0.5f, -0.5f, 0.5f, 0.0f, 0.0f, 1.0f, 1.0f, 0.0f,
+ -0.5f, 0.5f, 0.5f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f,
+ -0.5f, -0.5f, 0.5f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f,
+
+ 0.5f, 0.5f, -0.5f, 0.0f, 0.0f, -1.0f, 1.0f, 0.0f,
+ 0.5f, -0.5f, -0.5f, 0.0f, 0.0f, -1.0f, 1.0f, 1.0f,
+ -0.5f, -0.5f, -0.5f, 0.0f, 0.0f, -1.0f, 0.0f, 1.0f,
+ 0.5f, 0.5f, -0.5f, 0.0f, 0.0f, -1.0f, 1.0f, 0.0f,
+ -0.5f, -0.5f, -0.5f, 0.0f, 0.0f, -1.0f, 0.0f, 1.0f,
+ -0.5f, 0.5f, -0.5f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f
+};
+
+#endif
diff --git a/examples/sensors/cubehouse/cubehouse.pro b/examples/sensors/cubehouse/cubehouse.pro
new file mode 100644
index 00000000..b760ad7e
--- /dev/null
+++ b/examples/sensors/cubehouse/cubehouse.pro
@@ -0,0 +1,31 @@
+TEMPLATE = app
+TARGET = cubehouse
+CONFIG += qt debug warn_on
+requires(contains(QT_CONFIG,opengl))
+QT += opengl sensors
+SOURCES = \
+ view.cpp \
+ main.cpp \
+ camera.cpp \
+ light.cpp \
+ lightmodel.cpp \
+ material.cpp \
+ painter.cpp
+HEADERS = \
+ view.h \
+ teapot.h \
+ cube.h \
+ camera.h light.h \
+ lightmodel.h \
+ material.h \
+ painter.h
+contains(QT_CONFIG,opengles2) {
+ SOURCES += painter_shader.cpp
+} else {
+ SOURCES += painter_fixed.cpp
+}
+RESOURCES = cubehouse.qrc
+
+symbian {
+ TARGET.CAPABILITY = ReadUserData
+}
diff --git a/examples/sensors/cubehouse/cubehouse.qrc b/examples/sensors/cubehouse/cubehouse.qrc
new file mode 100644
index 00000000..94b5ae67
--- /dev/null
+++ b/examples/sensors/cubehouse/cubehouse.qrc
@@ -0,0 +1,8 @@
+<!DOCTYPE RCC><RCC version="1.0">
+<qresource>
+ <file>qtlogo.png</file>
+ <file>lighting.vsh</file>
+ <file>material.fsh</file>
+ <file>texture.fsh</file>
+</qresource>
+</RCC>
diff --git a/examples/sensors/cubehouse/light.cpp b/examples/sensors/cubehouse/light.cpp
new file mode 100644
index 00000000..2d98b86c
--- /dev/null
+++ b/examples/sensors/cubehouse/light.cpp
@@ -0,0 +1,675 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the examples of the Qt Mobility Components.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "light.h"
+#include <QtCore/qmath.h>
+#include <QtGui/qmatrix4x4.h>
+
+/*!
+ \class Light
+ \brief The Light class represents the parameters of a light in a 3D scene.
+ \since 4.7
+ \ingroup qt3d
+ \ingroup qt3d::painting
+
+ The functions in this class are a convenience wrapper for the OpenGL enumerations
+ which control each light source in a 3D scene. For the general ambient light in a
+ scene, not from a source refer to QGLLightModel.
+
+ The ambient, diffuse and specular components of the light can be controlled for by
+ colour, and are set by the following functions:
+ \list
+ \o setAmbientColor()
+ \o setDiffuseColor()
+ \o setSpecularColor()
+ \endlist
+ Other than changing intensity by using darker color values, see below for how to
+ change the intensity of the light with distance from the lit object.
+
+ Light sources are of two types, directional and positional, described by the
+ enumeration Light::LightType. By default a light source is directional.
+
+ A directional light source is infinitely distant, such that its rays are all
+ parallel, to a direction \bold vector. This vector is set by the setDirection()
+ function. If the light source is not directional when setDirection() is called, its
+ type is changed to Directional. Directional light sources model real world light
+ sources like the sun. Such light sources are not located at any particular point
+ and affect the scene evenly.
+
+ In the OpenGL model-view, a directional light is represented by a 4d vector, with
+ the 4th value, \c w, set to 0.0f. This means that the spatial data of the light
+ is not changed during certain transformations, for example translation.
+ See \l {3D Math Basis} for a fuller explanation of this.
+
+ Calling the setPosition() function defines the light source to be located at a given
+ \bold point, a finite distance from the lit object. If the light source is not
+ positional when this function is called its type is changed to Positional.
+
+ A positional light source models a real world lamp, such as a light-bulb or
+ car headlight. Since it is a finite distance from the lit object the rays diverge
+ and lighting calculations are thus more complex.
+
+ In OpenGL the light has its spatial data \c w value set to 1.0f, resulting in the
+ lights position being changed along with other objects in the scene by transformations
+ such as translation. See \l {3D Math Basis} for more.
+
+ Positional lights are by default point sources, like the light-bulb where light
+ radiates in all directions. Calling the spotAngle() function sets an angle to
+ restrict the light from a positional source to a cone like the car headlight. This
+ makes the light behave like a spotlight, where objects outside of the cone of the
+ light do not receive any light from that source.
+
+ The spotlight may be further specified by its spotExponent() which dictates the
+ behaviour of the cutoff at the lighting cone; and by the attenuation functions
+ which are the terms in the following equation:
+ \image attenuation.png
+ here \c d is the distance of the light from the lit object, and A is the attenuation
+ factor which is a multiplier of the light source, determining its intensity at the
+ lit object. The terms in the denominator are:
+ \list
+ \o constantAttenuation() - default 1.0
+ \raw HTML
+ k<sub>c</sub>
+ \endraw
+ \o linearAttenuation() - default 0.0
+ \raw HTML
+ k<sub>l</sub>
+ \endraw
+ \o quadraticAttenuation() - default 0.0
+ \raw HTML
+ k<sub>q</sub>
+ \endraw
+ \endlist
+ When these terms are large the light contributed by the source becomes much weaker
+ with distance from the object.
+*/
+
+class LightPrivate
+{
+public:
+ LightPrivate() :
+ type(Light::Directional),
+ position(0.0f, 0.0f, 1.0f),
+ ambientColor(0, 0, 0, 255),
+ diffuseColor(255, 255, 255, 255),
+ specularColor(255, 255, 255, 255),
+ spotDirection(0.0f, 0.0f, -1.0f),
+ spotExponent(0.0f),
+ spotAngle(180.0f),
+ spotCosAngle(-1.0f),
+ constantAttenuation(1.0f),
+ linearAttenuation(0.0f),
+ quadraticAttenuation(0.0f)
+ {
+ }
+
+ Light::LightType type;
+ QVector3D position;
+ QColor ambientColor;
+ QColor diffuseColor;
+ QColor specularColor;
+ QVector3D spotDirection;
+ qreal spotExponent;
+ qreal spotAngle;
+ qreal spotCosAngle;
+ qreal constantAttenuation;
+ qreal linearAttenuation;
+ qreal quadraticAttenuation;
+};
+
+
+/*!
+ \enum Light::LightType
+ This enum defines the possible types of light.
+
+ \value Directional The default. Directional lights are infinitely
+ distant from the lit object, and its rays are parallel to a
+ direction vector. Use setDirection() to make a light Directional.
+ \value Positional Positional lights are a finite distance from the
+ lit object. Complex lighting with spot-lights, and attenuation
+ are enabled with Positional lighting. Use setPosition() to
+ make a light Positional.
+*/
+
+/*!
+ Constructs a new light parameters object with default values
+ and attaches it to \a parent.
+*/
+Light::Light(QObject *parent)
+ : QObject(parent), d_ptr(new LightPrivate)
+{
+}
+
+/*!
+ Destroys this light parameters object.
+*/
+Light::~Light()
+{
+}
+
+/*!
+ \property Light::type
+ \brief the type of this light; Positional or Directional.
+
+ \sa position(), direction()
+*/
+Light::LightType Light::type() const
+{
+ Q_D(const Light);
+ return d->type;
+}
+
+/*!
+ \property Light::position
+ \brief the position of this light if it is Positional; or a null
+ QVector3D if it is Directional. By default, the light is Directional.
+
+ For a Positional light, the return value is the location in model space
+ of the light, at some finite distance from the origin. The value is
+ transformed by the model-view transformation when the light
+ parameters are applied.
+
+ When the light is Positional OpenGL will obey other parameters relating
+ to the light's position, such as attenuation and spot angle.
+
+ Setting the position converts the light from Directional to Positional.
+
+ \sa direction(), type(), positionChanged()
+*/
+QVector3D Light::position() const
+{
+ Q_D(const Light);
+ if (d->type == Positional)
+ return d->position;
+ else
+ return QVector3D();
+}
+
+void Light::setPosition(const QVector3D& point)
+{
+ Q_D(Light);
+ if (d->type == Positional) {
+ if (d->position != point) {
+ // Only the position() has changed.
+ d->position = point;
+ emit positionChanged();
+ emit lightChanged();
+ }
+ } else {
+ // Both the position() and direction() are changed.
+ d->type = Positional;
+ d->position = point;
+ emit positionChanged();
+ emit directionChanged();
+ emit lightChanged();
+ }
+}
+
+/*!
+ \property Light::direction
+ \brief the direction of this light if it is Directional; or a null
+ QVector3D if it is Positional. By default, the light is Directional.
+
+ For a Directional light, the return value is the direction vector of
+ an infinitely distant directional light, like the sun.
+
+ The default value is (0, 0, 1), for a directional light pointing along
+ the positive z-axis.
+
+ OpenGL will ignore other parameters such as attenuation and spot angle
+ when this value is set, since a directional light has no location.
+ In order to set the direction of a spot light, use the setSpotDirection()
+ function.
+
+ Setting the direction converts the light from Positional to Directional.
+
+ \sa position(), type(), directionChanged()
+*/
+QVector3D Light::direction() const
+{
+ Q_D(const Light);
+ if (d->type == Directional)
+ return d->position;
+ else
+ return QVector3D();
+}
+
+void Light::setDirection(const QVector3D& value)
+{
+ Q_D(Light);
+ if (d->type == Directional) {
+ if (d->position != value) {
+ // Only the direction() has changed.
+ d->position = value;
+ emit directionChanged();
+ emit lightChanged();
+ }
+ } else {
+ // Both the position() and direction() are changed.
+ d->type = Directional;
+ d->position = value;
+ emit positionChanged();
+ emit directionChanged();
+ emit lightChanged();
+ }
+}
+
+/*!
+ \property Light::ambientColor
+ \brief the ambient color of this light. The default value is black.
+
+ \sa diffuseColor(), specularColor(), ambientColorChanged()
+*/
+QColor Light::ambientColor() const
+{
+ Q_D(const Light);
+ return d->ambientColor;
+}
+
+void Light::setAmbientColor(const QColor& value)
+{
+ Q_D(Light);
+ if (d->ambientColor != value) {
+ d->ambientColor = value;
+ emit ambientColorChanged();
+ emit lightChanged();
+ }
+}
+
+/*!
+ \property Light::diffuseColor
+ \brief the diffuse color of this light. The default value is white.
+
+ \sa ambientColor(), specularColor(), diffuseColorChanged()
+*/
+QColor Light::diffuseColor() const
+{
+ Q_D(const Light);
+ return d->diffuseColor;
+}
+
+void Light::setDiffuseColor(const QColor& value)
+{
+ Q_D(Light);
+ if (d->diffuseColor != value) {
+ d->diffuseColor = value;
+ emit diffuseColorChanged();
+ emit lightChanged();
+ }
+}
+
+/*!
+ \property Light::specularColor
+ \brief the specular color of this light. The default value is white.
+
+ \sa ambientColor(), diffuseColor(), specularColorChanged()
+*/
+QColor Light::specularColor() const
+{
+ Q_D(const Light);
+ return d->specularColor;
+}
+
+void Light::setSpecularColor(const QColor& value)
+{
+ Q_D(Light);
+ if (d->specularColor != value) {
+ d->specularColor = value;
+ emit specularColorChanged();
+ emit lightChanged();
+ }
+}
+
+/*!
+ \property Light::spotDirection
+ \brief the direction that a spot-light is shining in.
+
+ A spotlight is a positional light that has a value other than the default
+ for spot angle. The default value is (0, 0, -1).
+
+ This parameter has no effect on a Directional light.
+
+ \sa spotExponent(), spotDirectionChanged()
+*/
+QVector3D Light::spotDirection() const
+{
+ Q_D(const Light);
+ return d->spotDirection;
+}
+
+void Light::setSpotDirection(const QVector3D& vector)
+{
+ Q_D(Light);
+ if (d->spotDirection != vector) {
+ d->spotDirection = vector;
+ emit spotDirectionChanged();
+ emit lightChanged();
+ }
+}
+
+/*!
+ \property Light::spotExponent
+ \brief the exponent value between 0 and 128 that indicates the
+ intensity distribution of a spot-light. The default value is 0,
+ indicating uniform light distribution.
+
+ This parameter has no effect on a Directional light.
+
+ \sa spotAngle(), setPosition(), spotExponentChanged()
+*/
+qreal Light::spotExponent() const
+{
+ Q_D(const Light);
+ return d->spotExponent;
+}
+
+void Light::setSpotExponent(qreal value)
+{
+ Q_D(Light);
+ if (d->spotExponent != value) {
+ d->spotExponent = value;
+ emit spotExponentChanged();
+ emit lightChanged();
+ }
+}
+
+/*!
+ \property Light::spotAngle
+ \brief the angle over which light is spread from this light.
+ It should be between 0 and 90 for spot lights, and 180 for
+ uniform light distribution from a remote light source.
+ The default value is 180.
+
+ This parameter has no effect on a Directional light.
+
+ \sa spotCosAngle(), spotAngleChanged()
+*/
+qreal Light::spotAngle() const
+{
+ Q_D(const Light);
+ return d->spotAngle;
+}
+
+#ifndef M_PI
+#define M_PI 3.14159265358979323846
+#endif
+
+void Light::setSpotAngle(qreal value)
+{
+ Q_D(Light);
+ if (d->spotAngle != value) {
+ d->spotAngle = value;
+ if (value != 180.0f)
+ d->spotCosAngle = qCos(value * M_PI / 180.0f);
+ else
+ d->spotCosAngle = -1.0f;
+ emit spotAngleChanged();
+ emit lightChanged();
+ }
+}
+
+/*!
+ Returns the cosine of spotAngle(), or -1 if spotAngle() is 180.
+
+ The cosine of spotAngle() is useful in lighting algorithms.
+ This function returns a cached copy of the cosine so that it
+ does not need to be computed every time the lighting parameters
+ are read.
+
+ \sa spotAngle()
+*/
+qreal Light::spotCosAngle() const
+{
+ Q_D(const Light);
+ return d->spotCosAngle;
+}
+
+/*!
+ \property Light::constantAttenuation
+ \brief the constant light attenuation factor. The default value is 1.
+
+ This parameter has no effect on a Directional light.
+
+ \sa linearAttenuation(), quadraticAttenuation()
+ \sa constantAttenuationChanged()
+*/
+qreal Light::constantAttenuation() const
+{
+ Q_D(const Light);
+ return d->constantAttenuation;
+}
+
+void Light::setConstantAttenuation(qreal value)
+{
+ Q_D(Light);
+ if (d->constantAttenuation != value) {
+ d->constantAttenuation = value;
+ emit constantAttenuationChanged();
+ emit lightChanged();
+ }
+}
+
+/*!
+ \property Light::linearAttenuation
+ \brief the linear light attenuation factor. The default value is 0.
+
+ This parameter has no effect on a Directional light.
+
+ \sa constantAttenuation(), quadraticAttenuation()
+ \sa linearAttenuationChanged()
+*/
+qreal Light::linearAttenuation() const
+{
+ Q_D(const Light);
+ return d->linearAttenuation;
+}
+
+void Light::setLinearAttenuation(qreal value)
+{
+ Q_D(Light);
+ if (d->linearAttenuation != value) {
+ d->linearAttenuation = value;
+ emit linearAttenuationChanged();
+ emit lightChanged();
+ }
+}
+
+/*!
+ \property Light::quadraticAttenuation
+ \brief the quadratic light attenuation factor. The default value is 0.
+
+ This parameter has no effect on a Directional light.
+
+ \sa constantAttenuation(), linearAttenuation()
+ \sa quadraticAttenuationChanged()
+*/
+qreal Light::quadraticAttenuation() const
+{
+ Q_D(const Light);
+ return d->quadraticAttenuation;
+}
+
+void Light::setQuadraticAttenuation(qreal value)
+{
+ Q_D(Light);
+ if (d->quadraticAttenuation != value) {
+ d->quadraticAttenuation = value;
+ emit quadraticAttenuationChanged();
+ emit lightChanged();
+ }
+}
+
+/*!
+ Returns the position of this light after transforming it from
+ world co-ordinates to eye co-ordinates using \a transform.
+
+ If the light is Directional, then direction() will be transformed,
+ after setting the w co-ordinate to 0. If the light is Positional,
+ then position() will be transformed after setting the w co-ordinate
+ to 1.
+
+ The returned result is suitable to be applied to the GL_POSITION
+ property of \c{glLight()}, assuming that the modelview transformation
+ in the GL context is set to the identity.
+
+ \sa eyeSpotDirection()
+*/
+QVector4D Light::eyePosition(const QMatrix4x4& transform) const
+{
+ Q_D(const Light);
+ if (d->type == Directional)
+ return transform * QVector4D(d->position, 0.0f);
+ else
+ return transform * QVector4D(d->position, 1.0f);
+}
+
+/*!
+ Returns the spotDirection() for this light after transforming it
+ from world co-ordinates to eye co-ordinates using the top-left
+ 3x3 submatrix within \a transform.
+
+ The returned result is suitable to be applied to the GL_SPOT_DIRECTION
+ property of \c{glLight()}, assuming that the modelview transformation
+ in the GL context is set to the identity.
+
+ \sa eyePosition()
+*/
+QVector3D Light::eyeSpotDirection
+ (const QMatrix4x4& transform) const
+{
+ Q_D(const Light);
+ return transform.mapVector(d->spotDirection);
+}
+
+/*!
+ \fn void Light::positionChanged()
+
+ This signal is emitted when position() changes, or when the type()
+ changes between Directional and Positional.
+
+ \sa position(), lightChanged()
+*/
+
+/*!
+ \fn void Light::directionChanged()
+
+ This signal is emitted when direction() changes, or when the type()
+ changes between Directional and Positional.
+
+ \sa direction(), lightChanged()
+*/
+
+/*!
+ \fn void Light::ambientColorChanged()
+
+ This signal is emitted when ambientColor() changes.
+
+ \sa ambientColor(), lightChanged()
+*/
+
+/*!
+ \fn void Light::diffuseColorChanged()
+
+ This signal is emitted when diffuseColor() changes.
+
+ \sa diffuseColor(), lightChanged()
+*/
+
+/*!
+ \fn void Light::specularColorChanged()
+
+ This signal is emitted when specularColor() changes.
+
+ \sa specularColor(), lightChanged()
+*/
+
+/*!
+ \fn void Light::spotDirectionChanged()
+
+ This signal is emitted when spotDirection() changes.
+
+ \sa spotDirection(), lightChanged()
+*/
+
+/*!
+ \fn void Light::spotExponentChanged()
+
+ This signal is emitted when spotExponent() changes.
+
+ \sa spotExponent(), lightChanged()
+*/
+
+/*!
+ \fn void Light::spotAngleChanged()
+
+ This signal is emitted when spotAngle() changes.
+
+ \sa spotAngle(), lightChanged()
+*/
+
+/*!
+ \fn void Light::constantAttenuationChanged()
+
+ This signal is emitted when constantAttenuation() changes.
+
+ \sa constantAttenuation(), lightChanged()
+*/
+
+/*!
+ \fn void Light::linearAttenuationChanged()
+
+ This signal is emitted when linearAttenuation() changes.
+
+ \sa linearAttenuation(), lightChanged()
+*/
+
+/*!
+ \fn void Light::quadraticAttenuationChanged()
+
+ This signal is emitted when quadraticAttenuation() changes.
+
+ \sa quadraticAttenuation(), lightChanged()
+*/
+
+/*!
+ \fn void Light::lightChanged()
+
+ This signal is emitted when any of the properties on the light changes.
+*/
diff --git a/examples/sensors/cubehouse/light.h b/examples/sensors/cubehouse/light.h
new file mode 100644
index 00000000..753e57a6
--- /dev/null
+++ b/examples/sensors/cubehouse/light.h
@@ -0,0 +1,141 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the examples of the Qt Mobility Components.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef LIGHT_H
+#define LIGHT_H
+
+#include <QtCore/qobject.h>
+#include <QtCore/qscopedpointer.h>
+#include <QtGui/qcolor.h>
+#include <QtGui/qvector3d.h>
+#include <QtGui/qvector4d.h>
+
+class LightPrivate;
+QT_BEGIN_NAMESPACE
+class QMatrix4x4;
+QT_END_NAMESPACE
+
+class Light : public QObject
+{
+ Q_OBJECT
+ Q_ENUMS(LightType)
+ Q_PROPERTY(LightType type READ type)
+ Q_PROPERTY(QVector3D position READ position WRITE setPosition NOTIFY positionChanged)
+ Q_PROPERTY(QVector3D direction READ direction WRITE setDirection NOTIFY directionChanged)
+ Q_PROPERTY(QColor ambientColor READ ambientColor WRITE setAmbientColor NOTIFY ambientColorChanged)
+ Q_PROPERTY(QColor diffuseColor READ diffuseColor WRITE setDiffuseColor NOTIFY diffuseColorChanged)
+ Q_PROPERTY(QColor specularColor READ specularColor WRITE setSpecularColor NOTIFY specularColorChanged)
+ Q_PROPERTY(QVector3D spotDirection READ spotDirection WRITE setSpotDirection NOTIFY spotDirectionChanged)
+ Q_PROPERTY(qreal spotExponent READ spotExponent WRITE setSpotExponent NOTIFY spotExponentChanged)
+ Q_PROPERTY(qreal spotAngle READ spotAngle WRITE setSpotAngle NOTIFY spotAngleChanged)
+ Q_PROPERTY(qreal constantAttenuation READ constantAttenuation WRITE setConstantAttenuation NOTIFY constantAttenuationChanged)
+ Q_PROPERTY(qreal linearAttenuation READ linearAttenuation WRITE setLinearAttenuation NOTIFY linearAttenuationChanged)
+ Q_PROPERTY(qreal quadraticAttenuation READ quadraticAttenuation WRITE setQuadraticAttenuation NOTIFY quadraticAttenuationChanged)
+public:
+ enum LightType {
+ Directional,
+ Positional
+ };
+
+ Light(QObject *parent = 0);
+ ~Light();
+
+ Light::LightType type() const;
+
+ QVector3D position() const;
+ void setPosition(const QVector3D& value);
+
+ QVector3D direction() const;
+ void setDirection(const QVector3D& value);
+
+ QColor ambientColor() const;
+ void setAmbientColor(const QColor& value);
+
+ QColor diffuseColor() const;
+ void setDiffuseColor(const QColor& value);
+
+ QColor specularColor() const;
+ void setSpecularColor(const QColor& value);
+
+ QVector3D spotDirection() const;
+ void setSpotDirection(const QVector3D& value);
+
+ qreal spotExponent() const;
+ void setSpotExponent(qreal value);
+
+ qreal spotAngle() const;
+ void setSpotAngle(qreal value);
+
+ qreal spotCosAngle() const;
+
+ qreal constantAttenuation() const;
+ void setConstantAttenuation(qreal value);
+
+ qreal linearAttenuation() const;
+ void setLinearAttenuation(qreal value);
+
+ qreal quadraticAttenuation() const;
+ void setQuadraticAttenuation(qreal value);
+
+ QVector4D eyePosition(const QMatrix4x4& transform) const;
+ QVector3D eyeSpotDirection(const QMatrix4x4& transform) const;
+
+Q_SIGNALS:
+ void positionChanged();
+ void directionChanged();
+ void ambientColorChanged();
+ void diffuseColorChanged();
+ void specularColorChanged();
+ void spotDirectionChanged();
+ void spotExponentChanged();
+ void spotAngleChanged();
+ void constantAttenuationChanged();
+ void linearAttenuationChanged();
+ void quadraticAttenuationChanged();
+ void lightChanged();
+
+private:
+ QScopedPointer<LightPrivate> d_ptr;
+
+ Q_DECLARE_PRIVATE(Light)
+ Q_DISABLE_COPY(Light)
+};
+
+#endif
diff --git a/examples/sensors/cubehouse/lighting.vsh b/examples/sensors/cubehouse/lighting.vsh
new file mode 100644
index 00000000..22bd0042
--- /dev/null
+++ b/examples/sensors/cubehouse/lighting.vsh
@@ -0,0 +1,121 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the examples of the Qt Mobility Components.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+// Algorithm from section 2.14.1 of OpenGL 2.1 specification.
+
+attribute highp vec4 vertex;
+attribute highp vec3 normal;
+attribute highp vec4 texcoord;
+uniform mediump mat4 matrix;
+uniform mediump mat4 modelView;
+uniform mediump mat3 normalMatrix;
+varying highp vec4 qTexCoord;
+
+uniform mediump vec4 scli; // Specular intensity of the light
+uniform mediump vec3 pli; // Position of the light
+uniform mediump float pliw; // 0 for directional, 1 for positional.
+uniform mediump vec4 acm; // Ambient color of the material
+uniform mediump vec4 dcm; // Diffuse color of the material
+uniform mediump vec4 scm; // Specular color of the material
+uniform mediump float srm; // Specular exponent of the material
+uniform mediump vec4 acs; // Light model's ambient color of the scene
+uniform bool viewerAtInfinity; // Light model indicates viewer at infinity
+
+varying mediump vec4 qColor;
+varying mediump vec4 qSecondaryColor;
+
+void qLightVertex(vec4 vertex, vec3 normal)
+{
+ int i, material;
+ vec3 toEye, toLight, h;
+ float angle, spot, attenuation;
+ vec4 color, scolor;
+ vec4 adcomponent, scomponent;
+
+ // Start with the material's emissive color and the ambient scene color.
+ // ecm is assumed to be black.
+ color = acm * acs;
+ scolor = vec4(0, 0, 0, 0);
+
+ // Vector from the vertex to the eye position (i.e. the origin).
+ if (viewerAtInfinity)
+ toEye = vec3(0, 0, 1);
+ else
+ toEye = normalize(-vertex.xyz);
+
+ // Determine the cosine of the angle between the normal and the
+ // vector from the vertex to the light.
+ if (pliw == 0.0)
+ toLight = normalize(pli);
+ else
+ toLight = normalize(pli - vertex.xyz);
+ angle = max(dot(normal, toLight), 0.0);
+
+ // Calculate the ambient and diffuse light components.
+ // Assumptions: acli = (0, 0, 0, 1), dcli = (1, 1, 1, 1).
+ adcomponent = acm * vec4(0, 0, 0, 1) + angle * dcm;
+
+ // Calculate the specular light components.
+ if (angle != 0.0) {
+ h = normalize(toLight + toEye);
+ angle = max(dot(normal, h), 0.0);
+ scomponent = pow(angle, srm) * scm; // scli = (1, 1, 1, 1).
+ } else {
+ scomponent = vec4(0, 0, 0, 0);
+ }
+
+ // Add up the color components we computed.
+ color += adcomponent;
+ scolor += scomponent;
+
+ // Generate the final output colors.
+ float alpha = dcm.a;
+ qColor = vec4(clamp(color.rgb, 0.0, 1.0), alpha);
+ qSecondaryColor = clamp(scolor, 0.0, 1.0);
+}
+
+void main(void)
+{
+ gl_Position = matrix * vertex;
+ highp vec4 vertex = modelView * vertex;
+ highp vec3 norm = normalize(normalMatrix * normal);
+ qLightVertex(vertex, norm);
+ qTexCoord = texcoord;
+}
diff --git a/examples/sensors/cubehouse/lightmodel.cpp b/examples/sensors/cubehouse/lightmodel.cpp
new file mode 100644
index 00000000..dfed8380
--- /dev/null
+++ b/examples/sensors/cubehouse/lightmodel.cpp
@@ -0,0 +1,243 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the examples of the Qt Mobility Components.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "lightmodel.h"
+
+/*!
+ \class LightModel
+ \brief The LightModel class defines the lighting model to use for the scene.
+ \since 4.7
+ \ingroup qt3d
+ \ingroup qt3d::painting
+*/
+
+/*!
+ \enum LightModel::Model
+ This enum defines the type of lighting model to use: one-sided or two-sided.
+
+ \value OneSided One-sided lighting, with the front face material used for both front and back faces.
+ \value TwoSided Two-sided lighting, with separate front and back face materials.
+*/
+
+/*!
+ \enum LightModel::ColorControl
+ This enum controls the number of colors to be generated by the lighting computation.
+
+ \value SingleColor A single color is generated by the lighting computation.
+ \value SeparateSpecularColor A separate specular color computation is
+ performed and then summed into the pixel color after texture mapping.
+*/
+
+/*!
+ \enum LightModel::ViewerPosition
+ This enum defines the position of the viewer for the purposes of lighting calculations.
+
+ \value ViewerAtInfinity The viewer is at infinity along the -z axis.
+ \value LocalViewer The viewer is at the local origin in eye coordinates.
+*/
+
+class LightModelPrivate
+{
+public:
+ LightModelPrivate()
+ : model(LightModel::OneSided),
+ colorControl(LightModel::SingleColor),
+ viewerPosition(LightModel::ViewerAtInfinity)
+ {
+ ambientSceneColor.setRgbF(0.2, 0.2, 0.2, 1.0);
+ }
+
+ LightModel::Model model;
+ LightModel::ColorControl colorControl;
+ LightModel::ViewerPosition viewerPosition;
+ QColor ambientSceneColor;
+};
+
+/*!
+ Constructs a light model object with default values and attach
+ it to \a parent.
+*/
+LightModel::LightModel(QObject *parent)
+ : QObject(parent), d_ptr(new LightModelPrivate)
+{
+}
+
+/*!
+ Destroys this light model.
+*/
+LightModel::~LightModel()
+{
+}
+
+/*!
+ \property LightModel::model
+ \brief the lighting model to use, either OneSided or TwoSided.
+ The default is OneSided.
+
+ \sa modelChanged()
+*/
+LightModel::Model LightModel::model() const
+{
+ Q_D(const LightModel);
+ return d->model;
+}
+
+void LightModel::setModel(LightModel::Model value)
+{
+ Q_D(LightModel);
+ if (d->model != value) {
+ d->model = value;
+ emit modelChanged();
+ emit lightModelChanged();
+ }
+}
+
+/*!
+ \property LightModel::colorControl
+ \brief the color control mode, either SingleColor or
+ SeparateSpecularColor. The default value is SingleColor.
+
+ If SingleColor is specified, then a single color is calculated
+ by the lighting computation for a vertex. If SeparateSpecularColor
+ is specified, then a separate specular color computation is
+ performed and then summed into the pixel color after texture mapping.
+
+ \sa colorControlChanged()
+*/
+LightModel::ColorControl LightModel::colorControl() const
+{
+ Q_D(const LightModel);
+ return d->colorControl;
+}
+
+void LightModel::setColorControl(LightModel::ColorControl value)
+{
+ Q_D(LightModel);
+ if (d->colorControl != value) {
+ d->colorControl = value;
+ emit colorControlChanged();
+ emit lightModelChanged();
+ }
+}
+
+/*!
+ \property LightModel::viewerPosition
+ \brief the viewer position, either ViewerAtInfinity or LocalViewer.
+ The default value is ViewerAtInfinity.
+
+ \sa viewerPositionChanged()
+*/
+LightModel::ViewerPosition LightModel::viewerPosition() const
+{
+ Q_D(const LightModel);
+ return d->viewerPosition;
+}
+
+void LightModel::setViewerPosition(LightModel::ViewerPosition value)
+{
+ Q_D(LightModel);
+ if (d->viewerPosition != value) {
+ d->viewerPosition = value;
+ emit viewerPositionChanged();
+ emit lightModelChanged();
+ }
+}
+
+/*!
+ \property LightModel::ambientSceneColor
+ \brief the ambient color of the entire scene. The default value
+ is (0.2, 0.2, 0.2, 1.0).
+
+ \sa ambientSceneColorChanged()
+*/
+QColor LightModel::ambientSceneColor() const
+{
+ Q_D(const LightModel);
+ return d->ambientSceneColor;
+}
+
+void LightModel::setAmbientSceneColor(const QColor& value)
+{
+ Q_D(LightModel);
+ if (d->ambientSceneColor != value) {
+ d->ambientSceneColor = value;
+ emit ambientSceneColorChanged();
+ emit lightModelChanged();
+ }
+}
+
+/*!
+ \fn void LightModel::modelChanged()
+
+ This signal is emitted when model() changes.
+
+ \sa model(), lightModelChanged()
+*/
+
+/*!
+ \fn void LightModel::colorControlChanged()
+
+ This signal is emitted when colorControl() changes.
+
+ \sa colorControl(), lightModelChanged()
+*/
+
+/*!
+ \fn void LightModel::viewerPositionChanged()
+
+ This signal is emitted when viewerPosition() changes.
+
+ \sa viewerPosition(), lightModelChanged()
+*/
+
+/*!
+ \fn void LightModel::ambientSceneColorChanged()
+
+ This signal is emitted when ambientSceneColor() changes.
+
+ \sa ambientSceneColor(), lightModelChanged()
+*/
+
+/*!
+ \fn void LightModel::lightModelChanged()
+
+ This signal is emitted when one of model(), colorControl(),
+ viewerPosition(), or ambientSceneColor() changes.
+*/
diff --git a/examples/sensors/cubehouse/lightmodel.h b/examples/sensors/cubehouse/lightmodel.h
new file mode 100644
index 00000000..374d5240
--- /dev/null
+++ b/examples/sensors/cubehouse/lightmodel.h
@@ -0,0 +1,108 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the examples of the Qt Mobility Components.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef LIGHTMODEL_H
+#define LIGHTMODEL_H
+
+#include <QtCore/qobject.h>
+#include <QtCore/qscopedpointer.h>
+#include <QtGui/qcolor.h>
+
+class LightModelPrivate;
+
+class LightModel : public QObject
+{
+ Q_OBJECT
+ Q_ENUMS(Model)
+ Q_ENUMS(ColorControl)
+ Q_ENUMS(ViewerPosition)
+ Q_PROPERTY(Model model READ model WRITE setModel NOTIFY modelChanged)
+ Q_PROPERTY(ColorControl colorControl READ colorControl WRITE setColorControl NOTIFY colorControlChanged)
+ Q_PROPERTY(ViewerPosition viewerPosition READ viewerPosition WRITE setViewerPosition NOTIFY viewerPositionChanged)
+ Q_PROPERTY(QColor ambientSceneColor READ ambientSceneColor WRITE setAmbientSceneColor NOTIFY ambientSceneColorChanged)
+public:
+ explicit LightModel(QObject *parent = 0);
+ ~LightModel();
+
+ enum Model
+ {
+ OneSided,
+ TwoSided
+ };
+
+ enum ColorControl
+ {
+ SingleColor,
+ SeparateSpecularColor
+ };
+
+ enum ViewerPosition
+ {
+ ViewerAtInfinity,
+ LocalViewer
+ };
+
+ LightModel::Model model() const;
+ void setModel(LightModel::Model value);
+
+ LightModel::ColorControl colorControl() const;
+ void setColorControl(LightModel::ColorControl value);
+
+ LightModel::ViewerPosition viewerPosition() const;
+ void setViewerPosition(LightModel::ViewerPosition value);
+
+ QColor ambientSceneColor() const;
+ void setAmbientSceneColor(const QColor& value);
+
+Q_SIGNALS:
+ void modelChanged();
+ void colorControlChanged();
+ void viewerPositionChanged();
+ void ambientSceneColorChanged();
+ void lightModelChanged();
+
+private:
+ QScopedPointer<LightModelPrivate> d_ptr;
+
+ Q_DECLARE_PRIVATE(LightModel)
+ Q_DISABLE_COPY(LightModel)
+};
+
+#endif
diff --git a/examples/sensors/cubehouse/main.cpp b/examples/sensors/cubehouse/main.cpp
new file mode 100644
index 00000000..6425e146
--- /dev/null
+++ b/examples/sensors/cubehouse/main.cpp
@@ -0,0 +1,57 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the examples of the Qt Mobility Components.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QApplication>
+#include "view.h"
+
+int main(int argc, char *argv[])
+{
+ QApplication app(argc, argv);
+ View view;
+ if (QApplication::arguments().contains("-framerate"))
+ view.setShowFrameRate(true);
+ if (QApplication::arguments().contains("-maximize"))
+ view.showMaximized();
+ else if (QApplication::arguments().contains("-fullscreen"))
+ view.showFullScreen();
+ else
+ view.show();
+ return app.exec();
+}
diff --git a/examples/sensors/cubehouse/material.cpp b/examples/sensors/cubehouse/material.cpp
new file mode 100644
index 00000000..e3f66e26
--- /dev/null
+++ b/examples/sensors/cubehouse/material.cpp
@@ -0,0 +1,331 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the examples of the Qt Mobility Components.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "material.h"
+
+/*!
+ \class Material
+ \brief The Material class describes material properties for OpenGL drawing.
+ \since 4.7
+ \ingroup qt3d
+ \ingroup qt3d::painting
+*/
+
+class MaterialPrivate
+{
+public:
+ explicit MaterialPrivate();
+
+ QColor basicColor;
+ QColor ambientColor;
+ QColor diffuseColor;
+ QColor specularColor;
+ QColor emittedLight;
+ qreal shininess;
+};
+
+MaterialPrivate::MaterialPrivate()
+ : basicColor(255, 255, 255, 255),
+ specularColor(0, 0, 0, 255),
+ emittedLight(0, 0, 0, 255),
+ shininess(0)
+{
+ ambientColor.setRgbF(0.2f, 0.2f, 0.2f, 1.0f);
+ diffuseColor.setRgbF(0.8f, 0.8f, 0.8f, 1.0f);
+}
+
+/*!
+ Constructs a Material object with its default values,
+ and attaches it to \a parent.
+*/
+Material::Material(QObject *parent)
+ : QObject(parent), d_ptr(new MaterialPrivate)
+{
+}
+
+/*!
+ Destroys this Material object.
+*/
+Material::~Material()
+{
+}
+
+/*!
+ \property Material::basicColor
+ \brief the basic color of the material. The default value
+ is (1.0, 1.0, 1.0, 1.0).
+
+ The basic color is used by effects that don't implement
+ material-based lighting. It is ignored by material-based
+ lighting effects.
+
+ \sa ambientColor(), diffuseColor(), basicColorChanged(), setColor()
+*/
+QColor Material::basicColor() const
+{
+ Q_D(const Material);
+ return d->basicColor;
+}
+
+void Material::setBasicColor(const QColor& value)
+{
+ Q_D(Material);
+ if (d->basicColor != value) {
+ d->basicColor = value;
+ emit basicColorChanged();
+ emit materialChanged();
+ }
+}
+
+/*!
+ \property Material::ambientColor
+ \brief the ambient color of the material. The default value
+ is (0.2, 0.2, 0.2, 1.0).
+
+ \sa diffuseColor(), specularColor(), ambientColorChanged()
+*/
+QColor Material::ambientColor() const
+{
+ Q_D(const Material);
+ return d->ambientColor;
+}
+
+void Material::setAmbientColor(const QColor& value)
+{
+ Q_D(Material);
+ if (d->ambientColor != value) {
+ d->ambientColor = value;
+ emit ambientColorChanged();
+ emit materialChanged();
+ }
+}
+
+/*!
+ \property Material::diffuseColor
+ \brief the diffuse color of the material. The default value
+ is (0.8, 0.8, 0.8, 1.0).
+
+ \sa ambientColor(), specularColor(), diffuseColorChanged()
+*/
+QColor Material::diffuseColor() const
+{
+ Q_D(const Material);
+ return d->diffuseColor;
+}
+
+void Material::setDiffuseColor(const QColor& value)
+{
+ Q_D(Material);
+ if (d->diffuseColor != value) {
+ d->diffuseColor = value;
+ emit diffuseColorChanged();
+ emit materialChanged();
+ }
+}
+
+/*!
+ \property Material::specularColor
+ \brief the specular color of the material. The default value
+ is (0, 0, 0, 1).
+
+ \sa ambientColor(), diffuseColor(), specularColorChanged()
+*/
+QColor Material::specularColor() const
+{
+ Q_D(const Material);
+ return d->specularColor;
+}
+
+void Material::setSpecularColor(const QColor& value)
+{
+ Q_D(Material);
+ if (d->specularColor != value) {
+ d->specularColor = value;
+ emit specularColorChanged();
+ emit materialChanged();
+ }
+}
+
+/*!
+ \property Material::emittedLight
+ \brief the emitted light intensity of the material.
+ The default value is (0.0, 0.0, 0.0, 1.0), which indicates
+ that the material does not emit any light.
+
+ \sa emittedLightChanged()
+*/
+QColor Material::emittedLight() const
+{
+ Q_D(const Material);
+ return d->emittedLight;
+}
+
+void Material::setEmittedLight(const QColor& value)
+{
+ Q_D(Material);
+ if (d->emittedLight != value) {
+ d->emittedLight = value;
+ emit emittedLightChanged();
+ emit materialChanged();
+ }
+}
+
+/*!
+ \property Material::color
+ \brief the overall color of the material. The default value
+ is (1.0, 1.0, 1.0, 1.0).
+
+ This is a convenience property. When read it returns basicColor().
+ When written, it sets basicColor() to the value, ambientColor()
+ to 20% of the value, and diffuseColor() to 80% of the value.
+ The result is that regardless of whether lighting is used or not,
+ the material will appear to have a similar color.
+
+ \sa basicColor(), ambientColor(), diffuseColor()
+*/
+QColor Material::color() const
+{
+ Q_D(const Material);
+ return d->basicColor;
+}
+
+void Material::setColor(const QColor& value)
+{
+ Q_D(Material);
+ d->basicColor = value;
+ d->ambientColor.setRgbF
+ (value.redF() * 0.2f, value.greenF() * 0.2f,
+ value.blueF() * 0.2f, value.alphaF());
+ d->diffuseColor.setRgbF
+ (value.redF() * 0.8f, value.greenF() * 0.8f,
+ value.blueF() * 0.8f, value.alphaF());
+ emit basicColorChanged();
+ emit ambientColorChanged();
+ emit diffuseColorChanged();
+ emit materialChanged();
+}
+
+/*!
+ \property Material::shininess
+ \brief the specular exponent of the material, or how shiny it is.
+ Must be between 0 and 128. The default value is 0. A value outside
+ this range will be clamped to the range when the property is set.
+
+ \sa shininessChanged()
+*/
+qreal Material::shininess() const
+{
+ Q_D(const Material);
+ return d->shininess;
+}
+
+void Material::setShininess(qreal value)
+{
+ Q_D(Material);
+ if (value < 0)
+ value = 0;
+ else if (value > 128)
+ value = 128;
+ if (d->shininess != value) {
+ d->shininess = value;
+ emit shininessChanged();
+ emit materialChanged();
+ }
+}
+
+/*!
+ \fn void Material::basicColorChanged()
+
+ This signal is emitted when basicColor() changes.
+
+ \sa basicColor(), setBasicColor(), materialChanged()
+*/
+
+/*!
+ \fn void Material::ambientColorChanged()
+
+ This signal is emitted when ambientColor() changes.
+
+ \sa ambientColor(), setAmbientColor(), materialChanged()
+*/
+
+/*!
+ \fn void Material::diffuseColorChanged()
+
+ This signal is emitted when diffuseColor() changes.
+
+ \sa diffuseColor(), setDiffuseColor(), materialChanged()
+*/
+
+/*!
+ \fn void Material::specularColorChanged()
+
+ This signal is emitted when specularColor() changes.
+
+ \sa specularColor(), setSpecularColor(), materialChanged()
+*/
+
+/*!
+ \fn void Material::emittedLightChanged()
+
+ This signal is emitted when emittedLight() changes.
+
+ \sa emittedLight(), setEmittedLight(), materialChanged()
+*/
+
+/*!
+ \fn void Material::shininessChanged()
+
+ This signal is emitted when shininess() changes.
+
+ \sa shininess(), setShininess(), materialChanged()
+*/
+
+/*!
+ \fn void Material::materialChanged()
+
+ This signal is emitted when one of basicColor(), ambientColor(),
+ diffuseColor(), specularColor(), emittedLight(), shiniess(),
+ or texture() changes.
+
+ \sa basicColorChanged(), ambientColorChanged(), diffuseColorChanged()
+ \sa specularColorChanged(), emittedLightChanged(), shininessChanged()
+ \sa texturesChanged()
+*/
diff --git a/examples/sensors/cubehouse/material.fsh b/examples/sensors/cubehouse/material.fsh
new file mode 100644
index 00000000..cce0293e
--- /dev/null
+++ b/examples/sensors/cubehouse/material.fsh
@@ -0,0 +1,47 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the examples of the Qt Mobility Components.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+varying mediump vec4 qColor;
+varying mediump vec4 qSecondaryColor;
+
+void main(void)
+{
+ gl_FragColor = clamp(qColor + vec4(qSecondaryColor.xyz, 0.0), 0.0, 1.0);
+}
diff --git a/examples/sensors/cubehouse/material.h b/examples/sensors/cubehouse/material.h
new file mode 100644
index 00000000..3ed9527e
--- /dev/null
+++ b/examples/sensors/cubehouse/material.h
@@ -0,0 +1,101 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the examples of the Qt Mobility Components.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef MATERIAL_H
+#define MATERIAL_H
+
+#include <QtCore/qobject.h>
+#include <QtCore/qscopedpointer.h>
+#include <QtGui/qcolor.h>
+
+class MaterialPrivate;
+
+class Material : public QObject
+{
+ Q_OBJECT
+ Q_PROPERTY(QColor basicColor READ basicColor WRITE setBasicColor NOTIFY basicColorChanged)
+ Q_PROPERTY(QColor ambientColor READ ambientColor WRITE setAmbientColor NOTIFY ambientColorChanged)
+ Q_PROPERTY(QColor diffuseColor READ diffuseColor WRITE setDiffuseColor NOTIFY diffuseColorChanged)
+ Q_PROPERTY(QColor specularColor READ specularColor WRITE setSpecularColor NOTIFY specularColorChanged)
+ Q_PROPERTY(QColor emittedLight READ emittedLight WRITE setEmittedLight NOTIFY emittedLightChanged)
+ Q_PROPERTY(QColor color READ color WRITE setColor NOTIFY basicColorChanged)
+ Q_PROPERTY(qreal shininess READ shininess WRITE setShininess NOTIFY shininessChanged)
+public:
+ explicit Material(QObject *parent = 0);
+ ~Material();
+
+ QColor basicColor() const;
+ void setBasicColor(const QColor& value);
+
+ QColor ambientColor() const;
+ void setAmbientColor(const QColor& value);
+
+ QColor diffuseColor() const;
+ void setDiffuseColor(const QColor& value);
+
+ QColor specularColor() const;
+ void setSpecularColor(const QColor& value);
+
+ QColor emittedLight() const;
+ void setEmittedLight(const QColor& value);
+
+ QColor color() const;
+ void setColor(const QColor& value);
+
+ qreal shininess() const;
+ void setShininess(qreal value);
+
+Q_SIGNALS:
+ void basicColorChanged();
+ void ambientColorChanged();
+ void diffuseColorChanged();
+ void specularColorChanged();
+ void emittedLightChanged();
+ void shininessChanged();
+ void materialChanged();
+
+private:
+ QScopedPointer<MaterialPrivate> d_ptr;
+
+ Q_DECLARE_PRIVATE(Material)
+ Q_DISABLE_COPY(Material)
+};
+
+#endif
diff --git a/examples/sensors/cubehouse/painter.cpp b/examples/sensors/cubehouse/painter.cpp
new file mode 100644
index 00000000..2ec12377
--- /dev/null
+++ b/examples/sensors/cubehouse/painter.cpp
@@ -0,0 +1,83 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the examples of the Qt Mobility Components.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "painter.h"
+#include <QtCore/qvarlengtharray.h>
+
+void Painter::drawQuad(const QVector3D &c1, const QVector3D &c2,
+ const QVector3D &c3, const QVector3D &c4,
+ const QVector3D &normal)
+{
+ QVarLengthArray<float> vertices;
+ QVarLengthArray<float> normals;
+
+ vertices.append(c1.x());
+ vertices.append(c1.y());
+ vertices.append(c1.z());
+ normals.append(normal.x());
+ normals.append(normal.y());
+ normals.append(normal.z());
+
+ vertices.append(c2.x());
+ vertices.append(c2.y());
+ vertices.append(c2.z());
+ normals.append(normal.x());
+ normals.append(normal.y());
+ normals.append(normal.z());
+
+ vertices.append(c3.x());
+ vertices.append(c3.y());
+ vertices.append(c3.z());
+ normals.append(normal.x());
+ normals.append(normal.y());
+ normals.append(normal.z());
+
+ vertices.append(c4.x());
+ vertices.append(c4.y());
+ vertices.append(c4.z());
+ normals.append(normal.x());
+ normals.append(normal.y());
+ normals.append(normal.z());
+
+ setVertices(vertices.constData(), 3);
+ setNormals(normals.constData(), 3);
+
+ glDrawArrays(GL_TRIANGLE_FAN, 0, 4);
+}
diff --git a/examples/sensors/cubehouse/painter.h b/examples/sensors/cubehouse/painter.h
new file mode 100644
index 00000000..883043d5
--- /dev/null
+++ b/examples/sensors/cubehouse/painter.h
@@ -0,0 +1,115 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the examples of the Qt Mobility Components.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef PAINTER_H
+#define PAINTER_H
+
+#include <QtOpenGL/qgl.h>
+#include <QtGui/qmatrix4x4.h>
+
+class Light;
+class LightModel;
+class Material;
+class QGLShaderProgram;
+
+class Painter
+{
+public:
+ Painter() : light(0), lightModel(0) {}
+ virtual ~Painter() {}
+
+ virtual void setMatrices(const QMatrix4x4 &mv, const QMatrix4x4 &proj) = 0;
+ virtual void selectMaterial(Material *material) = 0;
+ virtual void selectTexturedMaterial(Material *material) = 0;
+ virtual void setVertices(const float *array, int stride) = 0;
+ virtual void setTexCoords(const float *array, int stride) = 0;
+ virtual void setNormals(const float *array, int stride) = 0;
+
+ void drawQuad(const QVector3D &c1, const QVector3D &c2,
+ const QVector3D &c3, const QVector3D &c4,
+ const QVector3D &normal);
+
+ void setLight(Light *value) { light = value; }
+ void setLightModel(LightModel *value) { lightModel = value; }
+
+protected:
+ Light *light;
+ LightModel *lightModel;
+};
+
+class FixedFunctionPainter : public Painter
+{
+public:
+ FixedFunctionPainter();
+
+ void setMatrices(const QMatrix4x4 &mv, const QMatrix4x4 &proj);
+ void selectMaterial(Material *material);
+ void selectTexturedMaterial(Material *material);
+ void setVertices(const float *array, int stride);
+ void setTexCoords(const float *array, int stride);
+ void setNormals(const float *array, int stride);
+};
+
+class ShaderPainter : public Painter
+{
+public:
+ ShaderPainter();
+ ~ShaderPainter();
+
+ void setMatrices(const QMatrix4x4 &mv, const QMatrix4x4 &proj);
+ void selectMaterial(Material *material);
+ void selectTexturedMaterial(Material *material);
+ void setVertices(const float *array, int stride);
+ void setTexCoords(const float *array, int stride);
+ void setNormals(const float *array, int stride);
+
+private:
+ QGLShaderProgram *materialProgram;
+ QGLShaderProgram *textureProgram;
+ QGLShaderProgram *currentProgram;
+ QMatrix4x4 combinedMatrix;
+ QMatrix4x4 modelViewMatrix;
+ QMatrix3x3 normalMatrix;
+ bool matricesChanged;
+
+ void updateMaterials(QGLShaderProgram *program, Material *material);
+};
+
+#endif
diff --git a/examples/sensors/cubehouse/painter_fixed.cpp b/examples/sensors/cubehouse/painter_fixed.cpp
new file mode 100644
index 00000000..f2990abc
--- /dev/null
+++ b/examples/sensors/cubehouse/painter_fixed.cpp
@@ -0,0 +1,242 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the examples of the Qt Mobility Components.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "painter.h"
+#include "light.h"
+#include "lightmodel.h"
+#include "material.h"
+
+FixedFunctionPainter::FixedFunctionPainter()
+{
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+ glDisable(GL_CULL_FACE);
+}
+
+static void setMatrix(GLenum type, const QMatrix4x4 &matrix)
+{
+ glMatrixMode(type);
+ if (sizeof(qreal) == sizeof(GLfloat)) {
+ glLoadMatrixf(reinterpret_cast<const GLfloat *>(matrix.constData()));
+ } else {
+ GLfloat mat[16];
+ const qreal *m = matrix.constData();
+ for (int index = 0; index < 16; ++index)
+ mat[index] = m[index];
+ glLoadMatrixf(mat);
+ }
+}
+
+void FixedFunctionPainter::setMatrices
+ (const QMatrix4x4 &mv, const QMatrix4x4 &proj)
+{
+ setMatrix(GL_PROJECTION, proj);
+ setMatrix(GL_MODELVIEW, mv);
+}
+
+static void setLight(int light, const Light *parameters,
+ const QMatrix4x4& transform = QMatrix4x4())
+{
+ GLfloat params[4];
+
+ glMatrixMode(GL_MODELVIEW);
+ glPushMatrix();
+ glLoadIdentity();
+
+ QColor color = parameters->ambientColor();
+ params[0] = color.redF();
+ params[1] = color.greenF();
+ params[2] = color.blueF();
+ params[3] = color.alphaF();
+ glLightfv(light, GL_AMBIENT, params);
+
+ color = parameters->diffuseColor();
+ params[0] = color.redF();
+ params[1] = color.greenF();
+ params[2] = color.blueF();
+ params[3] = color.alphaF();
+ glLightfv(light, GL_DIFFUSE, params);
+
+ color = parameters->specularColor();
+ params[0] = color.redF();
+ params[1] = color.greenF();
+ params[2] = color.blueF();
+ params[3] = color.alphaF();
+ glLightfv(light, GL_SPECULAR, params);
+
+ QVector4D vector = parameters->eyePosition(transform);
+ params[0] = vector.x();
+ params[1] = vector.y();
+ params[2] = vector.z();
+ params[3] = vector.w();
+ glLightfv(light, GL_POSITION, params);
+
+ QVector3D spotDirection = parameters->eyeSpotDirection(transform);
+ params[0] = spotDirection.x();
+ params[1] = spotDirection.y();
+ params[2] = spotDirection.z();
+ glLightfv(light, GL_SPOT_DIRECTION, params);
+
+ params[0] = parameters->spotExponent();
+ glLightfv(light, GL_SPOT_EXPONENT, params);
+
+ params[0] = parameters->spotAngle();
+ glLightfv(light, GL_SPOT_CUTOFF, params);
+
+ params[0] = parameters->constantAttenuation();
+ glLightfv(light, GL_CONSTANT_ATTENUATION, params);
+
+ params[0] = parameters->linearAttenuation();
+ glLightfv(light, GL_LINEAR_ATTENUATION, params);
+
+ params[0] = parameters->quadraticAttenuation();
+ glLightfv(light, GL_QUADRATIC_ATTENUATION, params);
+
+ glPopMatrix();
+}
+
+static void setLightModel(const LightModel *lightModel)
+{
+ GLfloat values[4];
+#ifdef GL_LIGHT_MODEL_TWO_SIDE
+ if (lightModel->model() == LightModel::TwoSided)
+ values[0] = 1.0f;
+ else
+ values[0] = 0.0f;
+ glLightModelfv(GL_LIGHT_MODEL_TWO_SIDE, values);
+#endif
+#ifdef GL_LIGHT_MODEL_COLOR_CONTROL
+ if (lightModel->colorControl() == LightModel::SeparateSpecularColor)
+ values[0] = GL_SEPARATE_SPECULAR_COLOR;
+ else
+ values[0] = GL_SINGLE_COLOR;
+ glLightModelfv(GL_LIGHT_MODEL_COLOR_CONTROL, values);
+#endif
+#ifdef GL_LIGHT_MODEL_LOCAL_VIEWER
+ if (lightModel->viewerPosition() == LightModel::LocalViewer)
+ values[0] = 1.0f;
+ else
+ values[0] = 0.0f;
+ glLightModelfv(GL_LIGHT_MODEL_LOCAL_VIEWER, values);
+#endif
+#ifdef GL_LIGHT_MODEL_AMBIENT
+ QColor color = lightModel->ambientSceneColor();
+ values[0] = color.redF();
+ values[1] = color.blueF();
+ values[2] = color.greenF();
+ values[3] = color.alphaF();
+ glLightModelfv(GL_LIGHT_MODEL_AMBIENT, values);
+#endif
+}
+
+static void setMaterial(int face, const Material *parameters)
+{
+ GLfloat params[17];
+
+ QColor mcolor = parameters->ambientColor();
+ params[0] = mcolor.redF();
+ params[1] = mcolor.greenF();
+ params[2] = mcolor.blueF();
+ params[3] = mcolor.alphaF();
+
+ mcolor = parameters->diffuseColor();
+ params[4] = mcolor.redF();
+ params[5] = mcolor.greenF();
+ params[6] = mcolor.blueF();
+ params[7] = mcolor.alphaF();
+
+ mcolor = parameters->specularColor();
+ params[8] = mcolor.redF();
+ params[9] = mcolor.greenF();
+ params[10] = mcolor.blueF();
+ params[11] = mcolor.alphaF();
+
+ mcolor = parameters->emittedLight();
+ params[12] = mcolor.redF();
+ params[13] = mcolor.greenF();
+ params[14] = mcolor.blueF();
+ params[15] = mcolor.alphaF();
+
+ params[16] = parameters->shininess();
+
+ glMaterialfv(face, GL_AMBIENT, params);
+ glMaterialfv(face, GL_DIFFUSE, params + 4);
+ glMaterialfv(face, GL_SPECULAR, params + 8);
+ glMaterialfv(face, GL_EMISSION, params + 12);
+ glMaterialfv(face, GL_SHININESS, params + 16);
+}
+
+void FixedFunctionPainter::selectMaterial(Material *material)
+{
+ ::setLight(GL_LIGHT0, light);
+ ::setLightModel(lightModel);
+ ::setMaterial(GL_FRONT_AND_BACK, material);
+ glDisable(GL_TEXTURE_2D);
+ glEnableClientState(GL_VERTEX_ARRAY);
+ glEnableClientState(GL_NORMAL_ARRAY);
+ glDisableClientState(GL_TEXTURE_COORD_ARRAY);
+}
+
+void FixedFunctionPainter::selectTexturedMaterial(Material *material)
+{
+ ::setLight(GL_LIGHT0, light);
+ ::setLightModel(lightModel);
+ ::setMaterial(GL_FRONT_AND_BACK, material);
+ glEnable(GL_TEXTURE_2D);
+ glEnableClientState(GL_VERTEX_ARRAY);
+ glEnableClientState(GL_NORMAL_ARRAY);
+ glEnableClientState(GL_TEXTURE_COORD_ARRAY);
+ glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL);
+}
+
+void FixedFunctionPainter::setVertices(const float *array, int stride)
+{
+ glVertexPointer(3, GL_FLOAT, stride * sizeof(float), array);
+}
+
+void FixedFunctionPainter::setTexCoords(const float *array, int stride)
+{
+ glTexCoordPointer(2, GL_FLOAT, stride * sizeof(float), array);
+}
+
+void FixedFunctionPainter::setNormals(const float *array, int stride)
+{
+ glNormalPointer(GL_FLOAT, stride * sizeof(float), array);
+}
diff --git a/examples/sensors/cubehouse/painter_shader.cpp b/examples/sensors/cubehouse/painter_shader.cpp
new file mode 100644
index 00000000..0e9f364c
--- /dev/null
+++ b/examples/sensors/cubehouse/painter_shader.cpp
@@ -0,0 +1,159 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the examples of the Qt Mobility Components.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "painter.h"
+#include "light.h"
+#include "lightmodel.h"
+#include "material.h"
+#include <QtOpenGL/qglshaderprogram.h>
+
+ShaderPainter::ShaderPainter()
+{
+ materialProgram = new QGLShaderProgram();
+ materialProgram->addShaderFromSourceFile
+ (QGLShader::Vertex, QLatin1String(":/lighting.vsh"));
+ materialProgram->addShaderFromSourceFile
+ (QGLShader::Fragment, QLatin1String(":/material.fsh"));
+ materialProgram->bindAttributeLocation("vertex", 0);
+ materialProgram->bindAttributeLocation("normal", 1);
+ materialProgram->bindAttributeLocation("texcoord", 2);
+ materialProgram->link();
+
+ textureProgram = new QGLShaderProgram();
+ textureProgram->addShaderFromSourceFile
+ (QGLShader::Vertex, QLatin1String(":/lighting.vsh"));
+ textureProgram->addShaderFromSourceFile
+ (QGLShader::Fragment, QLatin1String(":/texture.fsh"));
+ textureProgram->bindAttributeLocation("vertex", 0);
+ textureProgram->bindAttributeLocation("normal", 1);
+ textureProgram->bindAttributeLocation("texcoord", 2);
+ textureProgram->link();
+
+ currentProgram = 0;
+ matricesChanged = false;
+}
+
+ShaderPainter::~ShaderPainter()
+{
+ delete materialProgram;
+ delete textureProgram;
+}
+
+void ShaderPainter::setMatrices(const QMatrix4x4 &mv, const QMatrix4x4 &proj)
+{
+ combinedMatrix = proj * mv;
+ modelViewMatrix = mv;
+ normalMatrix = mv.normalMatrix();
+ matricesChanged = true;
+}
+
+void ShaderPainter::selectMaterial(Material *material)
+{
+ if (currentProgram != materialProgram) {
+ materialProgram->bind();
+ materialProgram->enableAttributeArray(0);
+ materialProgram->enableAttributeArray(1);
+ materialProgram->disableAttributeArray(2);
+ currentProgram = materialProgram;
+ matricesChanged = true;
+ }
+ if (matricesChanged) {
+ materialProgram->setUniformValue("matrix", combinedMatrix);
+ materialProgram->setUniformValue("modelView", modelViewMatrix);
+ materialProgram->setUniformValue("normalMatrix", normalMatrix);
+ matricesChanged = false;
+ }
+ updateMaterials(materialProgram, material);
+}
+
+void ShaderPainter::selectTexturedMaterial(Material *material)
+{
+ if (currentProgram != textureProgram) {
+ textureProgram->bind();
+ textureProgram->enableAttributeArray(0);
+ textureProgram->enableAttributeArray(1);
+ textureProgram->enableAttributeArray(2);
+ textureProgram->setUniformValue("tex", 0);
+ currentProgram = textureProgram;
+ matricesChanged = true;
+ }
+ if (matricesChanged) {
+ textureProgram->setUniformValue("matrix", combinedMatrix);
+ textureProgram->setUniformValue("modelView", modelViewMatrix);
+ textureProgram->setUniformValue("normalMatrix", normalMatrix);
+ matricesChanged = false;
+ }
+ updateMaterials(textureProgram, material);
+}
+
+void ShaderPainter::setVertices(const float *array, int stride)
+{
+ // Doesn't matter which program we use - they have the same locations.
+ materialProgram->setAttributeArray(0, array, 3, stride * sizeof(float));
+}
+
+void ShaderPainter::setTexCoords(const float *array, int stride)
+{
+ materialProgram->setAttributeArray(2, array, 2, stride * sizeof(float));
+}
+
+void ShaderPainter::setNormals(const float *array, int stride)
+{
+ materialProgram->setAttributeArray(1, array, 3, stride * sizeof(float));
+}
+
+void ShaderPainter::updateMaterials
+ (QGLShaderProgram *program, Material *material)
+{
+ // Set the uniform variables for the light.
+ QVector4D pli = light->eyePosition(QMatrix4x4());
+ program->setUniformValue("pli", QVector3D(pli.x(), pli.y(), pli.z()));
+ program->setUniformValue("pliw", GLfloat(pli.w()));
+
+ // Set the uniform variables for the light model.
+ program->setUniformValue("viewerAtInfinity", (int)(lightModel->viewerPosition() == LightModel::ViewerAtInfinity));
+ program->setUniformValue("acs", lightModel->ambientSceneColor());
+
+ // Set the uniform variables for the material.
+ program->setUniformValue("acm", material->ambientColor());
+ program->setUniformValue("dcm", material->diffuseColor());
+ program->setUniformValue("scm", material->specularColor());
+ program->setUniformValue("srm", (float)(material->shininess()));
+}
diff --git a/examples/sensors/cubehouse/qtlogo.png b/examples/sensors/cubehouse/qtlogo.png
new file mode 100644
index 00000000..7d3e97eb
--- /dev/null
+++ b/examples/sensors/cubehouse/qtlogo.png
Binary files differ
diff --git a/examples/sensors/cubehouse/teapot.h b/examples/sensors/cubehouse/teapot.h
new file mode 100644
index 00000000..71e31e7c
--- /dev/null
+++ b/examples/sensors/cubehouse/teapot.h
@@ -0,0 +1,4550 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the examples of the Qt Mobility Components.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef TEAPOT_H
+#define TEAPOT_H
+
+#define teapotVertexCount 3488
+#define teapotVertexStride 8
+#define teapotTriangleCount 4032
+
+static float const teapotVertexData[] = {
+ 0.700000f, 0.450000f, -0.000000f, -0.902860f, -0.429934f, 0.000000f, 0.000000f, 0.000000f,
+ 0.000000f, 0.450000f, 0.700000f, -0.000000f, -0.429934f, -0.902860f, 1.000000f, 0.000000f,
+ 0.750000f, 0.450000f, -0.000000f, 0.902860f, 0.429934f, -0.000000f, 0.000000f, 1.000000f,
+ 0.000000f, 0.450000f, 0.750000f, 0.000000f, 0.429934f, 0.902860f, 1.000000f, 1.000000f,
+ 0.497000f, 0.450000f, 0.497000f, -0.639602f, -0.426402f, -0.639602f, 0.500000f, 0.000000f,
+ 0.701563f, 0.499219f, -0.000000f, 0.000000f, 1.000000f, 0.000000f, 0.000000f, 0.500000f,
+ 0.498109f, 0.499219f, 0.498109f, 0.000000f, 1.000000f, -0.000000f, 0.500000f, 0.500000f,
+ 0.000000f, 0.499219f, 0.701563f, 0.000000f, 1.000000f, -0.000000f, 1.000000f, 0.500000f,
+ 0.532500f, 0.450000f, 0.532500f, 0.639602f, 0.426402f, 0.639602f, 0.500000f, 1.000000f,
+ 0.645750f, 0.450000f, 0.274750f, -0.833528f, -0.429664f, -0.347303f, 0.250000f, 0.000000f,
+ 0.690234f, 0.486914f, -0.000000f, -0.995495f, 0.094810f, 0.000000f, 0.000000f, 0.250000f,
+ 0.636741f, 0.486914f, 0.270917f, -0.918925f, 0.094737f, -0.382885f, 0.250000f, 0.250000f,
+ 0.490066f, 0.486914f, 0.490066f, -0.703896f, 0.095194f, -0.703896f, 0.500000f, 0.250000f,
+ 0.647191f, 0.499219f, 0.275363f, 0.000000f, 1.000000f, -0.000000f, 0.250000f, 0.500000f,
+ 0.686000f, 0.450000f, 0.142625f, -0.885319f, -0.429953f, -0.177064f, 0.125000f, 0.000000f,
+ 0.691895f, 0.471533f, -0.000000f, -0.969231f, -0.246154f, 0.000000f, 0.000000f, 0.125000f,
+ 0.678057f, 0.471533f, 0.140974f, -0.950406f, -0.246166f, -0.190081f, 0.125000f, 0.125000f,
+ 0.638273f, 0.471533f, 0.271569f, -0.894539f, -0.246731f, -0.372725f, 0.250000f, 0.125000f,
+ 0.676430f, 0.486914f, 0.140635f, -0.976163f, 0.094813f, -0.195233f, 0.125000f, 0.250000f,
+ 0.581875f, 0.450000f, 0.393750f, -0.749476f, -0.430917f, -0.502590f, 0.375000f, 0.000000f,
+ 0.638273f, 0.471533f, 0.271569f, -0.894539f, -0.246731f, -0.372725f, 0.250000f, 0.125000f,
+ 0.575137f, 0.471533f, 0.389191f, -0.804852f, -0.246803f, -0.539724f, 0.375000f, 0.125000f,
+ 0.491245f, 0.471533f, 0.491245f, -0.685179f, -0.247099f, -0.685180f, 0.500000f, 0.125000f,
+ 0.573757f, 0.486914f, 0.388257f, -0.826782f, 0.095071f, -0.554430f, 0.375000f, 0.250000f,
+ 0.676430f, 0.486914f, 0.140635f, -0.976163f, 0.094813f, -0.195233f, 0.125000f, 0.250000f,
+ 0.693848f, 0.496143f, -0.000000f, -0.724137f, 0.689656f, 0.000000f, 0.000000f, 0.375000f,
+ 0.679971f, 0.496143f, 0.141371f, -0.710057f, 0.689675f, -0.142011f, 0.125000f, 0.375000f,
+ 0.640074f, 0.496143f, 0.272335f, -0.667641f, 0.690558f, -0.278184f, 0.250000f, 0.375000f,
+ 0.687531f, 0.499219f, 0.142943f, 0.000000f, 1.000000f, -0.000000f, 0.125000f, 0.500000f,
+ 0.573757f, 0.486914f, 0.388257f, -0.826782f, 0.095071f, -0.554430f, 0.375000f, 0.250000f,
+ 0.640074f, 0.496143f, 0.272335f, -0.667641f, 0.690558f, -0.278184f, 0.250000f, 0.375000f,
+ 0.576761f, 0.496143f, 0.390289f, -0.600626f, 0.690668f, -0.402773f, 0.375000f, 0.375000f,
+ 0.492632f, 0.496143f, 0.492632f, -0.511047f, 0.691132f, -0.511046f, 0.500000f, 0.375000f,
+ 0.583174f, 0.499219f, 0.394629f, 0.000000f, 1.000000f, -0.000000f, 0.375000f, 0.500000f,
+ 0.274750f, 0.450000f, 0.645750f, -0.347353f, -0.429394f, -0.833647f, 0.750000f, 0.000000f,
+ 0.490066f, 0.486914f, 0.490066f, -0.703896f, 0.095194f, -0.703896f, 0.500000f, 0.250000f,
+ 0.270917f, 0.486914f, 0.636741f, -0.382888f, 0.094664f, -0.918932f, 0.750000f, 0.250000f,
+ 0.000000f, 0.486914f, 0.690234f, 0.000000f, 0.094810f, -0.995495f, 1.000000f, 0.250000f,
+ 0.275363f, 0.499219f, 0.647191f, 0.000000f, 1.000000f, -0.000000f, 0.750000f, 0.500000f,
+ 0.393750f, 0.450000f, 0.581875f, -0.502594f, -0.430900f, -0.749483f, 0.625000f, 0.000000f,
+ 0.491245f, 0.471533f, 0.491245f, -0.685180f, -0.247099f, -0.685179f, 0.500000f, 0.125000f,
+ 0.389191f, 0.471533f, 0.575137f, -0.539726f, -0.246792f, -0.804854f, 0.625000f, 0.125000f,
+ 0.271569f, 0.471533f, 0.638273f, -0.372725f, -0.246731f, -0.894539f, 0.750000f, 0.125000f,
+ 0.388257f, 0.486914f, 0.573757f, -0.554431f, 0.095066f, -0.826782f, 0.625000f, 0.250000f,
+ 0.142625f, 0.450000f, 0.686000f, -0.177068f, -0.429904f, -0.885342f, 0.875000f, 0.000000f,
+ 0.271569f, 0.471533f, 0.638273f, -0.372725f, -0.246731f, -0.894539f, 0.750000f, 0.125000f,
+ 0.140974f, 0.471533f, 0.678057f, -0.190083f, -0.246134f, -0.950414f, 0.875000f, 0.125000f,
+ 0.000000f, 0.471533f, 0.691895f, -0.000000f, -0.246154f, -0.969231f, 1.000000f, 0.125000f,
+ 0.140635f, 0.486914f, 0.676430f, -0.195233f, 0.094801f, -0.976164f, 0.875000f, 0.250000f,
+ 0.388257f, 0.486914f, 0.573757f, -0.554431f, 0.095066f, -0.826782f, 0.625000f, 0.250000f,
+ 0.492632f, 0.496143f, 0.492632f, -0.511046f, 0.691132f, -0.511047f, 0.500000f, 0.375000f,
+ 0.390289f, 0.496143f, 0.576761f, -0.402782f, 0.690651f, -0.600640f, 0.625000f, 0.375000f,
+ 0.272335f, 0.496143f, 0.640074f, -0.278184f, 0.690558f, -0.667641f, 0.750000f, 0.375000f,
+ 0.394629f, 0.499219f, 0.583174f, 0.000000f, 1.000000f, -0.000000f, 0.625000f, 0.500000f,
+ 0.140635f, 0.486914f, 0.676430f, -0.195233f, 0.094801f, -0.976164f, 0.875000f, 0.250000f,
+ 0.272335f, 0.496143f, 0.640074f, -0.278184f, 0.690558f, -0.667641f, 0.750000f, 0.375000f,
+ 0.141371f, 0.496143f, 0.679971f, -0.142021f, 0.689625f, -0.710104f, 0.875000f, 0.375000f,
+ 0.000000f, 0.496143f, 0.693848f, 0.000000f, 0.689656f, -0.724137f, 1.000000f, 0.375000f,
+ 0.142943f, 0.499219f, 0.687531f, 0.000000f, 1.000000f, -0.000000f, 0.875000f, 0.500000f,
+ 0.647191f, 0.499219f, 0.275363f, 0.000000f, 1.000000f, -0.000000f, 0.250000f, 0.500000f,
+ 0.724609f, 0.486914f, -0.000000f, 0.690476f, 0.723356f, -0.000000f, 0.000000f, 0.750000f,
+ 0.668452f, 0.486914f, 0.284409f, 0.637619f, 0.723090f, 0.265674f, 0.250000f, 0.750000f,
+ 0.514473f, 0.486914f, 0.514473f, 0.487196f, 0.724762f, 0.487196f, 0.500000f, 0.750000f,
+ 0.691875f, 0.450000f, 0.294375f, 0.833528f, 0.429664f, 0.347303f, 0.250000f, 1.000000f,
+ 0.687531f, 0.499219f, 0.142943f, 0.000000f, 1.000000f, -0.000000f, 0.125000f, 0.500000f,
+ 0.712207f, 0.496143f, -0.000000f, 0.464835f, 0.885397f, -0.000000f, 0.000000f, 0.625000f,
+ 0.697963f, 0.496143f, 0.145112f, 0.455789f, 0.885407f, 0.091158f, 0.125000f, 0.625000f,
+ 0.657011f, 0.496143f, 0.279541f, 0.428239f, 0.885874f, 0.178433f, 0.250000f, 0.625000f,
+ 0.710117f, 0.486914f, 0.147639f, 0.677049f, 0.723373f, 0.135410f, 0.125000f, 0.750000f,
+ 0.583174f, 0.499219f, 0.394629f, 0.000000f, 1.000000f, -0.000000f, 0.375000f, 0.500000f,
+ 0.657011f, 0.496143f, 0.279541f, 0.428239f, 0.885874f, 0.178433f, 0.250000f, 0.625000f,
+ 0.592022f, 0.496143f, 0.400616f, 0.385216f, 0.885934f, 0.258322f, 0.375000f, 0.625000f,
+ 0.505667f, 0.496143f, 0.505667f, 0.327637f, 0.886176f, 0.327636f, 0.500000f, 0.625000f,
+ 0.602332f, 0.486914f, 0.407593f, 0.572629f, 0.724322f, 0.383998f, 0.375000f, 0.750000f,
+ 0.710117f, 0.486914f, 0.147639f, 0.677049f, 0.723373f, 0.135410f, 0.125000f, 0.750000f,
+ 0.737598f, 0.471533f, -0.000000f, 0.819842f, 0.572589f, -0.000000f, 0.000000f, 0.875000f,
+ 0.722846f, 0.471533f, 0.150286f, 0.803908f, 0.572609f, 0.160782f, 0.125000f, 0.875000f,
+ 0.680434f, 0.471533f, 0.289507f, 0.756157f, 0.573550f, 0.315066f, 0.250000f, 0.875000f,
+ 0.735000f, 0.450000f, 0.152812f, 0.885319f, 0.429952f, 0.177064f, 0.125000f, 1.000000f,
+ 0.602332f, 0.486914f, 0.407593f, 0.572628f, 0.724322f, 0.383998f, 0.375000f, 0.750000f,
+ 0.680434f, 0.471533f, 0.289507f, 0.756158f, 0.573550f, 0.315065f, 0.250000f, 0.875000f,
+ 0.613128f, 0.471533f, 0.414899f, 0.680288f, 0.573668f, 0.456193f, 0.375000f, 0.875000f,
+ 0.523694f, 0.471533f, 0.523694f, 0.578938f, 0.574162f, 0.578938f, 0.500000f, 0.875000f,
+ 0.623438f, 0.450000f, 0.421875f, 0.749476f, 0.430918f, 0.502589f, 0.375000f, 1.000000f,
+ 0.275363f, 0.499219f, 0.647191f, 0.000000f, 1.000000f, -0.000000f, 0.750000f, 0.500000f,
+ 0.514473f, 0.486914f, 0.514473f, 0.487196f, 0.724762f, 0.487196f, 0.500000f, 0.750000f,
+ 0.284409f, 0.486914f, 0.668452f, 0.265781f, 0.722825f, 0.637875f, 0.750000f, 0.750000f,
+ 0.000000f, 0.486914f, 0.724609f, 0.000000f, 0.723356f, 0.690476f, 1.000000f, 0.750000f,
+ 0.294375f, 0.450000f, 0.691875f, 0.347353f, 0.429394f, 0.833647f, 0.750000f, 1.000000f,
+ 0.394629f, 0.499219f, 0.583174f, 0.000000f, 1.000000f, -0.000000f, 0.625000f, 0.500000f,
+ 0.505667f, 0.496143f, 0.505667f, 0.327636f, 0.886176f, 0.327637f, 0.500000f, 0.625000f,
+ 0.400616f, 0.496143f, 0.592022f, 0.258332f, 0.885924f, 0.385231f, 0.625000f, 0.625000f,
+ 0.279541f, 0.496143f, 0.657011f, 0.178433f, 0.885874f, 0.428239f, 0.750000f, 0.625000f,
+ 0.407593f, 0.486914f, 0.602332f, 0.384008f, 0.724305f, 0.572644f, 0.625000f, 0.750000f,
+ 0.142943f, 0.499219f, 0.687531f, 0.000000f, 1.000000f, -0.000000f, 0.875000f, 0.500000f,
+ 0.279541f, 0.496143f, 0.657011f, 0.178433f, 0.885874f, 0.428239f, 0.750000f, 0.625000f,
+ 0.145112f, 0.496143f, 0.697963f, 0.091168f, 0.885381f, 0.455839f, 0.875000f, 0.625000f,
+ 0.000000f, 0.496143f, 0.712207f, 0.000000f, 0.885397f, 0.464835f, 1.000000f, 0.625000f,
+ 0.147639f, 0.486914f, 0.710117f, 0.135420f, 0.723325f, 0.677099f, 0.875000f, 0.750000f,
+ 0.407593f, 0.486914f, 0.602332f, 0.384008f, 0.724305f, 0.572643f, 0.625000f, 0.750000f,
+ 0.523694f, 0.471533f, 0.523694f, 0.578938f, 0.574162f, 0.578938f, 0.500000f, 0.875000f,
+ 0.414899f, 0.471533f, 0.613128f, 0.456201f, 0.573650f, 0.680299f, 0.625000f, 0.875000f,
+ 0.289507f, 0.471533f, 0.680434f, 0.315065f, 0.573550f, 0.756158f, 0.750000f, 0.875000f,
+ 0.421875f, 0.450000f, 0.623438f, 0.502594f, 0.430901f, 0.749482f, 0.625000f, 1.000000f,
+ 0.147639f, 0.486914f, 0.710117f, 0.135420f, 0.723325f, 0.677099f, 0.875000f, 0.750000f,
+ 0.289507f, 0.471533f, 0.680434f, 0.315066f, 0.573550f, 0.756157f, 0.750000f, 0.875000f,
+ 0.150286f, 0.471533f, 0.722846f, 0.160789f, 0.572555f, 0.803945f, 0.875000f, 0.875000f,
+ 0.000000f, 0.471533f, 0.737598f, 0.000000f, 0.572589f, 0.819842f, 1.000000f, 0.875000f,
+ 0.152812f, 0.450000f, 0.735000f, 0.177068f, 0.429904f, 0.885342f, 0.875000f, 1.000000f,
+ 0.000000f, 0.450000f, 0.700000f, -0.000000f, -0.429934f, -0.902860f, 0.000000f, 0.000000f,
+ -0.700000f, 0.450000f, -0.000000f, 0.902860f, -0.429934f, 0.000000f, 1.000000f, 0.000000f,
+ 0.000000f, 0.450000f, 0.750000f, 0.000000f, 0.429934f, 0.902860f, 0.000000f, 1.000000f,
+ -0.750000f, 0.450000f, -0.000000f, -0.902860f, 0.429934f, 0.000000f, 1.000000f, 1.000000f,
+ -0.497000f, 0.450000f, 0.497000f, 0.639602f, -0.426402f, -0.639602f, 0.500000f, 0.000000f,
+ 0.000000f, 0.499219f, 0.701563f, 0.000000f, 1.000000f, -0.000000f, 0.000000f, 0.500000f,
+ -0.498109f, 0.499219f, 0.498109f, 0.000000f, 1.000000f, 0.000000f, 0.500000f, 0.500000f,
+ -0.701563f, 0.499219f, -0.000000f, 0.000000f, 1.000000f, 0.000000f, 1.000000f, 0.500000f,
+ -0.532500f, 0.450000f, 0.532500f, -0.639602f, 0.426402f, 0.639602f, 0.500000f, 1.000000f,
+ -0.274750f, 0.450000f, 0.645750f, 0.347303f, -0.429664f, -0.833528f, 0.250000f, 0.000000f,
+ 0.000000f, 0.486914f, 0.690234f, 0.000000f, 0.094810f, -0.995495f, 0.000000f, 0.250000f,
+ -0.270917f, 0.486914f, 0.636741f, 0.382885f, 0.094737f, -0.918925f, 0.250000f, 0.250000f,
+ -0.490066f, 0.486914f, 0.490066f, 0.703896f, 0.095194f, -0.703896f, 0.500000f, 0.250000f,
+ -0.275363f, 0.499219f, 0.647191f, 0.000000f, 1.000000f, 0.000000f, 0.250000f, 0.500000f,
+ -0.142625f, 0.450000f, 0.686000f, 0.177064f, -0.429953f, -0.885319f, 0.125000f, 0.000000f,
+ 0.000000f, 0.471533f, 0.691895f, -0.000000f, -0.246154f, -0.969231f, 0.000000f, 0.125000f,
+ -0.140974f, 0.471533f, 0.678057f, 0.190081f, -0.246166f, -0.950406f, 0.125000f, 0.125000f,
+ -0.271569f, 0.471533f, 0.638273f, 0.372725f, -0.246731f, -0.894539f, 0.250000f, 0.125000f,
+ -0.140635f, 0.486914f, 0.676430f, 0.195233f, 0.094813f, -0.976163f, 0.125000f, 0.250000f,
+ -0.393750f, 0.450000f, 0.581875f, 0.502590f, -0.430917f, -0.749476f, 0.375000f, 0.000000f,
+ -0.271569f, 0.471533f, 0.638273f, 0.372725f, -0.246731f, -0.894539f, 0.250000f, 0.125000f,
+ -0.389191f, 0.471533f, 0.575137f, 0.539724f, -0.246803f, -0.804852f, 0.375000f, 0.125000f,
+ -0.491245f, 0.471533f, 0.491245f, 0.685180f, -0.247099f, -0.685179f, 0.500000f, 0.125000f,
+ -0.388257f, 0.486914f, 0.573757f, 0.554430f, 0.095071f, -0.826782f, 0.375000f, 0.250000f,
+ -0.140635f, 0.486914f, 0.676430f, 0.195233f, 0.094813f, -0.976163f, 0.125000f, 0.250000f,
+ 0.000000f, 0.496143f, 0.693848f, 0.000000f, 0.689656f, -0.724137f, 0.000000f, 0.375000f,
+ -0.141371f, 0.496143f, 0.679971f, 0.142011f, 0.689675f, -0.710057f, 0.125000f, 0.375000f,
+ -0.272335f, 0.496143f, 0.640074f, 0.278184f, 0.690558f, -0.667641f, 0.250000f, 0.375000f,
+ -0.142943f, 0.499219f, 0.687531f, 0.000000f, 1.000000f, 0.000000f, 0.125000f, 0.500000f,
+ -0.388257f, 0.486914f, 0.573757f, 0.554430f, 0.095071f, -0.826782f, 0.375000f, 0.250000f,
+ -0.272335f, 0.496143f, 0.640074f, 0.278184f, 0.690558f, -0.667641f, 0.250000f, 0.375000f,
+ -0.390289f, 0.496143f, 0.576761f, 0.402773f, 0.690668f, -0.600626f, 0.375000f, 0.375000f,
+ -0.492632f, 0.496143f, 0.492632f, 0.511046f, 0.691132f, -0.511047f, 0.500000f, 0.375000f,
+ -0.394629f, 0.499219f, 0.583174f, 0.000000f, 1.000000f, 0.000000f, 0.375000f, 0.500000f,
+ -0.645750f, 0.450000f, 0.274750f, 0.833647f, -0.429394f, -0.347353f, 0.750000f, 0.000000f,
+ -0.490066f, 0.486914f, 0.490066f, 0.703896f, 0.095194f, -0.703896f, 0.500000f, 0.250000f,
+ -0.636741f, 0.486914f, 0.270917f, 0.918932f, 0.094664f, -0.382888f, 0.750000f, 0.250000f,
+ -0.690234f, 0.486914f, -0.000000f, 0.995495f, 0.094810f, 0.000000f, 1.000000f, 0.250000f,
+ -0.647191f, 0.499219f, 0.275363f, 0.000000f, 1.000000f, 0.000000f, 0.750000f, 0.500000f,
+ -0.581875f, 0.450000f, 0.393750f, 0.749483f, -0.430900f, -0.502594f, 0.625000f, 0.000000f,
+ -0.491245f, 0.471533f, 0.491245f, 0.685179f, -0.247099f, -0.685180f, 0.500000f, 0.125000f,
+ -0.575137f, 0.471533f, 0.389191f, 0.804854f, -0.246792f, -0.539726f, 0.625000f, 0.125000f,
+ -0.638273f, 0.471533f, 0.271569f, 0.894539f, -0.246731f, -0.372725f, 0.750000f, 0.125000f,
+ -0.573757f, 0.486914f, 0.388257f, 0.826782f, 0.095066f, -0.554431f, 0.625000f, 0.250000f,
+ -0.686000f, 0.450000f, 0.142625f, 0.885342f, -0.429904f, -0.177068f, 0.875000f, 0.000000f,
+ -0.638273f, 0.471533f, 0.271569f, 0.894539f, -0.246731f, -0.372725f, 0.750000f, 0.125000f,
+ -0.678057f, 0.471533f, 0.140974f, 0.950414f, -0.246134f, -0.190083f, 0.875000f, 0.125000f,
+ -0.691895f, 0.471533f, -0.000000f, 0.969231f, -0.246154f, 0.000000f, 1.000000f, 0.125000f,
+ -0.676430f, 0.486914f, 0.140635f, 0.976164f, 0.094801f, -0.195233f, 0.875000f, 0.250000f,
+ -0.573757f, 0.486914f, 0.388257f, 0.826782f, 0.095066f, -0.554431f, 0.625000f, 0.250000f,
+ -0.492632f, 0.496143f, 0.492632f, 0.511047f, 0.691132f, -0.511046f, 0.500000f, 0.375000f,
+ -0.576761f, 0.496143f, 0.390289f, 0.600640f, 0.690651f, -0.402782f, 0.625000f, 0.375000f,
+ -0.640074f, 0.496143f, 0.272335f, 0.667641f, 0.690558f, -0.278184f, 0.750000f, 0.375000f,
+ -0.583174f, 0.499219f, 0.394629f, 0.000000f, 1.000000f, 0.000000f, 0.625000f, 0.500000f,
+ -0.676430f, 0.486914f, 0.140635f, 0.976164f, 0.094801f, -0.195233f, 0.875000f, 0.250000f,
+ -0.640074f, 0.496143f, 0.272335f, 0.667641f, 0.690558f, -0.278184f, 0.750000f, 0.375000f,
+ -0.679971f, 0.496143f, 0.141371f, 0.710104f, 0.689625f, -0.142021f, 0.875000f, 0.375000f,
+ -0.693848f, 0.496143f, -0.000000f, 0.724137f, 0.689656f, 0.000000f, 1.000000f, 0.375000f,
+ -0.687531f, 0.499219f, 0.142943f, 0.000000f, 1.000000f, 0.000000f, 0.875000f, 0.500000f,
+ -0.275363f, 0.499219f, 0.647191f, 0.000000f, 1.000000f, 0.000000f, 0.250000f, 0.500000f,
+ 0.000000f, 0.486914f, 0.724609f, 0.000000f, 0.723356f, 0.690476f, 0.000000f, 0.750000f,
+ -0.284409f, 0.486914f, 0.668452f, -0.265674f, 0.723090f, 0.637619f, 0.250000f, 0.750000f,
+ -0.514473f, 0.486914f, 0.514473f, -0.487196f, 0.724762f, 0.487196f, 0.500000f, 0.750000f,
+ -0.294375f, 0.450000f, 0.691875f, -0.347303f, 0.429664f, 0.833528f, 0.250000f, 1.000000f,
+ -0.142943f, 0.499219f, 0.687531f, 0.000000f, 1.000000f, 0.000000f, 0.125000f, 0.500000f,
+ 0.000000f, 0.496143f, 0.712207f, 0.000000f, 0.885397f, 0.464835f, 0.000000f, 0.625000f,
+ -0.145112f, 0.496143f, 0.697963f, -0.091158f, 0.885407f, 0.455789f, 0.125000f, 0.625000f,
+ -0.279541f, 0.496143f, 0.657011f, -0.178433f, 0.885874f, 0.428239f, 0.250000f, 0.625000f,
+ -0.147639f, 0.486914f, 0.710117f, -0.135410f, 0.723373f, 0.677049f, 0.125000f, 0.750000f,
+ -0.394629f, 0.499219f, 0.583174f, 0.000000f, 1.000000f, 0.000000f, 0.375000f, 0.500000f,
+ -0.279541f, 0.496143f, 0.657011f, -0.178433f, 0.885874f, 0.428239f, 0.250000f, 0.625000f,
+ -0.400616f, 0.496143f, 0.592022f, -0.258322f, 0.885934f, 0.385216f, 0.375000f, 0.625000f,
+ -0.505667f, 0.496143f, 0.505667f, -0.327636f, 0.886176f, 0.327637f, 0.500000f, 0.625000f,
+ -0.407593f, 0.486914f, 0.602332f, -0.383998f, 0.724322f, 0.572629f, 0.375000f, 0.750000f,
+ -0.147639f, 0.486914f, 0.710117f, -0.135410f, 0.723373f, 0.677049f, 0.125000f, 0.750000f,
+ 0.000000f, 0.471533f, 0.737598f, 0.000000f, 0.572589f, 0.819842f, 0.000000f, 0.875000f,
+ -0.150286f, 0.471533f, 0.722846f, -0.160782f, 0.572609f, 0.803908f, 0.125000f, 0.875000f,
+ -0.289507f, 0.471533f, 0.680434f, -0.315066f, 0.573550f, 0.756157f, 0.250000f, 0.875000f,
+ -0.152812f, 0.450000f, 0.735000f, -0.177064f, 0.429952f, 0.885319f, 0.125000f, 1.000000f,
+ -0.407593f, 0.486914f, 0.602332f, -0.383998f, 0.724322f, 0.572628f, 0.375000f, 0.750000f,
+ -0.289507f, 0.471533f, 0.680434f, -0.315065f, 0.573550f, 0.756158f, 0.250000f, 0.875000f,
+ -0.414899f, 0.471533f, 0.613128f, -0.456193f, 0.573668f, 0.680288f, 0.375000f, 0.875000f,
+ -0.523694f, 0.471533f, 0.523694f, -0.578938f, 0.574162f, 0.578938f, 0.500000f, 0.875000f,
+ -0.421875f, 0.450000f, 0.623438f, -0.502589f, 0.430918f, 0.749476f, 0.375000f, 1.000000f,
+ -0.647191f, 0.499219f, 0.275363f, 0.000000f, 1.000000f, 0.000000f, 0.750000f, 0.500000f,
+ -0.514473f, 0.486914f, 0.514473f, -0.487196f, 0.724762f, 0.487196f, 0.500000f, 0.750000f,
+ -0.668452f, 0.486914f, 0.284409f, -0.637875f, 0.722825f, 0.265781f, 0.750000f, 0.750000f,
+ -0.724609f, 0.486914f, -0.000000f, -0.690476f, 0.723356f, 0.000000f, 1.000000f, 0.750000f,
+ -0.691875f, 0.450000f, 0.294375f, -0.833647f, 0.429394f, 0.347353f, 0.750000f, 1.000000f,
+ -0.583174f, 0.499219f, 0.394629f, 0.000000f, 1.000000f, 0.000000f, 0.625000f, 0.500000f,
+ -0.505667f, 0.496143f, 0.505667f, -0.327637f, 0.886176f, 0.327636f, 0.500000f, 0.625000f,
+ -0.592022f, 0.496143f, 0.400616f, -0.385231f, 0.885924f, 0.258332f, 0.625000f, 0.625000f,
+ -0.657011f, 0.496143f, 0.279541f, -0.428239f, 0.885874f, 0.178433f, 0.750000f, 0.625000f,
+ -0.602332f, 0.486914f, 0.407593f, -0.572644f, 0.724305f, 0.384008f, 0.625000f, 0.750000f,
+ -0.687531f, 0.499219f, 0.142943f, 0.000000f, 1.000000f, 0.000000f, 0.875000f, 0.500000f,
+ -0.657011f, 0.496143f, 0.279541f, -0.428239f, 0.885874f, 0.178433f, 0.750000f, 0.625000f,
+ -0.697963f, 0.496143f, 0.145112f, -0.455839f, 0.885381f, 0.091168f, 0.875000f, 0.625000f,
+ -0.712207f, 0.496143f, -0.000000f, -0.464835f, 0.885397f, 0.000000f, 1.000000f, 0.625000f,
+ -0.710117f, 0.486914f, 0.147639f, -0.677099f, 0.723325f, 0.135420f, 0.875000f, 0.750000f,
+ -0.602332f, 0.486914f, 0.407593f, -0.572643f, 0.724305f, 0.384008f, 0.625000f, 0.750000f,
+ -0.523694f, 0.471533f, 0.523694f, -0.578938f, 0.574162f, 0.578938f, 0.500000f, 0.875000f,
+ -0.613128f, 0.471533f, 0.414899f, -0.680299f, 0.573650f, 0.456201f, 0.625000f, 0.875000f,
+ -0.680434f, 0.471533f, 0.289507f, -0.756158f, 0.573550f, 0.315065f, 0.750000f, 0.875000f,
+ -0.623438f, 0.450000f, 0.421875f, -0.749482f, 0.430901f, 0.502594f, 0.625000f, 1.000000f,
+ -0.710117f, 0.486914f, 0.147639f, -0.677099f, 0.723325f, 0.135420f, 0.875000f, 0.750000f,
+ -0.680434f, 0.471533f, 0.289507f, -0.756157f, 0.573550f, 0.315066f, 0.750000f, 0.875000f,
+ -0.722846f, 0.471533f, 0.150286f, -0.803945f, 0.572555f, 0.160789f, 0.875000f, 0.875000f,
+ -0.737598f, 0.471533f, -0.000000f, -0.819842f, 0.572589f, 0.000000f, 1.000000f, 0.875000f,
+ -0.735000f, 0.450000f, 0.152812f, -0.885342f, 0.429904f, 0.177068f, 0.875000f, 1.000000f,
+ -0.700000f, 0.450000f, -0.000000f, 0.902860f, -0.429934f, 0.000000f, 0.000000f, 0.000000f,
+ 0.000000f, 0.450000f, -0.700000f, 0.000000f, -0.429934f, 0.902860f, 1.000000f, 0.000000f,
+ -0.750000f, 0.450000f, -0.000000f, -0.902860f, 0.429934f, 0.000000f, 0.000000f, 1.000000f,
+ 0.000000f, 0.450000f, -0.750000f, 0.000000f, 0.429934f, -0.902860f, 1.000000f, 1.000000f,
+ -0.497000f, 0.450000f, -0.497000f, 0.639602f, -0.426402f, 0.639602f, 0.500000f, 0.000000f,
+ -0.701563f, 0.499219f, -0.000000f, 0.000000f, 1.000000f, 0.000000f, 0.000000f, 0.500000f,
+ -0.498109f, 0.499219f, -0.498109f, 0.000000f, 1.000000f, 0.000000f, 0.500000f, 0.500000f,
+ 0.000000f, 0.499219f, -0.701563f, -0.000000f, 1.000000f, 0.000000f, 1.000000f, 0.500000f,
+ -0.532500f, 0.450000f, -0.532500f, -0.639602f, 0.426402f, -0.639602f, 0.500000f, 1.000000f,
+ -0.645750f, 0.450000f, -0.274750f, 0.833528f, -0.429664f, 0.347303f, 0.250000f, 0.000000f,
+ -0.690234f, 0.486914f, -0.000000f, 0.995495f, 0.094810f, 0.000000f, 0.000000f, 0.250000f,
+ -0.636741f, 0.486914f, -0.270917f, 0.918925f, 0.094737f, 0.382885f, 0.250000f, 0.250000f,
+ -0.490066f, 0.486914f, -0.490066f, 0.703896f, 0.095194f, 0.703896f, 0.500000f, 0.250000f,
+ -0.647191f, 0.499219f, -0.275363f, 0.000000f, 1.000000f, 0.000000f, 0.250000f, 0.500000f,
+ -0.686000f, 0.450000f, -0.142625f, 0.885319f, -0.429953f, 0.177064f, 0.125000f, 0.000000f,
+ -0.691895f, 0.471533f, -0.000000f, 0.969231f, -0.246154f, 0.000000f, 0.000000f, 0.125000f,
+ -0.678057f, 0.471533f, -0.140974f, 0.950406f, -0.246166f, 0.190081f, 0.125000f, 0.125000f,
+ -0.638273f, 0.471533f, -0.271569f, 0.894539f, -0.246731f, 0.372725f, 0.250000f, 0.125000f,
+ -0.676430f, 0.486914f, -0.140635f, 0.976163f, 0.094813f, 0.195233f, 0.125000f, 0.250000f,
+ -0.581875f, 0.450000f, -0.393750f, 0.749476f, -0.430917f, 0.502590f, 0.375000f, 0.000000f,
+ -0.638273f, 0.471533f, -0.271569f, 0.894539f, -0.246731f, 0.372725f, 0.250000f, 0.125000f,
+ -0.575137f, 0.471533f, -0.389191f, 0.804852f, -0.246803f, 0.539724f, 0.375000f, 0.125000f,
+ -0.491245f, 0.471533f, -0.491245f, 0.685179f, -0.247099f, 0.685180f, 0.500000f, 0.125000f,
+ -0.573757f, 0.486914f, -0.388257f, 0.826782f, 0.095071f, 0.554430f, 0.375000f, 0.250000f,
+ -0.676430f, 0.486914f, -0.140635f, 0.976163f, 0.094813f, 0.195233f, 0.125000f, 0.250000f,
+ -0.693848f, 0.496143f, -0.000000f, 0.724137f, 0.689656f, 0.000000f, 0.000000f, 0.375000f,
+ -0.679971f, 0.496143f, -0.141371f, 0.710057f, 0.689675f, 0.142011f, 0.125000f, 0.375000f,
+ -0.640074f, 0.496143f, -0.272335f, 0.667641f, 0.690558f, 0.278184f, 0.250000f, 0.375000f,
+ -0.687531f, 0.499219f, -0.142943f, 0.000000f, 1.000000f, 0.000000f, 0.125000f, 0.500000f,
+ -0.573757f, 0.486914f, -0.388257f, 0.826782f, 0.095071f, 0.554430f, 0.375000f, 0.250000f,
+ -0.640074f, 0.496143f, -0.272335f, 0.667641f, 0.690558f, 0.278184f, 0.250000f, 0.375000f,
+ -0.576761f, 0.496143f, -0.390289f, 0.600626f, 0.690668f, 0.402773f, 0.375000f, 0.375000f,
+ -0.492632f, 0.496143f, -0.492632f, 0.511047f, 0.691132f, 0.511046f, 0.500000f, 0.375000f,
+ -0.583174f, 0.499219f, -0.394629f, 0.000000f, 1.000000f, 0.000000f, 0.375000f, 0.500000f,
+ -0.274750f, 0.450000f, -0.645750f, 0.347353f, -0.429394f, 0.833647f, 0.750000f, 0.000000f,
+ -0.490066f, 0.486914f, -0.490066f, 0.703896f, 0.095194f, 0.703896f, 0.500000f, 0.250000f,
+ -0.270917f, 0.486914f, -0.636741f, 0.382888f, 0.094664f, 0.918932f, 0.750000f, 0.250000f,
+ 0.000000f, 0.486914f, -0.690234f, -0.000000f, 0.094810f, 0.995495f, 1.000000f, 0.250000f,
+ -0.275363f, 0.499219f, -0.647191f, 0.000000f, 1.000000f, 0.000000f, 0.750000f, 0.500000f,
+ -0.393750f, 0.450000f, -0.581875f, 0.502594f, -0.430900f, 0.749483f, 0.625000f, 0.000000f,
+ -0.491245f, 0.471533f, -0.491245f, 0.685180f, -0.247099f, 0.685179f, 0.500000f, 0.125000f,
+ -0.389191f, 0.471533f, -0.575137f, 0.539726f, -0.246792f, 0.804854f, 0.625000f, 0.125000f,
+ -0.271569f, 0.471533f, -0.638273f, 0.372725f, -0.246731f, 0.894539f, 0.750000f, 0.125000f,
+ -0.388257f, 0.486914f, -0.573757f, 0.554431f, 0.095066f, 0.826782f, 0.625000f, 0.250000f,
+ -0.142625f, 0.450000f, -0.686000f, 0.177068f, -0.429904f, 0.885342f, 0.875000f, 0.000000f,
+ -0.271569f, 0.471533f, -0.638273f, 0.372725f, -0.246731f, 0.894539f, 0.750000f, 0.125000f,
+ -0.140974f, 0.471533f, -0.678057f, 0.190083f, -0.246134f, 0.950414f, 0.875000f, 0.125000f,
+ 0.000000f, 0.471533f, -0.691895f, 0.000000f, -0.246154f, 0.969231f, 1.000000f, 0.125000f,
+ -0.140635f, 0.486914f, -0.676430f, 0.195233f, 0.094801f, 0.976164f, 0.875000f, 0.250000f,
+ -0.388257f, 0.486914f, -0.573757f, 0.554431f, 0.095066f, 0.826782f, 0.625000f, 0.250000f,
+ -0.492632f, 0.496143f, -0.492632f, 0.511046f, 0.691132f, 0.511047f, 0.500000f, 0.375000f,
+ -0.390289f, 0.496143f, -0.576761f, 0.402782f, 0.690651f, 0.600640f, 0.625000f, 0.375000f,
+ -0.272335f, 0.496143f, -0.640074f, 0.278184f, 0.690558f, 0.667641f, 0.750000f, 0.375000f,
+ -0.394629f, 0.499219f, -0.583174f, 0.000000f, 1.000000f, 0.000000f, 0.625000f, 0.500000f,
+ -0.140635f, 0.486914f, -0.676430f, 0.195233f, 0.094801f, 0.976164f, 0.875000f, 0.250000f,
+ -0.272335f, 0.496143f, -0.640074f, 0.278184f, 0.690558f, 0.667641f, 0.750000f, 0.375000f,
+ -0.141371f, 0.496143f, -0.679971f, 0.142021f, 0.689625f, 0.710104f, 0.875000f, 0.375000f,
+ 0.000000f, 0.496143f, -0.693848f, -0.000000f, 0.689656f, 0.724137f, 1.000000f, 0.375000f,
+ -0.142943f, 0.499219f, -0.687531f, 0.000000f, 1.000000f, 0.000000f, 0.875000f, 0.500000f,
+ -0.647191f, 0.499219f, -0.275363f, 0.000000f, 1.000000f, 0.000000f, 0.250000f, 0.500000f,
+ -0.724609f, 0.486914f, -0.000000f, -0.690476f, 0.723356f, 0.000000f, 0.000000f, 0.750000f,
+ -0.668452f, 0.486914f, -0.284409f, -0.637619f, 0.723090f, -0.265674f, 0.250000f, 0.750000f,
+ -0.514473f, 0.486914f, -0.514473f, -0.487196f, 0.724762f, -0.487196f, 0.500000f, 0.750000f,
+ -0.691875f, 0.450000f, -0.294375f, -0.833528f, 0.429664f, -0.347303f, 0.250000f, 1.000000f,
+ -0.687531f, 0.499219f, -0.142943f, 0.000000f, 1.000000f, 0.000000f, 0.125000f, 0.500000f,
+ -0.712207f, 0.496143f, -0.000000f, -0.464835f, 0.885397f, 0.000000f, 0.000000f, 0.625000f,
+ -0.697963f, 0.496143f, -0.145112f, -0.455789f, 0.885407f, -0.091158f, 0.125000f, 0.625000f,
+ -0.657011f, 0.496143f, -0.279541f, -0.428239f, 0.885874f, -0.178433f, 0.250000f, 0.625000f,
+ -0.710117f, 0.486914f, -0.147639f, -0.677049f, 0.723373f, -0.135410f, 0.125000f, 0.750000f,
+ -0.583174f, 0.499219f, -0.394629f, 0.000000f, 1.000000f, 0.000000f, 0.375000f, 0.500000f,
+ -0.657011f, 0.496143f, -0.279541f, -0.428239f, 0.885874f, -0.178433f, 0.250000f, 0.625000f,
+ -0.592022f, 0.496143f, -0.400616f, -0.385216f, 0.885934f, -0.258322f, 0.375000f, 0.625000f,
+ -0.505667f, 0.496143f, -0.505667f, -0.327637f, 0.886176f, -0.327636f, 0.500000f, 0.625000f,
+ -0.602332f, 0.486914f, -0.407593f, -0.572629f, 0.724322f, -0.383998f, 0.375000f, 0.750000f,
+ -0.710117f, 0.486914f, -0.147639f, -0.677049f, 0.723373f, -0.135410f, 0.125000f, 0.750000f,
+ -0.737598f, 0.471533f, -0.000000f, -0.819842f, 0.572589f, 0.000000f, 0.000000f, 0.875000f,
+ -0.722846f, 0.471533f, -0.150286f, -0.803908f, 0.572609f, -0.160782f, 0.125000f, 0.875000f,
+ -0.680434f, 0.471533f, -0.289507f, -0.756157f, 0.573550f, -0.315066f, 0.250000f, 0.875000f,
+ -0.735000f, 0.450000f, -0.152812f, -0.885319f, 0.429952f, -0.177064f, 0.125000f, 1.000000f,
+ -0.602332f, 0.486914f, -0.407593f, -0.572628f, 0.724322f, -0.383998f, 0.375000f, 0.750000f,
+ -0.680434f, 0.471533f, -0.289507f, -0.756158f, 0.573550f, -0.315065f, 0.250000f, 0.875000f,
+ -0.613128f, 0.471533f, -0.414899f, -0.680288f, 0.573668f, -0.456193f, 0.375000f, 0.875000f,
+ -0.523694f, 0.471533f, -0.523694f, -0.578938f, 0.574162f, -0.578938f, 0.500000f, 0.875000f,
+ -0.623438f, 0.450000f, -0.421875f, -0.749476f, 0.430918f, -0.502589f, 0.375000f, 1.000000f,
+ -0.275363f, 0.499219f, -0.647191f, 0.000000f, 1.000000f, 0.000000f, 0.750000f, 0.500000f,
+ -0.514473f, 0.486914f, -0.514473f, -0.487196f, 0.724762f, -0.487196f, 0.500000f, 0.750000f,
+ -0.284409f, 0.486914f, -0.668452f, -0.265781f, 0.722825f, -0.637875f, 0.750000f, 0.750000f,
+ 0.000000f, 0.486914f, -0.724609f, 0.000000f, 0.723356f, -0.690476f, 1.000000f, 0.750000f,
+ -0.294375f, 0.450000f, -0.691875f, -0.347353f, 0.429394f, -0.833647f, 0.750000f, 1.000000f,
+ -0.394629f, 0.499219f, -0.583174f, 0.000000f, 1.000000f, 0.000000f, 0.625000f, 0.500000f,
+ -0.505667f, 0.496143f, -0.505667f, -0.327636f, 0.886176f, -0.327637f, 0.500000f, 0.625000f,
+ -0.400616f, 0.496143f, -0.592022f, -0.258332f, 0.885924f, -0.385231f, 0.625000f, 0.625000f,
+ -0.279541f, 0.496143f, -0.657011f, -0.178433f, 0.885874f, -0.428239f, 0.750000f, 0.625000f,
+ -0.407593f, 0.486914f, -0.602332f, -0.384008f, 0.724305f, -0.572644f, 0.625000f, 0.750000f,
+ -0.142943f, 0.499219f, -0.687531f, 0.000000f, 1.000000f, 0.000000f, 0.875000f, 0.500000f,
+ -0.279541f, 0.496143f, -0.657011f, -0.178433f, 0.885874f, -0.428239f, 0.750000f, 0.625000f,
+ -0.145112f, 0.496143f, -0.697963f, -0.091168f, 0.885381f, -0.455839f, 0.875000f, 0.625000f,
+ 0.000000f, 0.496143f, -0.712207f, 0.000000f, 0.885397f, -0.464835f, 1.000000f, 0.625000f,
+ -0.147639f, 0.486914f, -0.710117f, -0.135420f, 0.723325f, -0.677099f, 0.875000f, 0.750000f,
+ -0.407593f, 0.486914f, -0.602332f, -0.384008f, 0.724305f, -0.572643f, 0.625000f, 0.750000f,
+ -0.523694f, 0.471533f, -0.523694f, -0.578938f, 0.574162f, -0.578938f, 0.500000f, 0.875000f,
+ -0.414899f, 0.471533f, -0.613128f, -0.456201f, 0.573650f, -0.680299f, 0.625000f, 0.875000f,
+ -0.289507f, 0.471533f, -0.680434f, -0.315065f, 0.573550f, -0.756158f, 0.750000f, 0.875000f,
+ -0.421875f, 0.450000f, -0.623438f, -0.502594f, 0.430901f, -0.749482f, 0.625000f, 1.000000f,
+ -0.147639f, 0.486914f, -0.710117f, -0.135420f, 0.723325f, -0.677099f, 0.875000f, 0.750000f,
+ -0.289507f, 0.471533f, -0.680434f, -0.315066f, 0.573550f, -0.756157f, 0.750000f, 0.875000f,
+ -0.150286f, 0.471533f, -0.722846f, -0.160789f, 0.572555f, -0.803945f, 0.875000f, 0.875000f,
+ 0.000000f, 0.471533f, -0.737598f, 0.000000f, 0.572589f, -0.819842f, 1.000000f, 0.875000f,
+ -0.152812f, 0.450000f, -0.735000f, -0.177068f, 0.429904f, -0.885342f, 0.875000f, 1.000000f,
+ 0.000000f, 0.450000f, -0.700000f, 0.000000f, -0.429934f, 0.902860f, 0.000000f, 0.000000f,
+ 0.700000f, 0.450000f, -0.000000f, -0.902860f, -0.429934f, 0.000000f, 1.000000f, 0.000000f,
+ 0.000000f, 0.450000f, -0.750000f, 0.000000f, 0.429934f, -0.902860f, 0.000000f, 1.000000f,
+ 0.750000f, 0.450000f, -0.000000f, 0.902860f, 0.429934f, -0.000000f, 1.000000f, 1.000000f,
+ 0.497000f, 0.450000f, -0.497000f, -0.639602f, -0.426402f, 0.639602f, 0.500000f, 0.000000f,
+ 0.000000f, 0.499219f, -0.701563f, -0.000000f, 1.000000f, 0.000000f, 0.000000f, 0.500000f,
+ 0.498109f, 0.499219f, -0.498109f, -0.000000f, 1.000000f, 0.000000f, 0.500000f, 0.500000f,
+ 0.701563f, 0.499219f, -0.000000f, 0.000000f, 1.000000f, 0.000000f, 1.000000f, 0.500000f,
+ 0.532500f, 0.450000f, -0.532500f, 0.639602f, 0.426402f, -0.639602f, 0.500000f, 1.000000f,
+ 0.274750f, 0.450000f, -0.645750f, -0.347303f, -0.429664f, 0.833528f, 0.250000f, 0.000000f,
+ 0.000000f, 0.486914f, -0.690234f, -0.000000f, 0.094810f, 0.995495f, 0.000000f, 0.250000f,
+ 0.270917f, 0.486914f, -0.636741f, -0.382885f, 0.094737f, 0.918925f, 0.250000f, 0.250000f,
+ 0.490066f, 0.486914f, -0.490066f, -0.703896f, 0.095194f, 0.703896f, 0.500000f, 0.250000f,
+ 0.275363f, 0.499219f, -0.647191f, -0.000000f, 1.000000f, 0.000000f, 0.250000f, 0.500000f,
+ 0.142625f, 0.450000f, -0.686000f, -0.177064f, -0.429953f, 0.885319f, 0.125000f, 0.000000f,
+ 0.000000f, 0.471533f, -0.691895f, 0.000000f, -0.246154f, 0.969231f, 0.000000f, 0.125000f,
+ 0.140974f, 0.471533f, -0.678057f, -0.190081f, -0.246166f, 0.950406f, 0.125000f, 0.125000f,
+ 0.271569f, 0.471533f, -0.638273f, -0.372725f, -0.246731f, 0.894539f, 0.250000f, 0.125000f,
+ 0.140635f, 0.486914f, -0.676430f, -0.195233f, 0.094813f, 0.976163f, 0.125000f, 0.250000f,
+ 0.393750f, 0.450000f, -0.581875f, -0.502590f, -0.430917f, 0.749476f, 0.375000f, 0.000000f,
+ 0.271569f, 0.471533f, -0.638273f, -0.372725f, -0.246731f, 0.894539f, 0.250000f, 0.125000f,
+ 0.389191f, 0.471533f, -0.575137f, -0.539724f, -0.246803f, 0.804852f, 0.375000f, 0.125000f,
+ 0.491245f, 0.471533f, -0.491245f, -0.685180f, -0.247099f, 0.685179f, 0.500000f, 0.125000f,
+ 0.388257f, 0.486914f, -0.573757f, -0.554430f, 0.095071f, 0.826782f, 0.375000f, 0.250000f,
+ 0.140635f, 0.486914f, -0.676430f, -0.195233f, 0.094813f, 0.976163f, 0.125000f, 0.250000f,
+ 0.000000f, 0.496143f, -0.693848f, -0.000000f, 0.689656f, 0.724137f, 0.000000f, 0.375000f,
+ 0.141371f, 0.496143f, -0.679971f, -0.142011f, 0.689675f, 0.710057f, 0.125000f, 0.375000f,
+ 0.272335f, 0.496143f, -0.640074f, -0.278184f, 0.690558f, 0.667641f, 0.250000f, 0.375000f,
+ 0.142943f, 0.499219f, -0.687531f, -0.000000f, 1.000000f, 0.000000f, 0.125000f, 0.500000f,
+ 0.388257f, 0.486914f, -0.573757f, -0.554430f, 0.095071f, 0.826782f, 0.375000f, 0.250000f,
+ 0.272335f, 0.496143f, -0.640074f, -0.278184f, 0.690558f, 0.667641f, 0.250000f, 0.375000f,
+ 0.390289f, 0.496143f, -0.576761f, -0.402773f, 0.690668f, 0.600626f, 0.375000f, 0.375000f,
+ 0.492632f, 0.496143f, -0.492632f, -0.511046f, 0.691132f, 0.511047f, 0.500000f, 0.375000f,
+ 0.394629f, 0.499219f, -0.583174f, -0.000000f, 1.000000f, 0.000000f, 0.375000f, 0.500000f,
+ 0.645750f, 0.450000f, -0.274750f, -0.833647f, -0.429394f, 0.347353f, 0.750000f, 0.000000f,
+ 0.490066f, 0.486914f, -0.490066f, -0.703896f, 0.095194f, 0.703896f, 0.500000f, 0.250000f,
+ 0.636741f, 0.486914f, -0.270917f, -0.918932f, 0.094664f, 0.382888f, 0.750000f, 0.250000f,
+ 0.690234f, 0.486914f, -0.000000f, -0.995495f, 0.094810f, 0.000000f, 1.000000f, 0.250000f,
+ 0.647191f, 0.499219f, -0.275363f, -0.000000f, 1.000000f, 0.000000f, 0.750000f, 0.500000f,
+ 0.581875f, 0.450000f, -0.393750f, -0.749483f, -0.430900f, 0.502594f, 0.625000f, 0.000000f,
+ 0.491245f, 0.471533f, -0.491245f, -0.685179f, -0.247099f, 0.685180f, 0.500000f, 0.125000f,
+ 0.575137f, 0.471533f, -0.389191f, -0.804854f, -0.246792f, 0.539726f, 0.625000f, 0.125000f,
+ 0.638273f, 0.471533f, -0.271569f, -0.894539f, -0.246731f, 0.372725f, 0.750000f, 0.125000f,
+ 0.573757f, 0.486914f, -0.388257f, -0.826782f, 0.095066f, 0.554431f, 0.625000f, 0.250000f,
+ 0.686000f, 0.450000f, -0.142625f, -0.885342f, -0.429904f, 0.177068f, 0.875000f, 0.000000f,
+ 0.638273f, 0.471533f, -0.271569f, -0.894539f, -0.246731f, 0.372725f, 0.750000f, 0.125000f,
+ 0.678057f, 0.471533f, -0.140974f, -0.950414f, -0.246134f, 0.190083f, 0.875000f, 0.125000f,
+ 0.691895f, 0.471533f, -0.000000f, -0.969231f, -0.246154f, 0.000000f, 1.000000f, 0.125000f,
+ 0.676430f, 0.486914f, -0.140635f, -0.976164f, 0.094801f, 0.195233f, 0.875000f, 0.250000f,
+ 0.573757f, 0.486914f, -0.388257f, -0.826782f, 0.095066f, 0.554431f, 0.625000f, 0.250000f,
+ 0.492632f, 0.496143f, -0.492632f, -0.511047f, 0.691132f, 0.511046f, 0.500000f, 0.375000f,
+ 0.576761f, 0.496143f, -0.390289f, -0.600640f, 0.690651f, 0.402782f, 0.625000f, 0.375000f,
+ 0.640074f, 0.496143f, -0.272335f, -0.667641f, 0.690558f, 0.278184f, 0.750000f, 0.375000f,
+ 0.583174f, 0.499219f, -0.394629f, -0.000000f, 1.000000f, 0.000000f, 0.625000f, 0.500000f,
+ 0.676430f, 0.486914f, -0.140635f, -0.976164f, 0.094801f, 0.195233f, 0.875000f, 0.250000f,
+ 0.640074f, 0.496143f, -0.272335f, -0.667641f, 0.690558f, 0.278184f, 0.750000f, 0.375000f,
+ 0.679971f, 0.496143f, -0.141371f, -0.710104f, 0.689625f, 0.142021f, 0.875000f, 0.375000f,
+ 0.693848f, 0.496143f, -0.000000f, -0.724137f, 0.689656f, 0.000000f, 1.000000f, 0.375000f,
+ 0.687531f, 0.499219f, -0.142943f, -0.000000f, 1.000000f, 0.000000f, 0.875000f, 0.500000f,
+ 0.275363f, 0.499219f, -0.647191f, -0.000000f, 1.000000f, 0.000000f, 0.250000f, 0.500000f,
+ 0.000000f, 0.486914f, -0.724609f, 0.000000f, 0.723356f, -0.690476f, 0.000000f, 0.750000f,
+ 0.284409f, 0.486914f, -0.668452f, 0.265674f, 0.723090f, -0.637619f, 0.250000f, 0.750000f,
+ 0.514473f, 0.486914f, -0.514473f, 0.487196f, 0.724762f, -0.487196f, 0.500000f, 0.750000f,
+ 0.294375f, 0.450000f, -0.691875f, 0.347303f, 0.429664f, -0.833528f, 0.250000f, 1.000000f,
+ 0.142943f, 0.499219f, -0.687531f, -0.000000f, 1.000000f, 0.000000f, 0.125000f, 0.500000f,
+ 0.000000f, 0.496143f, -0.712207f, 0.000000f, 0.885397f, -0.464835f, 0.000000f, 0.625000f,
+ 0.145112f, 0.496143f, -0.697963f, 0.091158f, 0.885407f, -0.455789f, 0.125000f, 0.625000f,
+ 0.279541f, 0.496143f, -0.657011f, 0.178433f, 0.885874f, -0.428239f, 0.250000f, 0.625000f,
+ 0.147639f, 0.486914f, -0.710117f, 0.135410f, 0.723373f, -0.677049f, 0.125000f, 0.750000f,
+ 0.394629f, 0.499219f, -0.583174f, -0.000000f, 1.000000f, 0.000000f, 0.375000f, 0.500000f,
+ 0.279541f, 0.496143f, -0.657011f, 0.178433f, 0.885874f, -0.428239f, 0.250000f, 0.625000f,
+ 0.400616f, 0.496143f, -0.592022f, 0.258322f, 0.885934f, -0.385216f, 0.375000f, 0.625000f,
+ 0.505667f, 0.496143f, -0.505667f, 0.327636f, 0.886176f, -0.327637f, 0.500000f, 0.625000f,
+ 0.407593f, 0.486914f, -0.602332f, 0.383998f, 0.724322f, -0.572629f, 0.375000f, 0.750000f,
+ 0.147639f, 0.486914f, -0.710117f, 0.135410f, 0.723373f, -0.677049f, 0.125000f, 0.750000f,
+ 0.000000f, 0.471533f, -0.737598f, 0.000000f, 0.572589f, -0.819842f, 0.000000f, 0.875000f,
+ 0.150286f, 0.471533f, -0.722846f, 0.160782f, 0.572609f, -0.803908f, 0.125000f, 0.875000f,
+ 0.289507f, 0.471533f, -0.680434f, 0.315066f, 0.573550f, -0.756157f, 0.250000f, 0.875000f,
+ 0.152812f, 0.450000f, -0.735000f, 0.177064f, 0.429952f, -0.885319f, 0.125000f, 1.000000f,
+ 0.407593f, 0.486914f, -0.602332f, 0.383998f, 0.724322f, -0.572628f, 0.375000f, 0.750000f,
+ 0.289507f, 0.471533f, -0.680434f, 0.315065f, 0.573550f, -0.756158f, 0.250000f, 0.875000f,
+ 0.414899f, 0.471533f, -0.613128f, 0.456193f, 0.573668f, -0.680288f, 0.375000f, 0.875000f,
+ 0.523694f, 0.471533f, -0.523694f, 0.578938f, 0.574162f, -0.578938f, 0.500000f, 0.875000f,
+ 0.421875f, 0.450000f, -0.623438f, 0.502589f, 0.430918f, -0.749476f, 0.375000f, 1.000000f,
+ 0.647191f, 0.499219f, -0.275363f, -0.000000f, 1.000000f, 0.000000f, 0.750000f, 0.500000f,
+ 0.514473f, 0.486914f, -0.514473f, 0.487196f, 0.724762f, -0.487196f, 0.500000f, 0.750000f,
+ 0.668452f, 0.486914f, -0.284409f, 0.637875f, 0.722825f, -0.265781f, 0.750000f, 0.750000f,
+ 0.724609f, 0.486914f, -0.000000f, 0.690476f, 0.723356f, -0.000000f, 1.000000f, 0.750000f,
+ 0.691875f, 0.450000f, -0.294375f, 0.833647f, 0.429394f, -0.347353f, 0.750000f, 1.000000f,
+ 0.583174f, 0.499219f, -0.394629f, -0.000000f, 1.000000f, 0.000000f, 0.625000f, 0.500000f,
+ 0.505667f, 0.496143f, -0.505667f, 0.327637f, 0.886176f, -0.327636f, 0.500000f, 0.625000f,
+ 0.592022f, 0.496143f, -0.400616f, 0.385231f, 0.885924f, -0.258332f, 0.625000f, 0.625000f,
+ 0.657011f, 0.496143f, -0.279541f, 0.428239f, 0.885874f, -0.178433f, 0.750000f, 0.625000f,
+ 0.602332f, 0.486914f, -0.407593f, 0.572644f, 0.724305f, -0.384008f, 0.625000f, 0.750000f,
+ 0.687531f, 0.499219f, -0.142943f, -0.000000f, 1.000000f, 0.000000f, 0.875000f, 0.500000f,
+ 0.657011f, 0.496143f, -0.279541f, 0.428239f, 0.885874f, -0.178433f, 0.750000f, 0.625000f,
+ 0.697963f, 0.496143f, -0.145112f, 0.455839f, 0.885381f, -0.091168f, 0.875000f, 0.625000f,
+ 0.712207f, 0.496143f, -0.000000f, 0.464835f, 0.885397f, -0.000000f, 1.000000f, 0.625000f,
+ 0.710117f, 0.486914f, -0.147639f, 0.677099f, 0.723325f, -0.135420f, 0.875000f, 0.750000f,
+ 0.602332f, 0.486914f, -0.407593f, 0.572643f, 0.724305f, -0.384008f, 0.625000f, 0.750000f,
+ 0.523694f, 0.471533f, -0.523694f, 0.578938f, 0.574162f, -0.578938f, 0.500000f, 0.875000f,
+ 0.613128f, 0.471533f, -0.414899f, 0.680299f, 0.573650f, -0.456201f, 0.625000f, 0.875000f,
+ 0.680434f, 0.471533f, -0.289507f, 0.756158f, 0.573550f, -0.315065f, 0.750000f, 0.875000f,
+ 0.623438f, 0.450000f, -0.421875f, 0.749482f, 0.430901f, -0.502594f, 0.625000f, 1.000000f,
+ 0.710117f, 0.486914f, -0.147639f, 0.677099f, 0.723325f, -0.135420f, 0.875000f, 0.750000f,
+ 0.680434f, 0.471533f, -0.289507f, 0.756157f, 0.573550f, -0.315066f, 0.750000f, 0.875000f,
+ 0.722846f, 0.471533f, -0.150286f, 0.803945f, 0.572555f, -0.160789f, 0.875000f, 0.875000f,
+ 0.737598f, 0.471533f, -0.000000f, 0.819842f, 0.572589f, -0.000000f, 1.000000f, 0.875000f,
+ 0.735000f, 0.450000f, -0.152812f, 0.885342f, 0.429904f, -0.177068f, 0.875000f, 1.000000f,
+ 0.750000f, 0.450000f, -0.000000f, 0.902861f, 0.429934f, -0.000000f, 0.000000f, 0.000000f,
+ 0.000000f, 0.450000f, 0.750000f, 0.000000f, 0.429934f, 0.902861f, 1.000000f, 0.000000f,
+ 1.000000f, -0.300000f, -0.000000f, 1.000000f, 0.000000f, -0.000000f, 0.000000f, 1.000000f,
+ 0.000000f, -0.300000f, 1.000000f, 0.000000f, 0.000000f, 1.000000f, 1.000000f, 1.000000f,
+ 0.532500f, 0.450000f, 0.532500f, 0.639602f, 0.426401f, 0.639602f, 0.500000f, 0.000000f,
+ 0.921875f, 0.060938f, -0.000000f, 0.937749f, 0.347314f, -0.000000f, 0.000000f, 0.500000f,
+ 0.654531f, 0.060938f, 0.654531f, 0.663890f, 0.344239f, 0.663890f, 0.500000f, 0.500000f,
+ 0.000000f, 0.060938f, 0.921875f, 0.000000f, 0.347314f, 0.937749f, 1.000000f, 0.500000f,
+ 0.710000f, -0.300000f, 0.710000f, 0.707107f, 0.000000f, 0.707107f, 0.500000f, 1.000000f,
+ 0.691875f, 0.450000f, 0.294375f, 0.833528f, 0.429664f, 0.347303f, 0.250000f, 0.000000f,
+ 0.841797f, 0.253711f, -0.000000f, 0.911768f, 0.410706f, -0.000000f, 0.000000f, 0.250000f,
+ 0.776558f, 0.253711f, 0.330405f, 0.841741f, 0.410444f, 0.350725f, 0.250000f, 0.250000f,
+ 0.597676f, 0.253711f, 0.597676f, 0.644272f, 0.412102f, 0.644272f, 0.500000f, 0.250000f,
+ 0.850430f, 0.060938f, 0.361836f, 0.865695f, 0.347079f, 0.360706f, 0.250000f, 0.500000f,
+ 0.735000f, 0.450000f, 0.152812f, 0.885319f, 0.429952f, 0.177064f, 0.125000f, 0.000000f,
+ 0.796631f, 0.351636f, -0.000000f, 0.905094f, 0.425212f, -0.000000f, 0.000000f, 0.125000f,
+ 0.780698f, 0.351636f, 0.162314f, 0.887509f, 0.425230f, 0.177502f, 0.125000f, 0.125000f,
+ 0.734892f, 0.351636f, 0.312678f, 0.835093f, 0.426082f, 0.347956f, 0.250000f, 0.125000f,
+ 0.824961f, 0.253711f, 0.171516f, 0.894054f, 0.410724f, 0.178811f, 0.125000f, 0.250000f,
+ 0.623438f, 0.450000f, 0.421875f, 0.749476f, 0.430917f, 0.502590f, 0.375000f, 0.000000f,
+ 0.734892f, 0.351636f, 0.312678f, 0.835093f, 0.426082f, 0.347956f, 0.250000f, 0.125000f,
+ 0.662199f, 0.351636f, 0.448105f, 0.751338f, 0.426189f, 0.503839f, 0.375000f, 0.125000f,
+ 0.565608f, 0.351636f, 0.565608f, 0.639524f, 0.426636f, 0.639524f, 0.500000f, 0.125000f,
+ 0.699744f, 0.253711f, 0.473511f, 0.756904f, 0.411664f, 0.507571f, 0.375000f, 0.250000f,
+ 0.824961f, 0.253711f, 0.171516f, 0.894054f, 0.410724f, 0.178811f, 0.125000f, 0.250000f,
+ 0.884033f, 0.156665f, -0.000000f, 0.922766f, 0.385361f, -0.000000f, 0.000000f, 0.375000f,
+ 0.866353f, 0.156665f, 0.180122f, 0.904839f, 0.385379f, 0.180968f, 0.125000f, 0.375000f,
+ 0.815521f, 0.156665f, 0.346983f, 0.851467f, 0.386182f, 0.354778f, 0.250000f, 0.375000f,
+ 0.903437f, 0.060938f, 0.187832f, 0.919533f, 0.347330f, 0.183906f, 0.125000f, 0.500000f,
+ 0.699744f, 0.253711f, 0.473511f, 0.756904f, 0.411665f, 0.507571f, 0.375000f, 0.250000f,
+ 0.815521f, 0.156665f, 0.346983f, 0.851467f, 0.386182f, 0.354778f, 0.250000f, 0.375000f,
+ 0.734853f, 0.156665f, 0.497269f, 0.766078f, 0.386283f, 0.513723f, 0.375000f, 0.375000f,
+ 0.627664f, 0.156665f, 0.627664f, 0.652097f, 0.386703f, 0.652097f, 0.500000f, 0.375000f,
+ 0.766309f, 0.060938f, 0.518555f, 0.778577f, 0.348172f, 0.522105f, 0.375000f, 0.500000f,
+ 0.294375f, 0.450000f, 0.691875f, 0.347353f, 0.429394f, 0.833647f, 0.750000f, 0.000000f,
+ 0.597676f, 0.253711f, 0.597676f, 0.644272f, 0.412102f, 0.644272f, 0.500000f, 0.250000f,
+ 0.330405f, 0.253711f, 0.776558f, 0.350771f, 0.410181f, 0.841850f, 0.750000f, 0.250000f,
+ 0.000000f, 0.253711f, 0.841797f, 0.000000f, 0.410706f, 0.911768f, 1.000000f, 0.250000f,
+ 0.361836f, 0.060938f, 0.850430f, 0.360739f, 0.346844f, 0.865775f, 0.750000f, 0.500000f,
+ 0.421875f, 0.450000f, 0.623438f, 0.502594f, 0.430900f, 0.749483f, 0.625000f, 0.000000f,
+ 0.565608f, 0.351636f, 0.565608f, 0.639524f, 0.426636f, 0.639524f, 0.500000f, 0.125000f,
+ 0.448105f, 0.351636f, 0.662199f, 0.503843f, 0.426172f, 0.751345f, 0.625000f, 0.125000f,
+ 0.312678f, 0.351636f, 0.734892f, 0.347956f, 0.426082f, 0.835093f, 0.750000f, 0.125000f,
+ 0.473511f, 0.253711f, 0.699744f, 0.507575f, 0.411648f, 0.756911f, 0.625000f, 0.250000f,
+ 0.152812f, 0.450000f, 0.735000f, 0.177068f, 0.429903f, 0.885342f, 0.875000f, 0.000000f,
+ 0.312678f, 0.351636f, 0.734892f, 0.347956f, 0.426082f, 0.835093f, 0.750000f, 0.125000f,
+ 0.162314f, 0.351636f, 0.780698f, 0.177506f, 0.425181f, 0.887532f, 0.875000f, 0.125000f,
+ 0.000000f, 0.351636f, 0.796631f, 0.000000f, 0.425212f, 0.905094f, 1.000000f, 0.125000f,
+ 0.171516f, 0.253711f, 0.824961f, 0.178815f, 0.410676f, 0.894075f, 0.875000f, 0.250000f,
+ 0.473511f, 0.253711f, 0.699744f, 0.507575f, 0.411648f, 0.756910f, 0.625000f, 0.250000f,
+ 0.627664f, 0.156665f, 0.627664f, 0.652097f, 0.386703f, 0.652097f, 0.500000f, 0.375000f,
+ 0.497269f, 0.156665f, 0.734853f, 0.513726f, 0.386267f, 0.766083f, 0.625000f, 0.375000f,
+ 0.346983f, 0.156665f, 0.815521f, 0.354778f, 0.386182f, 0.851467f, 0.750000f, 0.375000f,
+ 0.518555f, 0.060938f, 0.766309f, 0.522108f, 0.348157f, 0.778582f, 0.625000f, 0.500000f,
+ 0.171516f, 0.253711f, 0.824961f, 0.178815f, 0.410676f, 0.894075f, 0.875000f, 0.250000f,
+ 0.346983f, 0.156665f, 0.815521f, 0.354778f, 0.386182f, 0.851467f, 0.750000f, 0.375000f,
+ 0.180122f, 0.156665f, 0.866353f, 0.180972f, 0.385333f, 0.904858f, 0.875000f, 0.375000f,
+ 0.000000f, 0.156665f, 0.884033f, 0.000000f, 0.385361f, 0.922766f, 1.000000f, 0.375000f,
+ 0.187832f, 0.060938f, 0.903437f, 0.183909f, 0.347288f, 0.919548f, 0.875000f, 0.500000f,
+ 0.850430f, 0.060938f, 0.361836f, 0.865695f, 0.347079f, 0.360706f, 0.250000f, 0.500000f,
+ 0.978516f, -0.124805f, -0.000000f, 0.975288f, 0.220939f, -0.000000f, 0.000000f, 0.750000f,
+ 0.902681f, -0.124805f, 0.384067f, 0.900299f, 0.220777f, 0.375125f, 0.250000f, 0.750000f,
+ 0.694746f, -0.124805f, 0.694746f, 0.689494f, 0.221799f, 0.689495f, 0.500000f, 0.750000f,
+ 0.922500f, -0.300000f, 0.392500f, 0.923077f, 0.000000f, 0.384615f, 0.250000f, 1.000000f,
+ 0.903437f, 0.060938f, 0.187832f, 0.919533f, 0.347330f, 0.183906f, 0.125000f, 0.500000f,
+ 0.953857f, -0.033032f, -0.000000f, 0.955877f, 0.293768f, -0.000000f, 0.000000f, 0.625000f,
+ 0.934780f, -0.033032f, 0.194348f, 0.937310f, 0.293782f, 0.187462f, 0.125000f, 0.625000f,
+ 0.879933f, -0.033032f, 0.374389f, 0.882157f, 0.294439f, 0.367565f, 0.250000f, 0.625000f,
+ 0.958945f, -0.124805f, 0.199373f, 0.956346f, 0.220950f, 0.191269f, 0.125000f, 0.750000f,
+ 0.766309f, 0.060938f, 0.518555f, 0.778578f, 0.348172f, 0.522105f, 0.375000f, 0.500000f,
+ 0.879933f, -0.033032f, 0.374389f, 0.882157f, 0.294439f, 0.367565f, 0.250000f, 0.625000f,
+ 0.792894f, -0.033032f, 0.536545f, 0.793705f, 0.294522f, 0.532249f, 0.375000f, 0.625000f,
+ 0.677239f, -0.033032f, 0.677239f, 0.675668f, 0.294866f, 0.675668f, 0.500000f, 0.625000f,
+ 0.813391f, -0.124805f, 0.550415f, 0.809908f, 0.221529f, 0.543115f, 0.375000f, 0.750000f,
+ 0.958945f, -0.124805f, 0.199373f, 0.956346f, 0.220950f, 0.191269f, 0.125000f, 0.750000f,
+ 0.994385f, -0.213940f, -0.000000f, 0.992240f, 0.124341f, -0.000000f, 0.000000f, 0.875000f,
+ 0.974497f, -0.213940f, 0.202606f, 0.972970f, 0.124347f, 0.194594f, 0.125000f, 0.875000f,
+ 0.917320f, -0.213940f, 0.390296f, 0.915878f, 0.124647f, 0.381616f, 0.250000f, 0.875000f,
+ 0.980000f, -0.300000f, 0.203750f, 0.980581f, 0.000000f, 0.196116f, 0.125000f, 1.000000f,
+ 0.813391f, -0.124805f, 0.550415f, 0.809908f, 0.221529f, 0.543115f, 0.375000f, 0.750000f,
+ 0.917320f, -0.213940f, 0.390296f, 0.915878f, 0.124647f, 0.381616f, 0.250000f, 0.875000f,
+ 0.826582f, -0.213940f, 0.559341f, 0.824063f, 0.124685f, 0.552607f, 0.375000f, 0.875000f,
+ 0.706013f, -0.213940f, 0.706013f, 0.701575f, 0.124842f, 0.701575f, 0.500000f, 0.875000f,
+ 0.831250f, -0.300000f, 0.562500f, 0.830544f, 0.000000f, 0.556953f, 0.375000f, 1.000000f,
+ 0.361836f, 0.060938f, 0.850430f, 0.360740f, 0.346844f, 0.865775f, 0.750000f, 0.500000f,
+ 0.694746f, -0.124805f, 0.694746f, 0.689495f, 0.221799f, 0.689494f, 0.500000f, 0.750000f,
+ 0.384067f, -0.124805f, 0.902681f, 0.375139f, 0.220616f, 0.900333f, 0.750000f, 0.750000f,
+ 0.000000f, -0.124805f, 0.978516f, 0.000000f, 0.220939f, 0.975288f, 1.000000f, 0.750000f,
+ 0.392500f, -0.300000f, 0.922500f, 0.384615f, 0.000000f, 0.923077f, 0.750000f, 1.000000f,
+ 0.518555f, 0.060938f, 0.766309f, 0.522108f, 0.348157f, 0.778582f, 0.625000f, 0.500000f,
+ 0.677239f, -0.033032f, 0.677239f, 0.675668f, 0.294866f, 0.675668f, 0.500000f, 0.625000f,
+ 0.536545f, -0.033032f, 0.792894f, 0.532252f, 0.294509f, 0.793708f, 0.625000f, 0.625000f,
+ 0.374389f, -0.033032f, 0.879933f, 0.367565f, 0.294439f, 0.882157f, 0.750000f, 0.625000f,
+ 0.550415f, -0.124805f, 0.813391f, 0.543116f, 0.221518f, 0.809910f, 0.625000f, 0.750000f,
+ 0.187832f, 0.060938f, 0.903437f, 0.183910f, 0.347287f, 0.919548f, 0.875000f, 0.500000f,
+ 0.374389f, -0.033032f, 0.879933f, 0.367565f, 0.294439f, 0.882157f, 0.750000f, 0.625000f,
+ 0.194348f, -0.033032f, 0.934780f, 0.187464f, 0.293744f, 0.937321f, 0.875000f, 0.625000f,
+ 0.000000f, -0.033032f, 0.953857f, 0.000000f, 0.293768f, 0.955877f, 1.000000f, 0.625000f,
+ 0.199373f, -0.124805f, 0.958945f, 0.191271f, 0.220920f, 0.956352f, 0.875000f, 0.750000f,
+ 0.550415f, -0.124805f, 0.813391f, 0.543116f, 0.221518f, 0.809910f, 0.625000f, 0.750000f,
+ 0.706013f, -0.213940f, 0.706013f, 0.701575f, 0.124842f, 0.701575f, 0.500000f, 0.875000f,
+ 0.559341f, -0.213940f, 0.826582f, 0.552607f, 0.124679f, 0.824063f, 0.625000f, 0.875000f,
+ 0.390296f, -0.213940f, 0.917320f, 0.381616f, 0.124647f, 0.915878f, 0.750000f, 0.875000f,
+ 0.562500f, -0.300000f, 0.831250f, 0.556953f, 0.000000f, 0.830544f, 0.625000f, 1.000000f,
+ 0.199373f, -0.124805f, 0.958945f, 0.191271f, 0.220920f, 0.956352f, 0.875000f, 0.750000f,
+ 0.390296f, -0.213940f, 0.917320f, 0.381616f, 0.124647f, 0.915878f, 0.750000f, 0.875000f,
+ 0.202606f, -0.213940f, 0.974497f, 0.194595f, 0.124330f, 0.972972f, 0.875000f, 0.875000f,
+ 0.000000f, -0.213940f, 0.994385f, 0.000000f, 0.124341f, 0.992240f, 1.000000f, 0.875000f,
+ 0.203750f, -0.300000f, 0.980000f, 0.196116f, 0.000000f, 0.980581f, 0.875000f, 1.000000f,
+ 0.000000f, 0.450000f, 0.750000f, 0.000000f, 0.429934f, 0.902861f, 0.000000f, 0.000000f,
+ -0.750000f, 0.450000f, -0.000000f, -0.902861f, 0.429934f, 0.000000f, 1.000000f, 0.000000f,
+ 0.000000f, -0.300000f, 1.000000f, 0.000000f, 0.000000f, 1.000000f, 0.000000f, 1.000000f,
+ -1.000000f, -0.300000f, -0.000000f, -1.000000f, -0.000000f, -0.000000f, 1.000000f, 1.000000f,
+ -0.532500f, 0.450000f, 0.532500f, -0.639602f, 0.426401f, 0.639602f, 0.500000f, 0.000000f,
+ 0.000000f, 0.060938f, 0.921875f, 0.000000f, 0.347314f, 0.937749f, 0.000000f, 0.500000f,
+ -0.654531f, 0.060938f, 0.654531f, -0.663890f, 0.344239f, 0.663890f, 0.500000f, 0.500000f,
+ -0.921875f, 0.060938f, -0.000000f, -0.937749f, 0.347314f, 0.000000f, 1.000000f, 0.500000f,
+ -0.710000f, -0.300000f, 0.710000f, -0.707107f, 0.000000f, 0.707107f, 0.500000f, 1.000000f,
+ -0.294375f, 0.450000f, 0.691875f, -0.347303f, 0.429664f, 0.833528f, 0.250000f, 0.000000f,
+ 0.000000f, 0.253711f, 0.841797f, 0.000000f, 0.410706f, 0.911768f, 0.000000f, 0.250000f,
+ -0.330405f, 0.253711f, 0.776558f, -0.350725f, 0.410444f, 0.841741f, 0.250000f, 0.250000f,
+ -0.597676f, 0.253711f, 0.597676f, -0.644272f, 0.412102f, 0.644272f, 0.500000f, 0.250000f,
+ -0.361836f, 0.060938f, 0.850430f, -0.360706f, 0.347079f, 0.865695f, 0.250000f, 0.500000f,
+ -0.152812f, 0.450000f, 0.735000f, -0.177064f, 0.429952f, 0.885319f, 0.125000f, 0.000000f,
+ 0.000000f, 0.351636f, 0.796631f, 0.000000f, 0.425212f, 0.905094f, 0.000000f, 0.125000f,
+ -0.162314f, 0.351636f, 0.780698f, -0.177502f, 0.425230f, 0.887509f, 0.125000f, 0.125000f,
+ -0.312678f, 0.351636f, 0.734892f, -0.347956f, 0.426082f, 0.835093f, 0.250000f, 0.125000f,
+ -0.171516f, 0.253711f, 0.824961f, -0.178811f, 0.410724f, 0.894054f, 0.125000f, 0.250000f,
+ -0.421875f, 0.450000f, 0.623438f, -0.502590f, 0.430917f, 0.749476f, 0.375000f, 0.000000f,
+ -0.312678f, 0.351636f, 0.734892f, -0.347956f, 0.426082f, 0.835093f, 0.250000f, 0.125000f,
+ -0.448105f, 0.351636f, 0.662199f, -0.503839f, 0.426189f, 0.751338f, 0.375000f, 0.125000f,
+ -0.565608f, 0.351636f, 0.565608f, -0.639524f, 0.426636f, 0.639524f, 0.500000f, 0.125000f,
+ -0.473511f, 0.253711f, 0.699744f, -0.507571f, 0.411664f, 0.756904f, 0.375000f, 0.250000f,
+ -0.171516f, 0.253711f, 0.824961f, -0.178811f, 0.410724f, 0.894054f, 0.125000f, 0.250000f,
+ 0.000000f, 0.156665f, 0.884033f, 0.000000f, 0.385361f, 0.922766f, 0.000000f, 0.375000f,
+ -0.180122f, 0.156665f, 0.866353f, -0.180968f, 0.385379f, 0.904839f, 0.125000f, 0.375000f,
+ -0.346983f, 0.156665f, 0.815521f, -0.354778f, 0.386182f, 0.851467f, 0.250000f, 0.375000f,
+ -0.187832f, 0.060938f, 0.903437f, -0.183906f, 0.347330f, 0.919533f, 0.125000f, 0.500000f,
+ -0.473511f, 0.253711f, 0.699744f, -0.507571f, 0.411665f, 0.756904f, 0.375000f, 0.250000f,
+ -0.346983f, 0.156665f, 0.815521f, -0.354778f, 0.386182f, 0.851467f, 0.250000f, 0.375000f,
+ -0.497269f, 0.156665f, 0.734853f, -0.513723f, 0.386283f, 0.766078f, 0.375000f, 0.375000f,
+ -0.627664f, 0.156665f, 0.627664f, -0.652097f, 0.386703f, 0.652097f, 0.500000f, 0.375000f,
+ -0.518555f, 0.060938f, 0.766309f, -0.522105f, 0.348172f, 0.778577f, 0.375000f, 0.500000f,
+ -0.691875f, 0.450000f, 0.294375f, -0.833647f, 0.429394f, 0.347353f, 0.750000f, 0.000000f,
+ -0.597676f, 0.253711f, 0.597676f, -0.644272f, 0.412102f, 0.644272f, 0.500000f, 0.250000f,
+ -0.776558f, 0.253711f, 0.330405f, -0.841850f, 0.410181f, 0.350771f, 0.750000f, 0.250000f,
+ -0.841797f, 0.253711f, -0.000000f, -0.911768f, 0.410706f, 0.000000f, 1.000000f, 0.250000f,
+ -0.850430f, 0.060938f, 0.361836f, -0.865775f, 0.346844f, 0.360739f, 0.750000f, 0.500000f,
+ -0.623438f, 0.450000f, 0.421875f, -0.749483f, 0.430900f, 0.502594f, 0.625000f, 0.000000f,
+ -0.565608f, 0.351636f, 0.565608f, -0.639524f, 0.426636f, 0.639524f, 0.500000f, 0.125000f,
+ -0.662199f, 0.351636f, 0.448105f, -0.751345f, 0.426172f, 0.503843f, 0.625000f, 0.125000f,
+ -0.734892f, 0.351636f, 0.312678f, -0.835093f, 0.426082f, 0.347956f, 0.750000f, 0.125000f,
+ -0.699744f, 0.253711f, 0.473511f, -0.756911f, 0.411648f, 0.507575f, 0.625000f, 0.250000f,
+ -0.735000f, 0.450000f, 0.152812f, -0.885342f, 0.429903f, 0.177068f, 0.875000f, 0.000000f,
+ -0.734892f, 0.351636f, 0.312678f, -0.835093f, 0.426082f, 0.347956f, 0.750000f, 0.125000f,
+ -0.780698f, 0.351636f, 0.162314f, -0.887532f, 0.425181f, 0.177506f, 0.875000f, 0.125000f,
+ -0.796631f, 0.351636f, -0.000000f, -0.905094f, 0.425212f, 0.000000f, 1.000000f, 0.125000f,
+ -0.824961f, 0.253711f, 0.171516f, -0.894075f, 0.410676f, 0.178815f, 0.875000f, 0.250000f,
+ -0.699744f, 0.253711f, 0.473511f, -0.756910f, 0.411648f, 0.507575f, 0.625000f, 0.250000f,
+ -0.627664f, 0.156665f, 0.627664f, -0.652097f, 0.386703f, 0.652097f, 0.500000f, 0.375000f,
+ -0.734853f, 0.156665f, 0.497269f, -0.766083f, 0.386267f, 0.513726f, 0.625000f, 0.375000f,
+ -0.815521f, 0.156665f, 0.346983f, -0.851467f, 0.386182f, 0.354778f, 0.750000f, 0.375000f,
+ -0.766309f, 0.060938f, 0.518555f, -0.778582f, 0.348157f, 0.522108f, 0.625000f, 0.500000f,
+ -0.824961f, 0.253711f, 0.171516f, -0.894075f, 0.410676f, 0.178815f, 0.875000f, 0.250000f,
+ -0.815521f, 0.156665f, 0.346983f, -0.851467f, 0.386182f, 0.354778f, 0.750000f, 0.375000f,
+ -0.866353f, 0.156665f, 0.180122f, -0.904858f, 0.385333f, 0.180972f, 0.875000f, 0.375000f,
+ -0.884033f, 0.156665f, -0.000000f, -0.922766f, 0.385361f, 0.000000f, 1.000000f, 0.375000f,
+ -0.903437f, 0.060938f, 0.187832f, -0.919548f, 0.347288f, 0.183909f, 0.875000f, 0.500000f,
+ -0.361836f, 0.060938f, 0.850430f, -0.360706f, 0.347079f, 0.865695f, 0.250000f, 0.500000f,
+ 0.000000f, -0.124805f, 0.978516f, 0.000000f, 0.220939f, 0.975288f, 0.000000f, 0.750000f,
+ -0.384067f, -0.124805f, 0.902681f, -0.375125f, 0.220777f, 0.900299f, 0.250000f, 0.750000f,
+ -0.694746f, -0.124805f, 0.694746f, -0.689495f, 0.221799f, 0.689494f, 0.500000f, 0.750000f,
+ -0.392500f, -0.300000f, 0.922500f, -0.384615f, 0.000000f, 0.923077f, 0.250000f, 1.000000f,
+ -0.187832f, 0.060938f, 0.903437f, -0.183906f, 0.347330f, 0.919533f, 0.125000f, 0.500000f,
+ 0.000000f, -0.033032f, 0.953857f, 0.000000f, 0.293768f, 0.955877f, 0.000000f, 0.625000f,
+ -0.194348f, -0.033032f, 0.934780f, -0.187462f, 0.293782f, 0.937310f, 0.125000f, 0.625000f,
+ -0.374389f, -0.033032f, 0.879933f, -0.367565f, 0.294439f, 0.882157f, 0.250000f, 0.625000f,
+ -0.199373f, -0.124805f, 0.958945f, -0.191269f, 0.220950f, 0.956346f, 0.125000f, 0.750000f,
+ -0.518555f, 0.060938f, 0.766309f, -0.522105f, 0.348172f, 0.778578f, 0.375000f, 0.500000f,
+ -0.374389f, -0.033032f, 0.879933f, -0.367565f, 0.294439f, 0.882157f, 0.250000f, 0.625000f,
+ -0.536545f, -0.033032f, 0.792894f, -0.532249f, 0.294522f, 0.793705f, 0.375000f, 0.625000f,
+ -0.677239f, -0.033032f, 0.677239f, -0.675668f, 0.294866f, 0.675668f, 0.500000f, 0.625000f,
+ -0.550415f, -0.124805f, 0.813391f, -0.543115f, 0.221529f, 0.809908f, 0.375000f, 0.750000f,
+ -0.199373f, -0.124805f, 0.958945f, -0.191269f, 0.220950f, 0.956346f, 0.125000f, 0.750000f,
+ 0.000000f, -0.213940f, 0.994385f, 0.000000f, 0.124341f, 0.992240f, 0.000000f, 0.875000f,
+ -0.202606f, -0.213940f, 0.974497f, -0.194594f, 0.124347f, 0.972970f, 0.125000f, 0.875000f,
+ -0.390296f, -0.213940f, 0.917320f, -0.381616f, 0.124647f, 0.915878f, 0.250000f, 0.875000f,
+ -0.203750f, -0.300000f, 0.980000f, -0.196116f, 0.000000f, 0.980581f, 0.125000f, 1.000000f,
+ -0.550415f, -0.124805f, 0.813391f, -0.543115f, 0.221529f, 0.809908f, 0.375000f, 0.750000f,
+ -0.390296f, -0.213940f, 0.917320f, -0.381616f, 0.124647f, 0.915878f, 0.250000f, 0.875000f,
+ -0.559341f, -0.213940f, 0.826582f, -0.552607f, 0.124685f, 0.824063f, 0.375000f, 0.875000f,
+ -0.706013f, -0.213940f, 0.706013f, -0.701575f, 0.124842f, 0.701575f, 0.500000f, 0.875000f,
+ -0.562500f, -0.300000f, 0.831250f, -0.556953f, 0.000000f, 0.830544f, 0.375000f, 1.000000f,
+ -0.850430f, 0.060938f, 0.361836f, -0.865775f, 0.346844f, 0.360740f, 0.750000f, 0.500000f,
+ -0.694746f, -0.124805f, 0.694746f, -0.689494f, 0.221799f, 0.689495f, 0.500000f, 0.750000f,
+ -0.902681f, -0.124805f, 0.384067f, -0.900333f, 0.220616f, 0.375139f, 0.750000f, 0.750000f,
+ -0.978516f, -0.124805f, -0.000000f, -0.975288f, 0.220939f, 0.000000f, 1.000000f, 0.750000f,
+ -0.922500f, -0.300000f, 0.392500f, -0.923077f, 0.000000f, 0.384615f, 0.750000f, 1.000000f,
+ -0.766309f, 0.060938f, 0.518555f, -0.778582f, 0.348157f, 0.522108f, 0.625000f, 0.500000f,
+ -0.677239f, -0.033032f, 0.677239f, -0.675668f, 0.294866f, 0.675668f, 0.500000f, 0.625000f,
+ -0.792894f, -0.033032f, 0.536545f, -0.793708f, 0.294509f, 0.532252f, 0.625000f, 0.625000f,
+ -0.879933f, -0.033032f, 0.374389f, -0.882157f, 0.294439f, 0.367565f, 0.750000f, 0.625000f,
+ -0.813391f, -0.124805f, 0.550415f, -0.809910f, 0.221518f, 0.543116f, 0.625000f, 0.750000f,
+ -0.903437f, 0.060938f, 0.187832f, -0.919548f, 0.347287f, 0.183910f, 0.875000f, 0.500000f,
+ -0.879933f, -0.033032f, 0.374389f, -0.882157f, 0.294439f, 0.367565f, 0.750000f, 0.625000f,
+ -0.934780f, -0.033032f, 0.194348f, -0.937321f, 0.293744f, 0.187464f, 0.875000f, 0.625000f,
+ -0.953857f, -0.033032f, -0.000000f, -0.955877f, 0.293768f, 0.000000f, 1.000000f, 0.625000f,
+ -0.958945f, -0.124805f, 0.199373f, -0.956352f, 0.220920f, 0.191271f, 0.875000f, 0.750000f,
+ -0.813391f, -0.124805f, 0.550415f, -0.809910f, 0.221518f, 0.543116f, 0.625000f, 0.750000f,
+ -0.706013f, -0.213940f, 0.706013f, -0.701575f, 0.124842f, 0.701575f, 0.500000f, 0.875000f,
+ -0.826582f, -0.213940f, 0.559341f, -0.824063f, 0.124679f, 0.552607f, 0.625000f, 0.875000f,
+ -0.917320f, -0.213940f, 0.390296f, -0.915878f, 0.124647f, 0.381616f, 0.750000f, 0.875000f,
+ -0.831250f, -0.300000f, 0.562500f, -0.830544f, 0.000000f, 0.556953f, 0.625000f, 1.000000f,
+ -0.958945f, -0.124805f, 0.199373f, -0.956352f, 0.220920f, 0.191271f, 0.875000f, 0.750000f,
+ -0.917320f, -0.213940f, 0.390296f, -0.915878f, 0.124647f, 0.381616f, 0.750000f, 0.875000f,
+ -0.974497f, -0.213940f, 0.202606f, -0.972972f, 0.124330f, 0.194595f, 0.875000f, 0.875000f,
+ -0.994385f, -0.213940f, -0.000000f, -0.992240f, 0.124341f, 0.000000f, 1.000000f, 0.875000f,
+ -0.980000f, -0.300000f, 0.203750f, -0.980581f, 0.000000f, 0.196116f, 0.875000f, 1.000000f,
+ -0.750000f, 0.450000f, -0.000000f, -0.902861f, 0.429934f, 0.000000f, 0.000000f, 0.000000f,
+ 0.000000f, 0.450000f, -0.750000f, 0.000000f, 0.429934f, -0.902861f, 1.000000f, 0.000000f,
+ -1.000000f, -0.300000f, -0.000000f, -1.000000f, -0.000000f, -0.000000f, 0.000000f, 1.000000f,
+ 0.000000f, -0.300000f, -1.000000f, 0.000000f, 0.000000f, -1.000000f, 1.000000f, 1.000000f,
+ -0.532500f, 0.450000f, -0.532500f, -0.639602f, 0.426401f, -0.639602f, 0.500000f, 0.000000f,
+ -0.921875f, 0.060938f, -0.000000f, -0.937749f, 0.347314f, 0.000000f, 0.000000f, 0.500000f,
+ -0.654531f, 0.060938f, -0.654531f, -0.663890f, 0.344239f, -0.663890f, 0.500000f, 0.500000f,
+ 0.000000f, 0.060938f, -0.921875f, 0.000000f, 0.347314f, -0.937749f, 1.000000f, 0.500000f,
+ -0.710000f, -0.300000f, -0.710000f, -0.707107f, -0.000000f, -0.707107f, 0.500000f, 1.000000f,
+ -0.691875f, 0.450000f, -0.294375f, -0.833528f, 0.429664f, -0.347303f, 0.250000f, 0.000000f,
+ -0.841797f, 0.253711f, -0.000000f, -0.911768f, 0.410706f, 0.000000f, 0.000000f, 0.250000f,
+ -0.776558f, 0.253711f, -0.330405f, -0.841741f, 0.410444f, -0.350725f, 0.250000f, 0.250000f,
+ -0.597676f, 0.253711f, -0.597676f, -0.644272f, 0.412102f, -0.644272f, 0.500000f, 0.250000f,
+ -0.850430f, 0.060938f, -0.361836f, -0.865695f, 0.347079f, -0.360706f, 0.250000f, 0.500000f,
+ -0.735000f, 0.450000f, -0.152812f, -0.885319f, 0.429952f, -0.177064f, 0.125000f, 0.000000f,
+ -0.796631f, 0.351636f, -0.000000f, -0.905094f, 0.425212f, 0.000000f, 0.000000f, 0.125000f,
+ -0.780698f, 0.351636f, -0.162314f, -0.887509f, 0.425230f, -0.177502f, 0.125000f, 0.125000f,
+ -0.734892f, 0.351636f, -0.312678f, -0.835093f, 0.426082f, -0.347956f, 0.250000f, 0.125000f,
+ -0.824961f, 0.253711f, -0.171516f, -0.894054f, 0.410724f, -0.178811f, 0.125000f, 0.250000f,
+ -0.623438f, 0.450000f, -0.421875f, -0.749476f, 0.430917f, -0.502590f, 0.375000f, 0.000000f,
+ -0.734892f, 0.351636f, -0.312678f, -0.835093f, 0.426082f, -0.347956f, 0.250000f, 0.125000f,
+ -0.662199f, 0.351636f, -0.448105f, -0.751338f, 0.426189f, -0.503839f, 0.375000f, 0.125000f,
+ -0.565608f, 0.351636f, -0.565608f, -0.639524f, 0.426636f, -0.639524f, 0.500000f, 0.125000f,
+ -0.699744f, 0.253711f, -0.473511f, -0.756904f, 0.411664f, -0.507571f, 0.375000f, 0.250000f,
+ -0.824961f, 0.253711f, -0.171516f, -0.894054f, 0.410724f, -0.178811f, 0.125000f, 0.250000f,
+ -0.884033f, 0.156665f, -0.000000f, -0.922766f, 0.385361f, 0.000000f, 0.000000f, 0.375000f,
+ -0.866353f, 0.156665f, -0.180122f, -0.904839f, 0.385379f, -0.180968f, 0.125000f, 0.375000f,
+ -0.815521f, 0.156665f, -0.346983f, -0.851467f, 0.386182f, -0.354778f, 0.250000f, 0.375000f,
+ -0.903437f, 0.060938f, -0.187832f, -0.919533f, 0.347330f, -0.183906f, 0.125000f, 0.500000f,
+ -0.699744f, 0.253711f, -0.473511f, -0.756904f, 0.411665f, -0.507571f, 0.375000f, 0.250000f,
+ -0.815521f, 0.156665f, -0.346983f, -0.851467f, 0.386182f, -0.354778f, 0.250000f, 0.375000f,
+ -0.734853f, 0.156665f, -0.497269f, -0.766078f, 0.386283f, -0.513723f, 0.375000f, 0.375000f,
+ -0.627664f, 0.156665f, -0.627664f, -0.652097f, 0.386703f, -0.652097f, 0.500000f, 0.375000f,
+ -0.766309f, 0.060938f, -0.518555f, -0.778577f, 0.348172f, -0.522105f, 0.375000f, 0.500000f,
+ -0.294375f, 0.450000f, -0.691875f, -0.347353f, 0.429394f, -0.833647f, 0.750000f, 0.000000f,
+ -0.597676f, 0.253711f, -0.597676f, -0.644272f, 0.412102f, -0.644272f, 0.500000f, 0.250000f,
+ -0.330405f, 0.253711f, -0.776558f, -0.350771f, 0.410181f, -0.841850f, 0.750000f, 0.250000f,
+ 0.000000f, 0.253711f, -0.841797f, 0.000000f, 0.410706f, -0.911768f, 1.000000f, 0.250000f,
+ -0.361836f, 0.060938f, -0.850430f, -0.360739f, 0.346844f, -0.865775f, 0.750000f, 0.500000f,
+ -0.421875f, 0.450000f, -0.623438f, -0.502594f, 0.430900f, -0.749483f, 0.625000f, 0.000000f,
+ -0.565608f, 0.351636f, -0.565608f, -0.639524f, 0.426636f, -0.639524f, 0.500000f, 0.125000f,
+ -0.448105f, 0.351636f, -0.662199f, -0.503843f, 0.426172f, -0.751345f, 0.625000f, 0.125000f,
+ -0.312678f, 0.351636f, -0.734892f, -0.347956f, 0.426082f, -0.835093f, 0.750000f, 0.125000f,
+ -0.473511f, 0.253711f, -0.699744f, -0.507575f, 0.411648f, -0.756911f, 0.625000f, 0.250000f,
+ -0.152812f, 0.450000f, -0.735000f, -0.177068f, 0.429903f, -0.885342f, 0.875000f, 0.000000f,
+ -0.312678f, 0.351636f, -0.734892f, -0.347956f, 0.426082f, -0.835093f, 0.750000f, 0.125000f,
+ -0.162314f, 0.351636f, -0.780698f, -0.177506f, 0.425181f, -0.887532f, 0.875000f, 0.125000f,
+ 0.000000f, 0.351636f, -0.796631f, 0.000000f, 0.425212f, -0.905094f, 1.000000f, 0.125000f,
+ -0.171516f, 0.253711f, -0.824961f, -0.178815f, 0.410676f, -0.894075f, 0.875000f, 0.250000f,
+ -0.473511f, 0.253711f, -0.699744f, -0.507575f, 0.411648f, -0.756910f, 0.625000f, 0.250000f,
+ -0.627664f, 0.156665f, -0.627664f, -0.652097f, 0.386703f, -0.652097f, 0.500000f, 0.375000f,
+ -0.497269f, 0.156665f, -0.734853f, -0.513726f, 0.386267f, -0.766083f, 0.625000f, 0.375000f,
+ -0.346983f, 0.156665f, -0.815521f, -0.354778f, 0.386182f, -0.851467f, 0.750000f, 0.375000f,
+ -0.518555f, 0.060938f, -0.766309f, -0.522108f, 0.348157f, -0.778582f, 0.625000f, 0.500000f,
+ -0.171516f, 0.253711f, -0.824961f, -0.178815f, 0.410676f, -0.894075f, 0.875000f, 0.250000f,
+ -0.346983f, 0.156665f, -0.815521f, -0.354778f, 0.386182f, -0.851467f, 0.750000f, 0.375000f,
+ -0.180122f, 0.156665f, -0.866353f, -0.180972f, 0.385333f, -0.904858f, 0.875000f, 0.375000f,
+ 0.000000f, 0.156665f, -0.884033f, 0.000000f, 0.385361f, -0.922766f, 1.000000f, 0.375000f,
+ -0.187832f, 0.060938f, -0.903437f, -0.183909f, 0.347288f, -0.919548f, 0.875000f, 0.500000f,
+ -0.850430f, 0.060938f, -0.361836f, -0.865695f, 0.347079f, -0.360706f, 0.250000f, 0.500000f,
+ -0.978516f, -0.124805f, -0.000000f, -0.975288f, 0.220939f, 0.000000f, 0.000000f, 0.750000f,
+ -0.902681f, -0.124805f, -0.384067f, -0.900299f, 0.220777f, -0.375125f, 0.250000f, 0.750000f,
+ -0.694746f, -0.124805f, -0.694746f, -0.689494f, 0.221799f, -0.689495f, 0.500000f, 0.750000f,
+ -0.922500f, -0.300000f, -0.392500f, -0.923077f, -0.000000f, -0.384615f, 0.250000f, 1.000000f,
+ -0.903437f, 0.060938f, -0.187832f, -0.919533f, 0.347330f, -0.183906f, 0.125000f, 0.500000f,
+ -0.953857f, -0.033032f, -0.000000f, -0.955877f, 0.293768f, 0.000000f, 0.000000f, 0.625000f,
+ -0.934780f, -0.033032f, -0.194348f, -0.937310f, 0.293782f, -0.187462f, 0.125000f, 0.625000f,
+ -0.879933f, -0.033032f, -0.374389f, -0.882157f, 0.294439f, -0.367565f, 0.250000f, 0.625000f,
+ -0.958945f, -0.124805f, -0.199373f, -0.956346f, 0.220950f, -0.191269f, 0.125000f, 0.750000f,
+ -0.766309f, 0.060938f, -0.518555f, -0.778578f, 0.348172f, -0.522105f, 0.375000f, 0.500000f,
+ -0.879933f, -0.033032f, -0.374389f, -0.882157f, 0.294439f, -0.367565f, 0.250000f, 0.625000f,
+ -0.792894f, -0.033032f, -0.536545f, -0.793705f, 0.294522f, -0.532249f, 0.375000f, 0.625000f,
+ -0.677239f, -0.033032f, -0.677239f, -0.675668f, 0.294866f, -0.675668f, 0.500000f, 0.625000f,
+ -0.813391f, -0.124805f, -0.550415f, -0.809908f, 0.221529f, -0.543115f, 0.375000f, 0.750000f,
+ -0.958945f, -0.124805f, -0.199373f, -0.956346f, 0.220950f, -0.191269f, 0.125000f, 0.750000f,
+ -0.994385f, -0.213940f, -0.000000f, -0.992240f, 0.124341f, 0.000000f, 0.000000f, 0.875000f,
+ -0.974497f, -0.213940f, -0.202606f, -0.972970f, 0.124347f, -0.194594f, 0.125000f, 0.875000f,
+ -0.917320f, -0.213940f, -0.390296f, -0.915878f, 0.124647f, -0.381616f, 0.250000f, 0.875000f,
+ -0.980000f, -0.300000f, -0.203750f, -0.980581f, -0.000000f, -0.196116f, 0.125000f, 1.000000f,
+ -0.813391f, -0.124805f, -0.550415f, -0.809908f, 0.221529f, -0.543115f, 0.375000f, 0.750000f,
+ -0.917320f, -0.213940f, -0.390296f, -0.915878f, 0.124647f, -0.381616f, 0.250000f, 0.875000f,
+ -0.826582f, -0.213940f, -0.559341f, -0.824063f, 0.124685f, -0.552607f, 0.375000f, 0.875000f,
+ -0.706013f, -0.213940f, -0.706013f, -0.701575f, 0.124842f, -0.701575f, 0.500000f, 0.875000f,
+ -0.831250f, -0.300000f, -0.562500f, -0.830544f, -0.000000f, -0.556953f, 0.375000f, 1.000000f,
+ -0.361836f, 0.060938f, -0.850430f, -0.360740f, 0.346844f, -0.865775f, 0.750000f, 0.500000f,
+ -0.694746f, -0.124805f, -0.694746f, -0.689495f, 0.221799f, -0.689494f, 0.500000f, 0.750000f,
+ -0.384067f, -0.124805f, -0.902681f, -0.375139f, 0.220616f, -0.900333f, 0.750000f, 0.750000f,
+ 0.000000f, -0.124805f, -0.978516f, 0.000000f, 0.220939f, -0.975288f, 1.000000f, 0.750000f,
+ -0.392500f, -0.300000f, -0.922500f, -0.384615f, -0.000000f, -0.923077f, 0.750000f, 1.000000f,
+ -0.518555f, 0.060938f, -0.766309f, -0.522108f, 0.348157f, -0.778582f, 0.625000f, 0.500000f,
+ -0.677239f, -0.033032f, -0.677239f, -0.675668f, 0.294866f, -0.675668f, 0.500000f, 0.625000f,
+ -0.536545f, -0.033032f, -0.792894f, -0.532252f, 0.294509f, -0.793708f, 0.625000f, 0.625000f,
+ -0.374389f, -0.033032f, -0.879933f, -0.367565f, 0.294439f, -0.882157f, 0.750000f, 0.625000f,
+ -0.550415f, -0.124805f, -0.813391f, -0.543116f, 0.221518f, -0.809910f, 0.625000f, 0.750000f,
+ -0.187832f, 0.060938f, -0.903437f, -0.183910f, 0.347287f, -0.919548f, 0.875000f, 0.500000f,
+ -0.374389f, -0.033032f, -0.879933f, -0.367565f, 0.294439f, -0.882157f, 0.750000f, 0.625000f,
+ -0.194348f, -0.033032f, -0.934780f, -0.187464f, 0.293744f, -0.937321f, 0.875000f, 0.625000f,
+ 0.000000f, -0.033032f, -0.953857f, 0.000000f, 0.293768f, -0.955877f, 1.000000f, 0.625000f,
+ -0.199373f, -0.124805f, -0.958945f, -0.191271f, 0.220920f, -0.956352f, 0.875000f, 0.750000f,
+ -0.550415f, -0.124805f, -0.813391f, -0.543116f, 0.221518f, -0.809910f, 0.625000f, 0.750000f,
+ -0.706013f, -0.213940f, -0.706013f, -0.701575f, 0.124842f, -0.701575f, 0.500000f, 0.875000f,
+ -0.559341f, -0.213940f, -0.826582f, -0.552607f, 0.124679f, -0.824063f, 0.625000f, 0.875000f,
+ -0.390296f, -0.213940f, -0.917320f, -0.381616f, 0.124647f, -0.915878f, 0.750000f, 0.875000f,
+ -0.562500f, -0.300000f, -0.831250f, -0.556953f, -0.000000f, -0.830544f, 0.625000f, 1.000000f,
+ -0.199373f, -0.124805f, -0.958945f, -0.191271f, 0.220920f, -0.956352f, 0.875000f, 0.750000f,
+ -0.390296f, -0.213940f, -0.917320f, -0.381616f, 0.124647f, -0.915878f, 0.750000f, 0.875000f,
+ -0.202606f, -0.213940f, -0.974497f, -0.194595f, 0.124330f, -0.972972f, 0.875000f, 0.875000f,
+ 0.000000f, -0.213940f, -0.994385f, 0.000000f, 0.124341f, -0.992240f, 1.000000f, 0.875000f,
+ -0.203750f, -0.300000f, -0.980000f, -0.196116f, -0.000000f, -0.980581f, 0.875000f, 1.000000f,
+ 0.000000f, 0.450000f, -0.750000f, 0.000000f, 0.429934f, -0.902861f, 0.000000f, 0.000000f,
+ 0.750000f, 0.450000f, -0.000000f, 0.902861f, 0.429934f, -0.000000f, 1.000000f, 0.000000f,
+ 0.000000f, -0.300000f, -1.000000f, 0.000000f, 0.000000f, -1.000000f, 0.000000f, 1.000000f,
+ 1.000000f, -0.300000f, -0.000000f, 1.000000f, 0.000000f, -0.000000f, 1.000000f, 1.000000f,
+ 0.532500f, 0.450000f, -0.532500f, 0.639602f, 0.426401f, -0.639602f, 0.500000f, 0.000000f,
+ 0.000000f, 0.060938f, -0.921875f, 0.000000f, 0.347314f, -0.937749f, 0.000000f, 0.500000f,
+ 0.654531f, 0.060938f, -0.654531f, 0.663890f, 0.344239f, -0.663890f, 0.500000f, 0.500000f,
+ 0.921875f, 0.060938f, -0.000000f, 0.937749f, 0.347314f, -0.000000f, 1.000000f, 0.500000f,
+ 0.710000f, -0.300000f, -0.710000f, 0.707107f, 0.000000f, -0.707107f, 0.500000f, 1.000000f,
+ 0.294375f, 0.450000f, -0.691875f, 0.347303f, 0.429664f, -0.833528f, 0.250000f, 0.000000f,
+ 0.000000f, 0.253711f, -0.841797f, 0.000000f, 0.410706f, -0.911768f, 0.000000f, 0.250000f,
+ 0.330405f, 0.253711f, -0.776558f, 0.350725f, 0.410444f, -0.841741f, 0.250000f, 0.250000f,
+ 0.597676f, 0.253711f, -0.597676f, 0.644272f, 0.412102f, -0.644272f, 0.500000f, 0.250000f,
+ 0.361836f, 0.060938f, -0.850430f, 0.360706f, 0.347079f, -0.865695f, 0.250000f, 0.500000f,
+ 0.152812f, 0.450000f, -0.735000f, 0.177064f, 0.429952f, -0.885319f, 0.125000f, 0.000000f,
+ 0.000000f, 0.351636f, -0.796631f, 0.000000f, 0.425212f, -0.905094f, 0.000000f, 0.125000f,
+ 0.162314f, 0.351636f, -0.780698f, 0.177502f, 0.425230f, -0.887509f, 0.125000f, 0.125000f,
+ 0.312678f, 0.351636f, -0.734892f, 0.347956f, 0.426082f, -0.835093f, 0.250000f, 0.125000f,
+ 0.171516f, 0.253711f, -0.824961f, 0.178811f, 0.410724f, -0.894054f, 0.125000f, 0.250000f,
+ 0.421875f, 0.450000f, -0.623438f, 0.502590f, 0.430917f, -0.749476f, 0.375000f, 0.000000f,
+ 0.312678f, 0.351636f, -0.734892f, 0.347956f, 0.426082f, -0.835093f, 0.250000f, 0.125000f,
+ 0.448105f, 0.351636f, -0.662199f, 0.503839f, 0.426189f, -0.751338f, 0.375000f, 0.125000f,
+ 0.565608f, 0.351636f, -0.565608f, 0.639524f, 0.426636f, -0.639524f, 0.500000f, 0.125000f,
+ 0.473511f, 0.253711f, -0.699744f, 0.507571f, 0.411664f, -0.756904f, 0.375000f, 0.250000f,
+ 0.171516f, 0.253711f, -0.824961f, 0.178811f, 0.410724f, -0.894054f, 0.125000f, 0.250000f,
+ 0.000000f, 0.156665f, -0.884033f, 0.000000f, 0.385361f, -0.922766f, 0.000000f, 0.375000f,
+ 0.180122f, 0.156665f, -0.866353f, 0.180968f, 0.385379f, -0.904839f, 0.125000f, 0.375000f,
+ 0.346983f, 0.156665f, -0.815521f, 0.354778f, 0.386182f, -0.851467f, 0.250000f, 0.375000f,
+ 0.187832f, 0.060938f, -0.903437f, 0.183906f, 0.347330f, -0.919533f, 0.125000f, 0.500000f,
+ 0.473511f, 0.253711f, -0.699744f, 0.507571f, 0.411665f, -0.756904f, 0.375000f, 0.250000f,
+ 0.346983f, 0.156665f, -0.815521f, 0.354778f, 0.386182f, -0.851467f, 0.250000f, 0.375000f,
+ 0.497269f, 0.156665f, -0.734853f, 0.513723f, 0.386283f, -0.766078f, 0.375000f, 0.375000f,
+ 0.627664f, 0.156665f, -0.627664f, 0.652097f, 0.386703f, -0.652097f, 0.500000f, 0.375000f,
+ 0.518555f, 0.060938f, -0.766309f, 0.522105f, 0.348172f, -0.778577f, 0.375000f, 0.500000f,
+ 0.691875f, 0.450000f, -0.294375f, 0.833647f, 0.429394f, -0.347353f, 0.750000f, 0.000000f,
+ 0.597676f, 0.253711f, -0.597676f, 0.644272f, 0.412102f, -0.644272f, 0.500000f, 0.250000f,
+ 0.776558f, 0.253711f, -0.330405f, 0.841850f, 0.410181f, -0.350771f, 0.750000f, 0.250000f,
+ 0.841797f, 0.253711f, -0.000000f, 0.911768f, 0.410706f, -0.000000f, 1.000000f, 0.250000f,
+ 0.850430f, 0.060938f, -0.361836f, 0.865775f, 0.346844f, -0.360739f, 0.750000f, 0.500000f,
+ 0.623438f, 0.450000f, -0.421875f, 0.749483f, 0.430900f, -0.502594f, 0.625000f, 0.000000f,
+ 0.565608f, 0.351636f, -0.565608f, 0.639524f, 0.426636f, -0.639524f, 0.500000f, 0.125000f,
+ 0.662199f, 0.351636f, -0.448105f, 0.751345f, 0.426172f, -0.503843f, 0.625000f, 0.125000f,
+ 0.734892f, 0.351636f, -0.312678f, 0.835093f, 0.426082f, -0.347956f, 0.750000f, 0.125000f,
+ 0.699744f, 0.253711f, -0.473511f, 0.756911f, 0.411648f, -0.507575f, 0.625000f, 0.250000f,
+ 0.735000f, 0.450000f, -0.152812f, 0.885342f, 0.429903f, -0.177068f, 0.875000f, 0.000000f,
+ 0.734892f, 0.351636f, -0.312678f, 0.835093f, 0.426082f, -0.347956f, 0.750000f, 0.125000f,
+ 0.780698f, 0.351636f, -0.162314f, 0.887532f, 0.425181f, -0.177506f, 0.875000f, 0.125000f,
+ 0.796631f, 0.351636f, -0.000000f, 0.905094f, 0.425212f, -0.000000f, 1.000000f, 0.125000f,
+ 0.824961f, 0.253711f, -0.171516f, 0.894075f, 0.410676f, -0.178815f, 0.875000f, 0.250000f,
+ 0.699744f, 0.253711f, -0.473511f, 0.756910f, 0.411648f, -0.507575f, 0.625000f, 0.250000f,
+ 0.627664f, 0.156665f, -0.627664f, 0.652097f, 0.386703f, -0.652097f, 0.500000f, 0.375000f,
+ 0.734853f, 0.156665f, -0.497269f, 0.766083f, 0.386267f, -0.513726f, 0.625000f, 0.375000f,
+ 0.815521f, 0.156665f, -0.346983f, 0.851467f, 0.386182f, -0.354778f, 0.750000f, 0.375000f,
+ 0.766309f, 0.060938f, -0.518555f, 0.778582f, 0.348157f, -0.522108f, 0.625000f, 0.500000f,
+ 0.824961f, 0.253711f, -0.171516f, 0.894075f, 0.410676f, -0.178815f, 0.875000f, 0.250000f,
+ 0.815521f, 0.156665f, -0.346983f, 0.851467f, 0.386182f, -0.354778f, 0.750000f, 0.375000f,
+ 0.866353f, 0.156665f, -0.180122f, 0.904858f, 0.385333f, -0.180972f, 0.875000f, 0.375000f,
+ 0.884033f, 0.156665f, -0.000000f, 0.922766f, 0.385361f, -0.000000f, 1.000000f, 0.375000f,
+ 0.903437f, 0.060938f, -0.187832f, 0.919548f, 0.347288f, -0.183909f, 0.875000f, 0.500000f,
+ 0.361836f, 0.060938f, -0.850430f, 0.360706f, 0.347079f, -0.865695f, 0.250000f, 0.500000f,
+ 0.000000f, -0.124805f, -0.978516f, 0.000000f, 0.220939f, -0.975288f, 0.000000f, 0.750000f,
+ 0.384067f, -0.124805f, -0.902681f, 0.375125f, 0.220777f, -0.900299f, 0.250000f, 0.750000f,
+ 0.694746f, -0.124805f, -0.694746f, 0.689495f, 0.221799f, -0.689494f, 0.500000f, 0.750000f,
+ 0.392500f, -0.300000f, -0.922500f, 0.384615f, 0.000000f, -0.923077f, 0.250000f, 1.000000f,
+ 0.187832f, 0.060938f, -0.903437f, 0.183906f, 0.347330f, -0.919533f, 0.125000f, 0.500000f,
+ 0.000000f, -0.033032f, -0.953857f, 0.000000f, 0.293768f, -0.955877f, 0.000000f, 0.625000f,
+ 0.194348f, -0.033032f, -0.934780f, 0.187462f, 0.293782f, -0.937310f, 0.125000f, 0.625000f,
+ 0.374389f, -0.033032f, -0.879933f, 0.367565f, 0.294439f, -0.882157f, 0.250000f, 0.625000f,
+ 0.199373f, -0.124805f, -0.958945f, 0.191269f, 0.220950f, -0.956346f, 0.125000f, 0.750000f,
+ 0.518555f, 0.060938f, -0.766309f, 0.522105f, 0.348172f, -0.778578f, 0.375000f, 0.500000f,
+ 0.374389f, -0.033032f, -0.879933f, 0.367565f, 0.294439f, -0.882157f, 0.250000f, 0.625000f,
+ 0.536545f, -0.033032f, -0.792894f, 0.532249f, 0.294522f, -0.793705f, 0.375000f, 0.625000f,
+ 0.677239f, -0.033032f, -0.677239f, 0.675668f, 0.294866f, -0.675668f, 0.500000f, 0.625000f,
+ 0.550415f, -0.124805f, -0.813391f, 0.543115f, 0.221529f, -0.809908f, 0.375000f, 0.750000f,
+ 0.199373f, -0.124805f, -0.958945f, 0.191269f, 0.220950f, -0.956346f, 0.125000f, 0.750000f,
+ 0.000000f, -0.213940f, -0.994385f, 0.000000f, 0.124341f, -0.992240f, 0.000000f, 0.875000f,
+ 0.202606f, -0.213940f, -0.974497f, 0.194594f, 0.124347f, -0.972970f, 0.125000f, 0.875000f,
+ 0.390296f, -0.213940f, -0.917320f, 0.381616f, 0.124647f, -0.915878f, 0.250000f, 0.875000f,
+ 0.203750f, -0.300000f, -0.980000f, 0.196116f, 0.000000f, -0.980581f, 0.125000f, 1.000000f,
+ 0.550415f, -0.124805f, -0.813391f, 0.543115f, 0.221529f, -0.809908f, 0.375000f, 0.750000f,
+ 0.390296f, -0.213940f, -0.917320f, 0.381616f, 0.124647f, -0.915878f, 0.250000f, 0.875000f,
+ 0.559341f, -0.213940f, -0.826582f, 0.552607f, 0.124685f, -0.824063f, 0.375000f, 0.875000f,
+ 0.706013f, -0.213940f, -0.706013f, 0.701575f, 0.124842f, -0.701575f, 0.500000f, 0.875000f,
+ 0.562500f, -0.300000f, -0.831250f, 0.556953f, 0.000000f, -0.830544f, 0.375000f, 1.000000f,
+ 0.850430f, 0.060938f, -0.361836f, 0.865775f, 0.346844f, -0.360740f, 0.750000f, 0.500000f,
+ 0.694746f, -0.124805f, -0.694746f, 0.689494f, 0.221799f, -0.689495f, 0.500000f, 0.750000f,
+ 0.902681f, -0.124805f, -0.384067f, 0.900333f, 0.220616f, -0.375139f, 0.750000f, 0.750000f,
+ 0.978516f, -0.124805f, -0.000000f, 0.975288f, 0.220939f, -0.000000f, 1.000000f, 0.750000f,
+ 0.922500f, -0.300000f, -0.392500f, 0.923077f, 0.000000f, -0.384615f, 0.750000f, 1.000000f,
+ 0.766309f, 0.060938f, -0.518555f, 0.778582f, 0.348157f, -0.522108f, 0.625000f, 0.500000f,
+ 0.677239f, -0.033032f, -0.677239f, 0.675668f, 0.294866f, -0.675668f, 0.500000f, 0.625000f,
+ 0.792894f, -0.033032f, -0.536545f, 0.793708f, 0.294509f, -0.532252f, 0.625000f, 0.625000f,
+ 0.879933f, -0.033032f, -0.374389f, 0.882157f, 0.294439f, -0.367565f, 0.750000f, 0.625000f,
+ 0.813391f, -0.124805f, -0.550415f, 0.809910f, 0.221518f, -0.543116f, 0.625000f, 0.750000f,
+ 0.903437f, 0.060938f, -0.187832f, 0.919548f, 0.347287f, -0.183910f, 0.875000f, 0.500000f,
+ 0.879933f, -0.033032f, -0.374389f, 0.882157f, 0.294439f, -0.367565f, 0.750000f, 0.625000f,
+ 0.934780f, -0.033032f, -0.194348f, 0.937321f, 0.293744f, -0.187464f, 0.875000f, 0.625000f,
+ 0.953857f, -0.033032f, -0.000000f, 0.955877f, 0.293768f, -0.000000f, 1.000000f, 0.625000f,
+ 0.958945f, -0.124805f, -0.199373f, 0.956352f, 0.220920f, -0.191271f, 0.875000f, 0.750000f,
+ 0.813391f, -0.124805f, -0.550415f, 0.809910f, 0.221518f, -0.543116f, 0.625000f, 0.750000f,
+ 0.706013f, -0.213940f, -0.706013f, 0.701575f, 0.124842f, -0.701575f, 0.500000f, 0.875000f,
+ 0.826582f, -0.213940f, -0.559341f, 0.824063f, 0.124679f, -0.552607f, 0.625000f, 0.875000f,
+ 0.917320f, -0.213940f, -0.390296f, 0.915878f, 0.124647f, -0.381616f, 0.750000f, 0.875000f,
+ 0.831250f, -0.300000f, -0.562500f, 0.830544f, 0.000000f, -0.556953f, 0.625000f, 1.000000f,
+ 0.958945f, -0.124805f, -0.199373f, 0.956352f, 0.220920f, -0.191271f, 0.875000f, 0.750000f,
+ 0.917320f, -0.213940f, -0.390296f, 0.915878f, 0.124647f, -0.381616f, 0.750000f, 0.875000f,
+ 0.974497f, -0.213940f, -0.202606f, 0.972972f, 0.124330f, -0.194595f, 0.875000f, 0.875000f,
+ 0.994385f, -0.213940f, -0.000000f, 0.992240f, 0.124341f, -0.000000f, 1.000000f, 0.875000f,
+ 0.980000f, -0.300000f, -0.203750f, 0.980581f, 0.000000f, -0.196116f, 0.875000f, 1.000000f,
+ 1.000000f, -0.300000f, -0.000000f, 1.000000f, 0.000000f, -0.000000f, 0.000000f, 0.000000f,
+ 0.000000f, -0.300000f, 1.000000f, 0.000000f, 0.000000f, 1.000000f, 1.000000f, 0.000000f,
+ 0.750000f, -0.675000f, -0.000000f, 1.000000f, 0.000000f, -0.000000f, 0.000000f, 1.000000f,
+ 0.000000f, -0.675000f, 0.750000f, 0.000000f, 0.000000f, 1.000000f, 1.000000f, 1.000000f,
+ 0.710000f, -0.300000f, 0.710000f, 0.707107f, 0.000000f, 0.707107f, 0.500000f, 0.000000f,
+ 0.875000f, -0.557812f, -0.000000f, 0.698100f, -0.716000f, 0.000000f, 0.000000f, 0.500000f,
+ 0.621250f, -0.557812f, 0.621250f, 0.496182f, -0.712466f, 0.496182f, 0.500000f, 0.500000f,
+ 0.000000f, -0.557812f, 0.875000f, 0.000000f, -0.716000f, 0.698100f, 1.000000f, 0.500000f,
+ 0.532500f, -0.675000f, 0.532500f, 0.707107f, 0.000000f, 0.707107f, 0.500000f, 1.000000f,
+ 0.922500f, -0.300000f, 0.392500f, 0.923077f, 0.000000f, 0.384615f, 0.250000f, 0.000000f,
+ 0.960938f, -0.448242f, -0.000000f, 0.876976f, -0.480535f, 0.000000f, 0.000000f, 0.250000f,
+ 0.886465f, -0.448242f, 0.377168f, 0.809660f, -0.480250f, 0.337358f, 0.250000f, 0.250000f,
+ 0.682266f, -0.448242f, 0.682266f, 0.619529f, -0.482045f, 0.619529f, 0.500000f, 0.250000f,
+ 0.807187f, -0.557812f, 0.343437f, 0.644654f, -0.715732f, 0.268606f, 0.250000f, 0.500000f,
+ 0.980000f, -0.300000f, 0.203750f, 0.980581f, 0.000000f, 0.196116f, 0.125000f, 0.000000f,
+ 0.989258f, -0.379175f, -0.000000f, 0.963722f, -0.266906f, 0.000000f, 0.000000f, 0.125000f,
+ 0.969473f, -0.379175f, 0.201561f, 0.945004f, -0.266919f, 0.189001f, 0.125000f, 0.125000f,
+ 0.912590f, -0.379175f, 0.388284f, 0.889432f, -0.267526f, 0.370596f, 0.250000f, 0.125000f,
+ 0.941719f, -0.448242f, 0.195791f, 0.859935f, -0.480554f, 0.171987f, 0.125000f, 0.250000f,
+ 0.831250f, -0.300000f, 0.562500f, 0.830544f, 0.000000f, 0.556953f, 0.375000f, 0.000000f,
+ 0.912590f, -0.379175f, 0.388284f, 0.889431f, -0.267526f, 0.370597f, 0.250000f, 0.125000f,
+ 0.822320f, -0.379175f, 0.556458f, 0.800254f, -0.267602f, 0.536641f, 0.375000f, 0.125000f,
+ 0.702373f, -0.379175f, 0.702373f, 0.681256f, -0.267921f, 0.681256f, 0.500000f, 0.125000f,
+ 0.798779f, -0.448242f, 0.540527f, 0.727894f, -0.481571f, 0.488118f, 0.375000f, 0.250000f,
+ 0.941719f, -0.448242f, 0.195791f, 0.859935f, -0.480554f, 0.171987f, 0.125000f, 0.250000f,
+ 0.920898f, -0.507642f, -0.000000f, 0.779645f, -0.626221f, 0.000000f, 0.000000f, 0.375000f,
+ 0.902480f, -0.507642f, 0.187633f, 0.764489f, -0.626241f, 0.152898f, 0.125000f, 0.375000f,
+ 0.849529f, -0.507642f, 0.361453f, 0.718967f, -0.627172f, 0.299570f, 0.250000f, 0.375000f,
+ 0.857500f, -0.557812f, 0.178281f, 0.684525f, -0.716019f, 0.136905f, 0.125000f, 0.500000f,
+ 0.798779f, -0.448242f, 0.540527f, 0.727894f, -0.481572f, 0.488118f, 0.375000f, 0.250000f,
+ 0.849529f, -0.507642f, 0.361453f, 0.718967f, -0.627172f, 0.299570f, 0.250000f, 0.375000f,
+ 0.765497f, -0.507642f, 0.518005f, 0.646817f, -0.627288f, 0.433748f, 0.375000f, 0.375000f,
+ 0.653838f, -0.507642f, 0.653838f, 0.550409f, -0.627775f, 0.550409f, 0.500000f, 0.375000f,
+ 0.727344f, -0.557812f, 0.492188f, 0.578969f, -0.716978f, 0.388249f, 0.375000f, 0.500000f,
+ 0.392500f, -0.300000f, 0.922500f, 0.384615f, 0.000000f, 0.923077f, 0.750000f, 0.000000f,
+ 0.682266f, -0.448242f, 0.682266f, 0.619529f, -0.482045f, 0.619529f, 0.500000f, 0.250000f,
+ 0.377168f, -0.448242f, 0.886465f, 0.337418f, -0.479966f, 0.809804f, 0.750000f, 0.250000f,
+ 0.000000f, -0.448242f, 0.960938f, 0.000000f, -0.480535f, 0.876976f, 1.000000f, 0.250000f,
+ 0.343437f, -0.557812f, 0.807187f, 0.268712f, -0.715463f, 0.644908f, 0.750000f, 0.500000f,
+ 0.562500f, -0.300000f, 0.831250f, 0.556953f, 0.000000f, 0.830544f, 0.625000f, 0.000000f,
+ 0.702373f, -0.379175f, 0.702373f, 0.681256f, -0.267921f, 0.681256f, 0.500000f, 0.125000f,
+ 0.556458f, -0.379175f, 0.822320f, 0.536643f, -0.267590f, 0.800256f, 0.625000f, 0.125000f,
+ 0.388284f, -0.379175f, 0.912590f, 0.370597f, -0.267526f, 0.889431f, 0.750000f, 0.125000f,
+ 0.540527f, -0.448242f, 0.798779f, 0.488123f, -0.481553f, 0.727903f, 0.625000f, 0.250000f,
+ 0.203750f, -0.300000f, 0.980000f, 0.196116f, 0.000000f, 0.980581f, 0.875000f, 0.000000f,
+ 0.388284f, -0.379175f, 0.912590f, 0.370596f, -0.267526f, 0.889432f, 0.750000f, 0.125000f,
+ 0.201561f, -0.379175f, 0.969473f, 0.189003f, -0.266885f, 0.945014f, 0.875000f, 0.125000f,
+ 0.000000f, -0.379175f, 0.989258f, 0.000000f, -0.266906f, 0.963722f, 1.000000f, 0.125000f,
+ 0.195791f, -0.448242f, 0.941719f, 0.171993f, -0.480502f, 0.859963f, 0.875000f, 0.250000f,
+ 0.540527f, -0.448242f, 0.798779f, 0.488123f, -0.481553f, 0.727903f, 0.625000f, 0.250000f,
+ 0.653838f, -0.507642f, 0.653838f, 0.550409f, -0.627775f, 0.550409f, 0.500000f, 0.375000f,
+ 0.518005f, -0.507642f, 0.765497f, 0.433756f, -0.627270f, 0.646829f, 0.625000f, 0.375000f,
+ 0.361453f, -0.507642f, 0.849529f, 0.299570f, -0.627172f, 0.718967f, 0.750000f, 0.375000f,
+ 0.492188f, -0.557812f, 0.727344f, 0.388259f, -0.716961f, 0.578983f, 0.625000f, 0.500000f,
+ 0.195791f, -0.448242f, 0.941719f, 0.171993f, -0.480502f, 0.859963f, 0.875000f, 0.250000f,
+ 0.361453f, -0.507642f, 0.849529f, 0.299570f, -0.627172f, 0.718967f, 0.750000f, 0.375000f,
+ 0.187633f, -0.507642f, 0.902480f, 0.152906f, -0.626188f, 0.764532f, 0.875000f, 0.375000f,
+ 0.000000f, -0.507642f, 0.920898f, 0.000000f, -0.626221f, 0.779645f, 1.000000f, 0.375000f,
+ 0.178281f, -0.557812f, 0.857500f, 0.136915f, -0.715970f, 0.684574f, 0.875000f, 0.500000f,
+ 0.807187f, -0.557812f, 0.343437f, 0.644654f, -0.715731f, 0.268606f, 0.250000f, 0.500000f,
+ 0.789062f, -0.632227f, -0.000000f, 0.636383f, -0.771373f, 0.000000f, 0.000000f, 0.750000f,
+ 0.727910f, -0.632227f, 0.309707f, 0.587700f, -0.771133f, 0.244875f, 0.250000f, 0.750000f,
+ 0.560234f, -0.632227f, 0.560234f, 0.448897f, -0.772647f, 0.448897f, 0.500000f, 0.750000f,
+ 0.691875f, -0.675000f, 0.294375f, 0.923077f, 0.000000f, 0.384615f, 0.250000f, 1.000000f,
+ 0.857500f, -0.557812f, 0.178281f, 0.684525f, -0.716018f, 0.136905f, 0.125000f, 0.500000f,
+ 0.829102f, -0.599194f, -0.000000f, 0.645429f, -0.763821f, 0.000000f, 0.000000f, 0.625000f,
+ 0.812519f, -0.599194f, 0.168929f, 0.632876f, -0.763837f, 0.126575f, 0.125000f, 0.625000f,
+ 0.764846f, -0.599194f, 0.325422f, 0.594912f, -0.764614f, 0.247880f, 0.250000f, 0.625000f,
+ 0.773281f, -0.632227f, 0.160771f, 0.624005f, -0.771390f, 0.124801f, 0.125000f, 0.750000f,
+ 0.727344f, -0.557812f, 0.492188f, 0.578969f, -0.716978f, 0.388249f, 0.375000f, 0.500000f,
+ 0.764846f, -0.599194f, 0.325422f, 0.594912f, -0.764614f, 0.247880f, 0.250000f, 0.625000f,
+ 0.689191f, -0.599194f, 0.466370f, 0.535179f, -0.764712f, 0.358885f, 0.375000f, 0.625000f,
+ 0.588662f, -0.599194f, 0.588662f, 0.455299f, -0.765118f, 0.455299f, 0.500000f, 0.625000f,
+ 0.655908f, -0.632227f, 0.443848f, 0.527662f, -0.772248f, 0.353844f, 0.375000f, 0.750000f,
+ 0.773281f, -0.632227f, 0.160771f, 0.624005f, -0.771390f, 0.124801f, 0.125000f, 0.750000f,
+ 0.760742f, -0.657349f, -0.000000f, 0.720596f, -0.693356f, 0.000000f, 0.000000f, 0.875000f,
+ 0.745527f, -0.657349f, 0.155001f, 0.706584f, -0.693375f, 0.141317f, 0.125000f, 0.875000f,
+ 0.701785f, -0.657349f, 0.298591f, 0.664366f, -0.694254f, 0.276819f, 0.250000f, 0.875000f,
+ 0.735000f, -0.675000f, 0.152812f, 0.980581f, 0.000000f, 0.196116f, 0.125000f, 1.000000f,
+ 0.655908f, -0.632227f, 0.443848f, 0.527662f, -0.772249f, 0.353844f, 0.375000f, 0.750000f,
+ 0.701785f, -0.657349f, 0.298591f, 0.664366f, -0.694254f, 0.276819f, 0.250000f, 0.875000f,
+ 0.632367f, -0.657349f, 0.427917f, 0.597679f, -0.694365f, 0.400796f, 0.375000f, 0.875000f,
+ 0.540127f, -0.657349f, 0.540127f, 0.508537f, -0.694825f, 0.508536f, 0.500000f, 0.875000f,
+ 0.623438f, -0.675000f, 0.421875f, 0.830544f, 0.000000f, 0.556953f, 0.375000f, 1.000000f,
+ 0.343437f, -0.557812f, 0.807187f, 0.268712f, -0.715463f, 0.644909f, 0.750000f, 0.500000f,
+ 0.560234f, -0.632227f, 0.560234f, 0.448897f, -0.772647f, 0.448897f, 0.500000f, 0.750000f,
+ 0.309707f, -0.632227f, 0.727910f, 0.244987f, -0.770892f, 0.587969f, 0.750000f, 0.750000f,
+ 0.000000f, -0.632227f, 0.789062f, 0.000000f, -0.771373f, 0.636383f, 1.000000f, 0.750000f,
+ 0.294375f, -0.675000f, 0.691875f, 0.384615f, 0.000000f, 0.923077f, 0.750000f, 1.000000f,
+ 0.492188f, -0.557812f, 0.727344f, 0.388259f, -0.716961f, 0.578983f, 0.625000f, 0.500000f,
+ 0.588662f, -0.599194f, 0.588662f, 0.455299f, -0.765118f, 0.455299f, 0.500000f, 0.625000f,
+ 0.466370f, -0.599194f, 0.689191f, 0.358895f, -0.764697f, 0.535195f, 0.625000f, 0.625000f,
+ 0.325422f, -0.599194f, 0.764846f, 0.247880f, -0.764614f, 0.594912f, 0.750000f, 0.625000f,
+ 0.443848f, -0.632227f, 0.655908f, 0.353854f, -0.772233f, 0.527677f, 0.625000f, 0.750000f,
+ 0.178281f, -0.557812f, 0.857500f, 0.136915f, -0.715969f, 0.684575f, 0.875000f, 0.500000f,
+ 0.325422f, -0.599194f, 0.764846f, 0.247880f, -0.764614f, 0.594912f, 0.750000f, 0.625000f,
+ 0.168929f, -0.599194f, 0.812519f, 0.126585f, -0.763793f, 0.632927f, 0.875000f, 0.625000f,
+ 0.000000f, -0.599194f, 0.829102f, 0.000000f, -0.763821f, 0.645429f, 1.000000f, 0.625000f,
+ 0.160771f, -0.632227f, 0.773281f, 0.124811f, -0.771346f, 0.624057f, 0.875000f, 0.750000f,
+ 0.443848f, -0.632227f, 0.655908f, 0.353854f, -0.772233f, 0.527677f, 0.625000f, 0.750000f,
+ 0.540127f, -0.657349f, 0.540127f, 0.508536f, -0.694825f, 0.508537f, 0.500000f, 0.875000f,
+ 0.427917f, -0.657349f, 0.632367f, 0.400806f, -0.694347f, 0.597693f, 0.625000f, 0.875000f,
+ 0.298591f, -0.657349f, 0.701785f, 0.276819f, -0.694254f, 0.664366f, 0.750000f, 0.875000f,
+ 0.421875f, -0.675000f, 0.623438f, 0.556953f, 0.000000f, 0.830544f, 0.625000f, 1.000000f,
+ 0.160771f, -0.632227f, 0.773281f, 0.124811f, -0.771346f, 0.624057f, 0.875000f, 0.750000f,
+ 0.298591f, -0.657349f, 0.701785f, 0.276819f, -0.694254f, 0.664366f, 0.750000f, 0.875000f,
+ 0.155001f, -0.657349f, 0.745527f, 0.141326f, -0.693324f, 0.706632f, 0.875000f, 0.875000f,
+ 0.000000f, -0.657349f, 0.760742f, 0.000000f, -0.693356f, 0.720596f, 1.000000f, 0.875000f,
+ 0.152812f, -0.675000f, 0.735000f, 0.196116f, 0.000000f, 0.980581f, 0.875000f, 1.000000f,
+ 0.000000f, -0.300000f, 1.000000f, 0.000000f, 0.000000f, 1.000000f, 0.000000f, 0.000000f,
+ -1.000000f, -0.300000f, -0.000000f, -1.000000f, -0.000000f, -0.000000f, 1.000000f, 0.000000f,
+ 0.000000f, -0.675000f, 0.750000f, 0.000000f, 0.000000f, 1.000000f, 0.000000f, 1.000000f,
+ -0.750000f, -0.675000f, -0.000000f, -1.000000f, -0.000000f, -0.000000f, 1.000000f, 1.000000f,
+ -0.710000f, -0.300000f, 0.710000f, -0.707107f, 0.000000f, 0.707107f, 0.500000f, 0.000000f,
+ 0.000000f, -0.557812f, 0.875000f, 0.000000f, -0.716000f, 0.698100f, 0.000000f, 0.500000f,
+ -0.621250f, -0.557812f, 0.621250f, -0.496182f, -0.712466f, 0.496182f, 0.500000f, 0.500000f,
+ -0.875000f, -0.557812f, -0.000000f, -0.698100f, -0.716000f, -0.000000f, 1.000000f, 0.500000f,
+ -0.532500f, -0.675000f, 0.532500f, -0.707107f, 0.000000f, 0.707107f, 0.500000f, 1.000000f,
+ -0.392500f, -0.300000f, 0.922500f, -0.384615f, 0.000000f, 0.923077f, 0.250000f, 0.000000f,
+ 0.000000f, -0.448242f, 0.960938f, 0.000000f, -0.480535f, 0.876976f, 0.000000f, 0.250000f,
+ -0.377168f, -0.448242f, 0.886465f, -0.337358f, -0.480250f, 0.809660f, 0.250000f, 0.250000f,
+ -0.682266f, -0.448242f, 0.682266f, -0.619529f, -0.482045f, 0.619529f, 0.500000f, 0.250000f,
+ -0.343437f, -0.557812f, 0.807187f, -0.268606f, -0.715732f, 0.644654f, 0.250000f, 0.500000f,
+ -0.203750f, -0.300000f, 0.980000f, -0.196116f, 0.000000f, 0.980581f, 0.125000f, 0.000000f,
+ 0.000000f, -0.379175f, 0.989258f, 0.000000f, -0.266906f, 0.963722f, 0.000000f, 0.125000f,
+ -0.201561f, -0.379175f, 0.969473f, -0.189001f, -0.266919f, 0.945004f, 0.125000f, 0.125000f,
+ -0.388284f, -0.379175f, 0.912590f, -0.370596f, -0.267526f, 0.889432f, 0.250000f, 0.125000f,
+ -0.195791f, -0.448242f, 0.941719f, -0.171987f, -0.480554f, 0.859935f, 0.125000f, 0.250000f,
+ -0.562500f, -0.300000f, 0.831250f, -0.556953f, 0.000000f, 0.830544f, 0.375000f, 0.000000f,
+ -0.388284f, -0.379175f, 0.912590f, -0.370597f, -0.267526f, 0.889431f, 0.250000f, 0.125000f,
+ -0.556458f, -0.379175f, 0.822320f, -0.536641f, -0.267602f, 0.800254f, 0.375000f, 0.125000f,
+ -0.702373f, -0.379175f, 0.702373f, -0.681256f, -0.267921f, 0.681256f, 0.500000f, 0.125000f,
+ -0.540527f, -0.448242f, 0.798779f, -0.488118f, -0.481571f, 0.727894f, 0.375000f, 0.250000f,
+ -0.195791f, -0.448242f, 0.941719f, -0.171987f, -0.480554f, 0.859935f, 0.125000f, 0.250000f,
+ 0.000000f, -0.507642f, 0.920898f, 0.000000f, -0.626221f, 0.779645f, 0.000000f, 0.375000f,
+ -0.187633f, -0.507642f, 0.902480f, -0.152898f, -0.626241f, 0.764489f, 0.125000f, 0.375000f,
+ -0.361453f, -0.507642f, 0.849529f, -0.299570f, -0.627172f, 0.718967f, 0.250000f, 0.375000f,
+ -0.178281f, -0.557812f, 0.857500f, -0.136905f, -0.716019f, 0.684525f, 0.125000f, 0.500000f,
+ -0.540527f, -0.448242f, 0.798779f, -0.488118f, -0.481572f, 0.727894f, 0.375000f, 0.250000f,
+ -0.361453f, -0.507642f, 0.849529f, -0.299570f, -0.627172f, 0.718967f, 0.250000f, 0.375000f,
+ -0.518005f, -0.507642f, 0.765497f, -0.433748f, -0.627288f, 0.646817f, 0.375000f, 0.375000f,
+ -0.653838f, -0.507642f, 0.653838f, -0.550409f, -0.627775f, 0.550409f, 0.500000f, 0.375000f,
+ -0.492188f, -0.557812f, 0.727344f, -0.388249f, -0.716978f, 0.578969f, 0.375000f, 0.500000f,
+ -0.922500f, -0.300000f, 0.392500f, -0.923077f, 0.000000f, 0.384615f, 0.750000f, 0.000000f,
+ -0.682266f, -0.448242f, 0.682266f, -0.619529f, -0.482045f, 0.619529f, 0.500000f, 0.250000f,
+ -0.886465f, -0.448242f, 0.377168f, -0.809804f, -0.479966f, 0.337418f, 0.750000f, 0.250000f,
+ -0.960938f, -0.448242f, -0.000000f, -0.876976f, -0.480535f, -0.000000f, 1.000000f, 0.250000f,
+ -0.807187f, -0.557812f, 0.343437f, -0.644908f, -0.715463f, 0.268712f, 0.750000f, 0.500000f,
+ -0.831250f, -0.300000f, 0.562500f, -0.830544f, 0.000000f, 0.556953f, 0.625000f, 0.000000f,
+ -0.702373f, -0.379175f, 0.702373f, -0.681256f, -0.267921f, 0.681256f, 0.500000f, 0.125000f,
+ -0.822320f, -0.379175f, 0.556458f, -0.800256f, -0.267590f, 0.536643f, 0.625000f, 0.125000f,
+ -0.912590f, -0.379175f, 0.388284f, -0.889431f, -0.267526f, 0.370597f, 0.750000f, 0.125000f,
+ -0.798779f, -0.448242f, 0.540527f, -0.727903f, -0.481553f, 0.488123f, 0.625000f, 0.250000f,
+ -0.980000f, -0.300000f, 0.203750f, -0.980581f, 0.000000f, 0.196116f, 0.875000f, 0.000000f,
+ -0.912590f, -0.379175f, 0.388284f, -0.889432f, -0.267526f, 0.370596f, 0.750000f, 0.125000f,
+ -0.969473f, -0.379175f, 0.201561f, -0.945014f, -0.266885f, 0.189003f, 0.875000f, 0.125000f,
+ -0.989258f, -0.379175f, -0.000000f, -0.963722f, -0.266906f, -0.000000f, 1.000000f, 0.125000f,
+ -0.941719f, -0.448242f, 0.195791f, -0.859963f, -0.480502f, 0.171993f, 0.875000f, 0.250000f,
+ -0.798779f, -0.448242f, 0.540527f, -0.727903f, -0.481553f, 0.488123f, 0.625000f, 0.250000f,
+ -0.653838f, -0.507642f, 0.653838f, -0.550409f, -0.627775f, 0.550409f, 0.500000f, 0.375000f,
+ -0.765497f, -0.507642f, 0.518005f, -0.646829f, -0.627270f, 0.433756f, 0.625000f, 0.375000f,
+ -0.849529f, -0.507642f, 0.361453f, -0.718967f, -0.627172f, 0.299570f, 0.750000f, 0.375000f,
+ -0.727344f, -0.557812f, 0.492188f, -0.578983f, -0.716961f, 0.388259f, 0.625000f, 0.500000f,
+ -0.941719f, -0.448242f, 0.195791f, -0.859963f, -0.480502f, 0.171993f, 0.875000f, 0.250000f,
+ -0.849529f, -0.507642f, 0.361453f, -0.718967f, -0.627172f, 0.299570f, 0.750000f, 0.375000f,
+ -0.902480f, -0.507642f, 0.187633f, -0.764532f, -0.626188f, 0.152906f, 0.875000f, 0.375000f,
+ -0.920898f, -0.507642f, -0.000000f, -0.779645f, -0.626221f, -0.000000f, 1.000000f, 0.375000f,
+ -0.857500f, -0.557812f, 0.178281f, -0.684574f, -0.715970f, 0.136915f, 0.875000f, 0.500000f,
+ -0.343437f, -0.557812f, 0.807187f, -0.268606f, -0.715731f, 0.644654f, 0.250000f, 0.500000f,
+ 0.000000f, -0.632227f, 0.789062f, 0.000000f, -0.771373f, 0.636383f, 0.000000f, 0.750000f,
+ -0.309707f, -0.632227f, 0.727910f, -0.244875f, -0.771133f, 0.587700f, 0.250000f, 0.750000f,
+ -0.560234f, -0.632227f, 0.560234f, -0.448897f, -0.772647f, 0.448897f, 0.500000f, 0.750000f,
+ -0.294375f, -0.675000f, 0.691875f, -0.384615f, 0.000000f, 0.923077f, 0.250000f, 1.000000f,
+ -0.178281f, -0.557812f, 0.857500f, -0.136905f, -0.716018f, 0.684525f, 0.125000f, 0.500000f,
+ 0.000000f, -0.599194f, 0.829102f, 0.000000f, -0.763821f, 0.645429f, 0.000000f, 0.625000f,
+ -0.168929f, -0.599194f, 0.812519f, -0.126575f, -0.763837f, 0.632876f, 0.125000f, 0.625000f,
+ -0.325422f, -0.599194f, 0.764846f, -0.247880f, -0.764614f, 0.594912f, 0.250000f, 0.625000f,
+ -0.160771f, -0.632227f, 0.773281f, -0.124801f, -0.771390f, 0.624005f, 0.125000f, 0.750000f,
+ -0.492188f, -0.557812f, 0.727344f, -0.388249f, -0.716978f, 0.578969f, 0.375000f, 0.500000f,
+ -0.325422f, -0.599194f, 0.764846f, -0.247880f, -0.764614f, 0.594912f, 0.250000f, 0.625000f,
+ -0.466370f, -0.599194f, 0.689191f, -0.358885f, -0.764712f, 0.535179f, 0.375000f, 0.625000f,
+ -0.588662f, -0.599194f, 0.588662f, -0.455299f, -0.765118f, 0.455299f, 0.500000f, 0.625000f,
+ -0.443848f, -0.632227f, 0.655908f, -0.353844f, -0.772248f, 0.527662f, 0.375000f, 0.750000f,
+ -0.160771f, -0.632227f, 0.773281f, -0.124801f, -0.771390f, 0.624005f, 0.125000f, 0.750000f,
+ 0.000000f, -0.657349f, 0.760742f, 0.000000f, -0.693356f, 0.720596f, 0.000000f, 0.875000f,
+ -0.155001f, -0.657349f, 0.745527f, -0.141317f, -0.693375f, 0.706584f, 0.125000f, 0.875000f,
+ -0.298591f, -0.657349f, 0.701785f, -0.276819f, -0.694254f, 0.664366f, 0.250000f, 0.875000f,
+ -0.152812f, -0.675000f, 0.735000f, -0.196116f, 0.000000f, 0.980581f, 0.125000f, 1.000000f,
+ -0.443848f, -0.632227f, 0.655908f, -0.353844f, -0.772249f, 0.527662f, 0.375000f, 0.750000f,
+ -0.298591f, -0.657349f, 0.701785f, -0.276819f, -0.694254f, 0.664366f, 0.250000f, 0.875000f,
+ -0.427917f, -0.657349f, 0.632367f, -0.400796f, -0.694365f, 0.597679f, 0.375000f, 0.875000f,
+ -0.540127f, -0.657349f, 0.540127f, -0.508536f, -0.694825f, 0.508537f, 0.500000f, 0.875000f,
+ -0.421875f, -0.675000f, 0.623438f, -0.556953f, 0.000000f, 0.830544f, 0.375000f, 1.000000f,
+ -0.807187f, -0.557812f, 0.343437f, -0.644909f, -0.715463f, 0.268712f, 0.750000f, 0.500000f,
+ -0.560234f, -0.632227f, 0.560234f, -0.448897f, -0.772647f, 0.448897f, 0.500000f, 0.750000f,
+ -0.727910f, -0.632227f, 0.309707f, -0.587969f, -0.770892f, 0.244987f, 0.750000f, 0.750000f,
+ -0.789062f, -0.632227f, -0.000000f, -0.636383f, -0.771373f, -0.000000f, 1.000000f, 0.750000f,
+ -0.691875f, -0.675000f, 0.294375f, -0.923077f, 0.000000f, 0.384615f, 0.750000f, 1.000000f,
+ -0.727344f, -0.557812f, 0.492188f, -0.578983f, -0.716961f, 0.388259f, 0.625000f, 0.500000f,
+ -0.588662f, -0.599194f, 0.588662f, -0.455299f, -0.765118f, 0.455299f, 0.500000f, 0.625000f,
+ -0.689191f, -0.599194f, 0.466370f, -0.535195f, -0.764697f, 0.358895f, 0.625000f, 0.625000f,
+ -0.764846f, -0.599194f, 0.325422f, -0.594912f, -0.764614f, 0.247880f, 0.750000f, 0.625000f,
+ -0.655908f, -0.632227f, 0.443848f, -0.527677f, -0.772233f, 0.353854f, 0.625000f, 0.750000f,
+ -0.857500f, -0.557812f, 0.178281f, -0.684575f, -0.715969f, 0.136915f, 0.875000f, 0.500000f,
+ -0.764846f, -0.599194f, 0.325422f, -0.594912f, -0.764614f, 0.247880f, 0.750000f, 0.625000f,
+ -0.812519f, -0.599194f, 0.168929f, -0.632927f, -0.763793f, 0.126585f, 0.875000f, 0.625000f,
+ -0.829102f, -0.599194f, -0.000000f, -0.645429f, -0.763821f, -0.000000f, 1.000000f, 0.625000f,
+ -0.773281f, -0.632227f, 0.160771f, -0.624057f, -0.771346f, 0.124811f, 0.875000f, 0.750000f,
+ -0.655908f, -0.632227f, 0.443848f, -0.527677f, -0.772233f, 0.353854f, 0.625000f, 0.750000f,
+ -0.540127f, -0.657349f, 0.540127f, -0.508537f, -0.694825f, 0.508536f, 0.500000f, 0.875000f,
+ -0.632367f, -0.657349f, 0.427917f, -0.597693f, -0.694347f, 0.400806f, 0.625000f, 0.875000f,
+ -0.701785f, -0.657349f, 0.298591f, -0.664366f, -0.694254f, 0.276819f, 0.750000f, 0.875000f,
+ -0.623438f, -0.675000f, 0.421875f, -0.830544f, 0.000000f, 0.556953f, 0.625000f, 1.000000f,
+ -0.773281f, -0.632227f, 0.160771f, -0.624057f, -0.771346f, 0.124811f, 0.875000f, 0.750000f,
+ -0.701785f, -0.657349f, 0.298591f, -0.664366f, -0.694254f, 0.276819f, 0.750000f, 0.875000f,
+ -0.745527f, -0.657349f, 0.155001f, -0.706632f, -0.693324f, 0.141326f, 0.875000f, 0.875000f,
+ -0.760742f, -0.657349f, -0.000000f, -0.720596f, -0.693356f, -0.000000f, 1.000000f, 0.875000f,
+ -0.735000f, -0.675000f, 0.152812f, -0.980581f, 0.000000f, 0.196116f, 0.875000f, 1.000000f,
+ -1.000000f, -0.300000f, -0.000000f, -1.000000f, -0.000000f, -0.000000f, 0.000000f, 0.000000f,
+ 0.000000f, -0.300000f, -1.000000f, 0.000000f, 0.000000f, -1.000000f, 1.000000f, 0.000000f,
+ -0.750000f, -0.675000f, -0.000000f, -1.000000f, -0.000000f, -0.000000f, 0.000000f, 1.000000f,
+ 0.000000f, -0.675000f, -0.750000f, 0.000000f, 0.000000f, -1.000000f, 1.000000f, 1.000000f,
+ -0.710000f, -0.300000f, -0.710000f, -0.707107f, -0.000000f, -0.707107f, 0.500000f, 0.000000f,
+ -0.875000f, -0.557812f, -0.000000f, -0.698100f, -0.716000f, -0.000000f, 0.000000f, 0.500000f,
+ -0.621250f, -0.557812f, -0.621250f, -0.496182f, -0.712466f, -0.496182f, 0.500000f, 0.500000f,
+ 0.000000f, -0.557812f, -0.875000f, 0.000000f, -0.716000f, -0.698100f, 1.000000f, 0.500000f,
+ -0.532500f, -0.675000f, -0.532500f, -0.707107f, -0.000000f, -0.707107f, 0.500000f, 1.000000f,
+ -0.922500f, -0.300000f, -0.392500f, -0.923077f, -0.000000f, -0.384615f, 0.250000f, 0.000000f,
+ -0.960938f, -0.448242f, -0.000000f, -0.876976f, -0.480535f, -0.000000f, 0.000000f, 0.250000f,
+ -0.886465f, -0.448242f, -0.377168f, -0.809660f, -0.480250f, -0.337358f, 0.250000f, 0.250000f,
+ -0.682266f, -0.448242f, -0.682266f, -0.619529f, -0.482045f, -0.619529f, 0.500000f, 0.250000f,
+ -0.807187f, -0.557812f, -0.343437f, -0.644654f, -0.715732f, -0.268606f, 0.250000f, 0.500000f,
+ -0.980000f, -0.300000f, -0.203750f, -0.980581f, -0.000000f, -0.196116f, 0.125000f, 0.000000f,
+ -0.989258f, -0.379175f, -0.000000f, -0.963722f, -0.266906f, -0.000000f, 0.000000f, 0.125000f,
+ -0.969473f, -0.379175f, -0.201561f, -0.945004f, -0.266919f, -0.189001f, 0.125000f, 0.125000f,
+ -0.912590f, -0.379175f, -0.388284f, -0.889432f, -0.267526f, -0.370596f, 0.250000f, 0.125000f,
+ -0.941719f, -0.448242f, -0.195791f, -0.859935f, -0.480554f, -0.171987f, 0.125000f, 0.250000f,
+ -0.831250f, -0.300000f, -0.562500f, -0.830544f, -0.000000f, -0.556953f, 0.375000f, 0.000000f,
+ -0.912590f, -0.379175f, -0.388284f, -0.889431f, -0.267526f, -0.370597f, 0.250000f, 0.125000f,
+ -0.822320f, -0.379175f, -0.556458f, -0.800254f, -0.267602f, -0.536641f, 0.375000f, 0.125000f,
+ -0.702373f, -0.379175f, -0.702373f, -0.681256f, -0.267921f, -0.681256f, 0.500000f, 0.125000f,
+ -0.798779f, -0.448242f, -0.540527f, -0.727894f, -0.481571f, -0.488118f, 0.375000f, 0.250000f,
+ -0.941719f, -0.448242f, -0.195791f, -0.859935f, -0.480554f, -0.171987f, 0.125000f, 0.250000f,
+ -0.920898f, -0.507642f, -0.000000f, -0.779645f, -0.626221f, -0.000000f, 0.000000f, 0.375000f,
+ -0.902480f, -0.507642f, -0.187633f, -0.764489f, -0.626241f, -0.152898f, 0.125000f, 0.375000f,
+ -0.849529f, -0.507642f, -0.361453f, -0.718967f, -0.627172f, -0.299570f, 0.250000f, 0.375000f,
+ -0.857500f, -0.557812f, -0.178281f, -0.684525f, -0.716019f, -0.136905f, 0.125000f, 0.500000f,
+ -0.798779f, -0.448242f, -0.540527f, -0.727894f, -0.481572f, -0.488118f, 0.375000f, 0.250000f,
+ -0.849529f, -0.507642f, -0.361453f, -0.718967f, -0.627172f, -0.299570f, 0.250000f, 0.375000f,
+ -0.765497f, -0.507642f, -0.518005f, -0.646817f, -0.627288f, -0.433748f, 0.375000f, 0.375000f,
+ -0.653838f, -0.507642f, -0.653838f, -0.550409f, -0.627775f, -0.550409f, 0.500000f, 0.375000f,
+ -0.727344f, -0.557812f, -0.492188f, -0.578969f, -0.716978f, -0.388249f, 0.375000f, 0.500000f,
+ -0.392500f, -0.300000f, -0.922500f, -0.384615f, -0.000000f, -0.923077f, 0.750000f, 0.000000f,
+ -0.682266f, -0.448242f, -0.682266f, -0.619529f, -0.482045f, -0.619529f, 0.500000f, 0.250000f,
+ -0.377168f, -0.448242f, -0.886465f, -0.337418f, -0.479966f, -0.809804f, 0.750000f, 0.250000f,
+ 0.000000f, -0.448242f, -0.960938f, 0.000000f, -0.480535f, -0.876976f, 1.000000f, 0.250000f,
+ -0.343437f, -0.557812f, -0.807187f, -0.268712f, -0.715463f, -0.644908f, 0.750000f, 0.500000f,
+ -0.562500f, -0.300000f, -0.831250f, -0.556953f, -0.000000f, -0.830544f, 0.625000f, 0.000000f,
+ -0.702373f, -0.379175f, -0.702373f, -0.681256f, -0.267921f, -0.681256f, 0.500000f, 0.125000f,
+ -0.556458f, -0.379175f, -0.822320f, -0.536643f, -0.267590f, -0.800256f, 0.625000f, 0.125000f,
+ -0.388284f, -0.379175f, -0.912590f, -0.370597f, -0.267526f, -0.889431f, 0.750000f, 0.125000f,
+ -0.540527f, -0.448242f, -0.798779f, -0.488123f, -0.481553f, -0.727903f, 0.625000f, 0.250000f,
+ -0.203750f, -0.300000f, -0.980000f, -0.196116f, -0.000000f, -0.980581f, 0.875000f, 0.000000f,
+ -0.388284f, -0.379175f, -0.912590f, -0.370596f, -0.267526f, -0.889432f, 0.750000f, 0.125000f,
+ -0.201561f, -0.379175f, -0.969473f, -0.189003f, -0.266885f, -0.945014f, 0.875000f, 0.125000f,
+ 0.000000f, -0.379175f, -0.989258f, 0.000000f, -0.266906f, -0.963722f, 1.000000f, 0.125000f,
+ -0.195791f, -0.448242f, -0.941719f, -0.171993f, -0.480502f, -0.859963f, 0.875000f, 0.250000f,
+ -0.540527f, -0.448242f, -0.798779f, -0.488123f, -0.481553f, -0.727903f, 0.625000f, 0.250000f,
+ -0.653838f, -0.507642f, -0.653838f, -0.550409f, -0.627775f, -0.550409f, 0.500000f, 0.375000f,
+ -0.518005f, -0.507642f, -0.765497f, -0.433756f, -0.627270f, -0.646829f, 0.625000f, 0.375000f,
+ -0.361453f, -0.507642f, -0.849529f, -0.299570f, -0.627172f, -0.718967f, 0.750000f, 0.375000f,
+ -0.492188f, -0.557812f, -0.727344f, -0.388259f, -0.716961f, -0.578983f, 0.625000f, 0.500000f,
+ -0.195791f, -0.448242f, -0.941719f, -0.171993f, -0.480502f, -0.859963f, 0.875000f, 0.250000f,
+ -0.361453f, -0.507642f, -0.849529f, -0.299570f, -0.627172f, -0.718967f, 0.750000f, 0.375000f,
+ -0.187633f, -0.507642f, -0.902480f, -0.152906f, -0.626188f, -0.764532f, 0.875000f, 0.375000f,
+ 0.000000f, -0.507642f, -0.920898f, 0.000000f, -0.626221f, -0.779645f, 1.000000f, 0.375000f,
+ -0.178281f, -0.557812f, -0.857500f, -0.136915f, -0.715970f, -0.684574f, 0.875000f, 0.500000f,
+ -0.807187f, -0.557812f, -0.343437f, -0.644654f, -0.715731f, -0.268606f, 0.250000f, 0.500000f,
+ -0.789062f, -0.632227f, -0.000000f, -0.636383f, -0.771373f, -0.000000f, 0.000000f, 0.750000f,
+ -0.727910f, -0.632227f, -0.309707f, -0.587700f, -0.771133f, -0.244875f, 0.250000f, 0.750000f,
+ -0.560234f, -0.632227f, -0.560234f, -0.448897f, -0.772647f, -0.448897f, 0.500000f, 0.750000f,
+ -0.691875f, -0.675000f, -0.294375f, -0.923077f, -0.000000f, -0.384615f, 0.250000f, 1.000000f,
+ -0.857500f, -0.557812f, -0.178281f, -0.684525f, -0.716018f, -0.136905f, 0.125000f, 0.500000f,
+ -0.829102f, -0.599194f, -0.000000f, -0.645429f, -0.763821f, -0.000000f, 0.000000f, 0.625000f,
+ -0.812519f, -0.599194f, -0.168929f, -0.632876f, -0.763837f, -0.126575f, 0.125000f, 0.625000f,
+ -0.764846f, -0.599194f, -0.325422f, -0.594912f, -0.764614f, -0.247880f, 0.250000f, 0.625000f,
+ -0.773281f, -0.632227f, -0.160771f, -0.624005f, -0.771390f, -0.124801f, 0.125000f, 0.750000f,
+ -0.727344f, -0.557812f, -0.492188f, -0.578969f, -0.716978f, -0.388249f, 0.375000f, 0.500000f,
+ -0.764846f, -0.599194f, -0.325422f, -0.594912f, -0.764614f, -0.247880f, 0.250000f, 0.625000f,
+ -0.689191f, -0.599194f, -0.466370f, -0.535179f, -0.764712f, -0.358885f, 0.375000f, 0.625000f,
+ -0.588662f, -0.599194f, -0.588662f, -0.455299f, -0.765118f, -0.455299f, 0.500000f, 0.625000f,
+ -0.655908f, -0.632227f, -0.443848f, -0.527662f, -0.772248f, -0.353844f, 0.375000f, 0.750000f,
+ -0.773281f, -0.632227f, -0.160771f, -0.624005f, -0.771390f, -0.124801f, 0.125000f, 0.750000f,
+ -0.760742f, -0.657349f, -0.000000f, -0.720596f, -0.693356f, -0.000000f, 0.000000f, 0.875000f,
+ -0.745527f, -0.657349f, -0.155001f, -0.706584f, -0.693375f, -0.141317f, 0.125000f, 0.875000f,
+ -0.701785f, -0.657349f, -0.298591f, -0.664366f, -0.694254f, -0.276819f, 0.250000f, 0.875000f,
+ -0.735000f, -0.675000f, -0.152812f, -0.980581f, -0.000000f, -0.196116f, 0.125000f, 1.000000f,
+ -0.655908f, -0.632227f, -0.443848f, -0.527662f, -0.772249f, -0.353844f, 0.375000f, 0.750000f,
+ -0.701785f, -0.657349f, -0.298591f, -0.664366f, -0.694254f, -0.276819f, 0.250000f, 0.875000f,
+ -0.632367f, -0.657349f, -0.427917f, -0.597679f, -0.694365f, -0.400796f, 0.375000f, 0.875000f,
+ -0.540127f, -0.657349f, -0.540127f, -0.508537f, -0.694825f, -0.508536f, 0.500000f, 0.875000f,
+ -0.623438f, -0.675000f, -0.421875f, -0.830544f, -0.000000f, -0.556953f, 0.375000f, 1.000000f,
+ -0.343437f, -0.557812f, -0.807187f, -0.268712f, -0.715463f, -0.644909f, 0.750000f, 0.500000f,
+ -0.560234f, -0.632227f, -0.560234f, -0.448897f, -0.772647f, -0.448897f, 0.500000f, 0.750000f,
+ -0.309707f, -0.632227f, -0.727910f, -0.244987f, -0.770892f, -0.587969f, 0.750000f, 0.750000f,
+ 0.000000f, -0.632227f, -0.789062f, 0.000000f, -0.771373f, -0.636383f, 1.000000f, 0.750000f,
+ -0.294375f, -0.675000f, -0.691875f, -0.384615f, -0.000000f, -0.923077f, 0.750000f, 1.000000f,
+ -0.492188f, -0.557812f, -0.727344f, -0.388259f, -0.716961f, -0.578983f, 0.625000f, 0.500000f,
+ -0.588662f, -0.599194f, -0.588662f, -0.455299f, -0.765118f, -0.455299f, 0.500000f, 0.625000f,
+ -0.466370f, -0.599194f, -0.689191f, -0.358895f, -0.764697f, -0.535195f, 0.625000f, 0.625000f,
+ -0.325422f, -0.599194f, -0.764846f, -0.247880f, -0.764614f, -0.594912f, 0.750000f, 0.625000f,
+ -0.443848f, -0.632227f, -0.655908f, -0.353854f, -0.772233f, -0.527677f, 0.625000f, 0.750000f,
+ -0.178281f, -0.557812f, -0.857500f, -0.136915f, -0.715969f, -0.684575f, 0.875000f, 0.500000f,
+ -0.325422f, -0.599194f, -0.764846f, -0.247880f, -0.764614f, -0.594912f, 0.750000f, 0.625000f,
+ -0.168929f, -0.599194f, -0.812519f, -0.126585f, -0.763793f, -0.632927f, 0.875000f, 0.625000f,
+ 0.000000f, -0.599194f, -0.829102f, 0.000000f, -0.763821f, -0.645429f, 1.000000f, 0.625000f,
+ -0.160771f, -0.632227f, -0.773281f, -0.124811f, -0.771346f, -0.624057f, 0.875000f, 0.750000f,
+ -0.443848f, -0.632227f, -0.655908f, -0.353854f, -0.772233f, -0.527677f, 0.625000f, 0.750000f,
+ -0.540127f, -0.657349f, -0.540127f, -0.508536f, -0.694825f, -0.508537f, 0.500000f, 0.875000f,
+ -0.427917f, -0.657349f, -0.632367f, -0.400806f, -0.694347f, -0.597693f, 0.625000f, 0.875000f,
+ -0.298591f, -0.657349f, -0.701785f, -0.276819f, -0.694254f, -0.664366f, 0.750000f, 0.875000f,
+ -0.421875f, -0.675000f, -0.623438f, -0.556953f, -0.000000f, -0.830544f, 0.625000f, 1.000000f,
+ -0.160771f, -0.632227f, -0.773281f, -0.124811f, -0.771346f, -0.624057f, 0.875000f, 0.750000f,
+ -0.298591f, -0.657349f, -0.701785f, -0.276819f, -0.694254f, -0.664366f, 0.750000f, 0.875000f,
+ -0.155001f, -0.657349f, -0.745527f, -0.141326f, -0.693324f, -0.706632f, 0.875000f, 0.875000f,
+ 0.000000f, -0.657349f, -0.760742f, 0.000000f, -0.693356f, -0.720596f, 1.000000f, 0.875000f,
+ -0.152812f, -0.675000f, -0.735000f, -0.196116f, -0.000000f, -0.980581f, 0.875000f, 1.000000f,
+ 0.000000f, -0.300000f, -1.000000f, 0.000000f, 0.000000f, -1.000000f, 0.000000f, 0.000000f,
+ 1.000000f, -0.300000f, -0.000000f, 1.000000f, 0.000000f, -0.000000f, 1.000000f, 0.000000f,
+ 0.000000f, -0.675000f, -0.750000f, 0.000000f, 0.000000f, -1.000000f, 0.000000f, 1.000000f,
+ 0.750000f, -0.675000f, -0.000000f, 1.000000f, 0.000000f, -0.000000f, 1.000000f, 1.000000f,
+ 0.710000f, -0.300000f, -0.710000f, 0.707107f, 0.000000f, -0.707107f, 0.500000f, 0.000000f,
+ 0.000000f, -0.557812f, -0.875000f, 0.000000f, -0.716000f, -0.698100f, 0.000000f, 0.500000f,
+ 0.621250f, -0.557812f, -0.621250f, 0.496182f, -0.712466f, -0.496182f, 0.500000f, 0.500000f,
+ 0.875000f, -0.557812f, -0.000000f, 0.698100f, -0.716000f, 0.000000f, 1.000000f, 0.500000f,
+ 0.532500f, -0.675000f, -0.532500f, 0.707107f, 0.000000f, -0.707107f, 0.500000f, 1.000000f,
+ 0.392500f, -0.300000f, -0.922500f, 0.384615f, 0.000000f, -0.923077f, 0.250000f, 0.000000f,
+ 0.000000f, -0.448242f, -0.960938f, 0.000000f, -0.480535f, -0.876976f, 0.000000f, 0.250000f,
+ 0.377168f, -0.448242f, -0.886465f, 0.337358f, -0.480250f, -0.809660f, 0.250000f, 0.250000f,
+ 0.682266f, -0.448242f, -0.682266f, 0.619529f, -0.482045f, -0.619529f, 0.500000f, 0.250000f,
+ 0.343437f, -0.557812f, -0.807187f, 0.268606f, -0.715732f, -0.644654f, 0.250000f, 0.500000f,
+ 0.203750f, -0.300000f, -0.980000f, 0.196116f, 0.000000f, -0.980581f, 0.125000f, 0.000000f,
+ 0.000000f, -0.379175f, -0.989258f, 0.000000f, -0.266906f, -0.963722f, 0.000000f, 0.125000f,
+ 0.201561f, -0.379175f, -0.969473f, 0.189001f, -0.266919f, -0.945004f, 0.125000f, 0.125000f,
+ 0.388284f, -0.379175f, -0.912590f, 0.370596f, -0.267526f, -0.889432f, 0.250000f, 0.125000f,
+ 0.195791f, -0.448242f, -0.941719f, 0.171987f, -0.480554f, -0.859935f, 0.125000f, 0.250000f,
+ 0.562500f, -0.300000f, -0.831250f, 0.556953f, 0.000000f, -0.830544f, 0.375000f, 0.000000f,
+ 0.388284f, -0.379175f, -0.912590f, 0.370597f, -0.267526f, -0.889431f, 0.250000f, 0.125000f,
+ 0.556458f, -0.379175f, -0.822320f, 0.536641f, -0.267602f, -0.800254f, 0.375000f, 0.125000f,
+ 0.702373f, -0.379175f, -0.702373f, 0.681256f, -0.267921f, -0.681256f, 0.500000f, 0.125000f,
+ 0.540527f, -0.448242f, -0.798779f, 0.488118f, -0.481571f, -0.727894f, 0.375000f, 0.250000f,
+ 0.195791f, -0.448242f, -0.941719f, 0.171987f, -0.480554f, -0.859935f, 0.125000f, 0.250000f,
+ 0.000000f, -0.507642f, -0.920898f, 0.000000f, -0.626221f, -0.779645f, 0.000000f, 0.375000f,
+ 0.187633f, -0.507642f, -0.902480f, 0.152898f, -0.626241f, -0.764489f, 0.125000f, 0.375000f,
+ 0.361453f, -0.507642f, -0.849529f, 0.299570f, -0.627172f, -0.718967f, 0.250000f, 0.375000f,
+ 0.178281f, -0.557812f, -0.857500f, 0.136905f, -0.716019f, -0.684525f, 0.125000f, 0.500000f,
+ 0.540527f, -0.448242f, -0.798779f, 0.488118f, -0.481572f, -0.727894f, 0.375000f, 0.250000f,
+ 0.361453f, -0.507642f, -0.849529f, 0.299570f, -0.627172f, -0.718967f, 0.250000f, 0.375000f,
+ 0.518005f, -0.507642f, -0.765497f, 0.433748f, -0.627288f, -0.646817f, 0.375000f, 0.375000f,
+ 0.653838f, -0.507642f, -0.653838f, 0.550409f, -0.627775f, -0.550409f, 0.500000f, 0.375000f,
+ 0.492188f, -0.557812f, -0.727344f, 0.388249f, -0.716978f, -0.578969f, 0.375000f, 0.500000f,
+ 0.922500f, -0.300000f, -0.392500f, 0.923077f, 0.000000f, -0.384615f, 0.750000f, 0.000000f,
+ 0.682266f, -0.448242f, -0.682266f, 0.619529f, -0.482045f, -0.619529f, 0.500000f, 0.250000f,
+ 0.886465f, -0.448242f, -0.377168f, 0.809804f, -0.479966f, -0.337418f, 0.750000f, 0.250000f,
+ 0.960938f, -0.448242f, -0.000000f, 0.876976f, -0.480535f, 0.000000f, 1.000000f, 0.250000f,
+ 0.807187f, -0.557812f, -0.343437f, 0.644908f, -0.715463f, -0.268712f, 0.750000f, 0.500000f,
+ 0.831250f, -0.300000f, -0.562500f, 0.830544f, 0.000000f, -0.556953f, 0.625000f, 0.000000f,
+ 0.702373f, -0.379175f, -0.702373f, 0.681256f, -0.267921f, -0.681256f, 0.500000f, 0.125000f,
+ 0.822320f, -0.379175f, -0.556458f, 0.800256f, -0.267590f, -0.536643f, 0.625000f, 0.125000f,
+ 0.912590f, -0.379175f, -0.388284f, 0.889431f, -0.267526f, -0.370597f, 0.750000f, 0.125000f,
+ 0.798779f, -0.448242f, -0.540527f, 0.727903f, -0.481553f, -0.488123f, 0.625000f, 0.250000f,
+ 0.980000f, -0.300000f, -0.203750f, 0.980581f, 0.000000f, -0.196116f, 0.875000f, 0.000000f,
+ 0.912590f, -0.379175f, -0.388284f, 0.889432f, -0.267526f, -0.370596f, 0.750000f, 0.125000f,
+ 0.969473f, -0.379175f, -0.201561f, 0.945014f, -0.266885f, -0.189003f, 0.875000f, 0.125000f,
+ 0.989258f, -0.379175f, -0.000000f, 0.963722f, -0.266906f, 0.000000f, 1.000000f, 0.125000f,
+ 0.941719f, -0.448242f, -0.195791f, 0.859963f, -0.480502f, -0.171993f, 0.875000f, 0.250000f,
+ 0.798779f, -0.448242f, -0.540527f, 0.727903f, -0.481553f, -0.488123f, 0.625000f, 0.250000f,
+ 0.653838f, -0.507642f, -0.653838f, 0.550409f, -0.627775f, -0.550409f, 0.500000f, 0.375000f,
+ 0.765497f, -0.507642f, -0.518005f, 0.646829f, -0.627270f, -0.433756f, 0.625000f, 0.375000f,
+ 0.849529f, -0.507642f, -0.361453f, 0.718967f, -0.627172f, -0.299570f, 0.750000f, 0.375000f,
+ 0.727344f, -0.557812f, -0.492188f, 0.578983f, -0.716961f, -0.388259f, 0.625000f, 0.500000f,
+ 0.941719f, -0.448242f, -0.195791f, 0.859963f, -0.480502f, -0.171993f, 0.875000f, 0.250000f,
+ 0.849529f, -0.507642f, -0.361453f, 0.718967f, -0.627172f, -0.299570f, 0.750000f, 0.375000f,
+ 0.902480f, -0.507642f, -0.187633f, 0.764532f, -0.626188f, -0.152906f, 0.875000f, 0.375000f,
+ 0.920898f, -0.507642f, -0.000000f, 0.779645f, -0.626221f, 0.000000f, 1.000000f, 0.375000f,
+ 0.857500f, -0.557812f, -0.178281f, 0.684574f, -0.715970f, -0.136915f, 0.875000f, 0.500000f,
+ 0.343437f, -0.557812f, -0.807187f, 0.268606f, -0.715731f, -0.644654f, 0.250000f, 0.500000f,
+ 0.000000f, -0.632227f, -0.789062f, 0.000000f, -0.771373f, -0.636383f, 0.000000f, 0.750000f,
+ 0.309707f, -0.632227f, -0.727910f, 0.244875f, -0.771133f, -0.587700f, 0.250000f, 0.750000f,
+ 0.560234f, -0.632227f, -0.560234f, 0.448897f, -0.772647f, -0.448897f, 0.500000f, 0.750000f,
+ 0.294375f, -0.675000f, -0.691875f, 0.384615f, 0.000000f, -0.923077f, 0.250000f, 1.000000f,
+ 0.178281f, -0.557812f, -0.857500f, 0.136905f, -0.716018f, -0.684525f, 0.125000f, 0.500000f,
+ 0.000000f, -0.599194f, -0.829102f, 0.000000f, -0.763821f, -0.645429f, 0.000000f, 0.625000f,
+ 0.168929f, -0.599194f, -0.812519f, 0.126575f, -0.763837f, -0.632876f, 0.125000f, 0.625000f,
+ 0.325422f, -0.599194f, -0.764846f, 0.247880f, -0.764614f, -0.594912f, 0.250000f, 0.625000f,
+ 0.160771f, -0.632227f, -0.773281f, 0.124801f, -0.771390f, -0.624005f, 0.125000f, 0.750000f,
+ 0.492188f, -0.557812f, -0.727344f, 0.388249f, -0.716978f, -0.578969f, 0.375000f, 0.500000f,
+ 0.325422f, -0.599194f, -0.764846f, 0.247880f, -0.764614f, -0.594912f, 0.250000f, 0.625000f,
+ 0.466370f, -0.599194f, -0.689191f, 0.358885f, -0.764712f, -0.535179f, 0.375000f, 0.625000f,
+ 0.588662f, -0.599194f, -0.588662f, 0.455299f, -0.765118f, -0.455299f, 0.500000f, 0.625000f,
+ 0.443848f, -0.632227f, -0.655908f, 0.353844f, -0.772248f, -0.527662f, 0.375000f, 0.750000f,
+ 0.160771f, -0.632227f, -0.773281f, 0.124801f, -0.771390f, -0.624005f, 0.125000f, 0.750000f,
+ 0.000000f, -0.657349f, -0.760742f, 0.000000f, -0.693356f, -0.720596f, 0.000000f, 0.875000f,
+ 0.155001f, -0.657349f, -0.745527f, 0.141317f, -0.693375f, -0.706584f, 0.125000f, 0.875000f,
+ 0.298591f, -0.657349f, -0.701785f, 0.276819f, -0.694254f, -0.664366f, 0.250000f, 0.875000f,
+ 0.152812f, -0.675000f, -0.735000f, 0.196116f, 0.000000f, -0.980581f, 0.125000f, 1.000000f,
+ 0.443848f, -0.632227f, -0.655908f, 0.353844f, -0.772249f, -0.527662f, 0.375000f, 0.750000f,
+ 0.298591f, -0.657349f, -0.701785f, 0.276819f, -0.694254f, -0.664366f, 0.250000f, 0.875000f,
+ 0.427917f, -0.657349f, -0.632367f, 0.400796f, -0.694365f, -0.597679f, 0.375000f, 0.875000f,
+ 0.540127f, -0.657349f, -0.540127f, 0.508536f, -0.694825f, -0.508537f, 0.500000f, 0.875000f,
+ 0.421875f, -0.675000f, -0.623438f, 0.556953f, 0.000000f, -0.830544f, 0.375000f, 1.000000f,
+ 0.807187f, -0.557812f, -0.343437f, 0.644909f, -0.715463f, -0.268712f, 0.750000f, 0.500000f,
+ 0.560234f, -0.632227f, -0.560234f, 0.448897f, -0.772647f, -0.448897f, 0.500000f, 0.750000f,
+ 0.727910f, -0.632227f, -0.309707f, 0.587969f, -0.770892f, -0.244987f, 0.750000f, 0.750000f,
+ 0.789062f, -0.632227f, -0.000000f, 0.636383f, -0.771373f, 0.000000f, 1.000000f, 0.750000f,
+ 0.691875f, -0.675000f, -0.294375f, 0.923077f, 0.000000f, -0.384615f, 0.750000f, 1.000000f,
+ 0.727344f, -0.557812f, -0.492188f, 0.578983f, -0.716961f, -0.388259f, 0.625000f, 0.500000f,
+ 0.588662f, -0.599194f, -0.588662f, 0.455299f, -0.765118f, -0.455299f, 0.500000f, 0.625000f,
+ 0.689191f, -0.599194f, -0.466370f, 0.535195f, -0.764697f, -0.358895f, 0.625000f, 0.625000f,
+ 0.764846f, -0.599194f, -0.325422f, 0.594912f, -0.764614f, -0.247880f, 0.750000f, 0.625000f,
+ 0.655908f, -0.632227f, -0.443848f, 0.527677f, -0.772233f, -0.353854f, 0.625000f, 0.750000f,
+ 0.857500f, -0.557812f, -0.178281f, 0.684575f, -0.715969f, -0.136915f, 0.875000f, 0.500000f,
+ 0.764846f, -0.599194f, -0.325422f, 0.594912f, -0.764614f, -0.247880f, 0.750000f, 0.625000f,
+ 0.812519f, -0.599194f, -0.168929f, 0.632927f, -0.763793f, -0.126585f, 0.875000f, 0.625000f,
+ 0.829102f, -0.599194f, -0.000000f, 0.645429f, -0.763821f, 0.000000f, 1.000000f, 0.625000f,
+ 0.773281f, -0.632227f, -0.160771f, 0.624057f, -0.771346f, -0.124811f, 0.875000f, 0.750000f,
+ 0.655908f, -0.632227f, -0.443848f, 0.527677f, -0.772233f, -0.353854f, 0.625000f, 0.750000f,
+ 0.540127f, -0.657349f, -0.540127f, 0.508537f, -0.694825f, -0.508536f, 0.500000f, 0.875000f,
+ 0.632367f, -0.657349f, -0.427917f, 0.597693f, -0.694347f, -0.400806f, 0.625000f, 0.875000f,
+ 0.701785f, -0.657349f, -0.298591f, 0.664366f, -0.694254f, -0.276819f, 0.750000f, 0.875000f,
+ 0.623438f, -0.675000f, -0.421875f, 0.830544f, 0.000000f, -0.556953f, 0.625000f, 1.000000f,
+ 0.773281f, -0.632227f, -0.160771f, 0.624057f, -0.771346f, -0.124811f, 0.875000f, 0.750000f,
+ 0.701785f, -0.657349f, -0.298591f, 0.664366f, -0.694254f, -0.276819f, 0.750000f, 0.875000f,
+ 0.745527f, -0.657349f, -0.155001f, 0.706632f, -0.693324f, -0.141326f, 0.875000f, 0.875000f,
+ 0.760742f, -0.657349f, -0.000000f, 0.720596f, -0.693356f, 0.000000f, 1.000000f, 0.875000f,
+ 0.735000f, -0.675000f, -0.152812f, 0.980581f, 0.000000f, -0.196116f, 0.875000f, 1.000000f,
+ -0.800000f, 0.262500f, -0.000000f, 0.000000f, -1.000000f, 0.000000f, 0.000000f, 0.000000f,
+ -0.750000f, 0.375000f, -0.000000f, 0.000000f, 1.000000f, 0.000000f, 1.000000f, 0.000000f,
+ -1.350000f, 0.150000f, -0.000000f, 1.000000f, 0.000000f, -0.000000f, 0.000000f, 1.000000f,
+ -1.500000f, 0.150000f, -0.000000f, -1.000000f, -0.000000f, -0.000000f, 1.000000f, 1.000000f,
+ -0.775000f, 0.318750f, 0.112500f, 0.000000f, -0.000000f, 1.000000f, 0.500000f, 0.000000f,
+ -1.206250f, 0.248438f, -0.000000f, 0.148341f, -0.988936f, 0.000000f, 0.000000f, 0.500000f,
+ -1.259375f, 0.297656f, 0.112500f, 0.000000f, 0.000000f, 1.000000f, 0.500000f, 0.500000f,
+ -1.312500f, 0.346875f, -0.000000f, -0.219512f, 0.975610f, 0.000000f, 1.000000f, 0.500000f,
+ -1.425000f, 0.150000f, 0.112500f, 0.000000f, 0.000000f, 1.000000f, 0.500000f, 1.000000f,
+ -0.792188f, 0.280078f, 0.084375f, 0.000000f, -0.871576f, 0.490261f, 0.250000f, 0.000000f,
+ -1.033594f, 0.260742f, -0.000000f, 0.025853f, -0.999666f, 0.000000f, 0.000000f, 0.250000f,
+ -1.040552f, 0.278046f, 0.084375f, 0.024475f, -0.872955f, 0.487186f, 0.250000f, 0.250000f,
+ -1.055859f, 0.316113f, 0.112500f, 0.000000f, 0.000000f, 1.000000f, 0.500000f, 0.250000f,
+ -1.222852f, 0.263818f, 0.084375f, 0.140206f, -0.856814f, 0.496198f, 0.250000f, 0.500000f,
+ -0.797852f, 0.267334f, 0.049219f, 0.000000f, -0.976900f, 0.213697f, 0.125000f, 0.000000f,
+ -0.924121f, 0.262280f, -0.000000f, 0.005639f, -0.999984f, 0.000000f, 0.000000f, 0.125000f,
+ -0.924192f, 0.267105f, 0.049219f, 0.005639f, -0.976986f, 0.213230f, 0.125000f, 0.125000f,
+ -0.924381f, 0.279824f, 0.084375f, 0.005349f, -0.872040f, 0.489406f, 0.250000f, 0.125000f,
+ -1.035507f, 0.265501f, 0.049219f, 0.025883f, -0.976801f, 0.212578f, 0.125000f, 0.250000f,
+ -0.784180f, 0.298096f, 0.105469f, 0.000000f, -0.579524f, 0.814955f, 0.375000f, 0.000000f,
+ -0.924381f, 0.279824f, 0.084375f, 0.005349f, -0.872040f, 0.489406f, 0.250000f, 0.125000f,
+ -0.924646f, 0.297807f, 0.105469f, 0.003808f, -0.580397f, 0.814324f, 0.375000f, 0.125000f,
+ -0.924951f, 0.318420f, 0.112500f, 0.000000f, -0.000000f, 1.000000f, 0.500000f, 0.125000f,
+ -1.047684f, 0.295782f, 0.105469f, 0.017593f, -0.580836f, 0.813830f, 0.375000f, 0.250000f,
+ -1.035507f, 0.265501f, 0.049219f, 0.025883f, -0.976801f, 0.212578f, 0.125000f, 0.250000f,
+ -1.127832f, 0.256567f, -0.000000f, 0.068483f, -0.997652f, 0.000000f, 0.000000f, 0.375000f,
+ -1.131235f, 0.261146f, 0.049219f, 0.068616f, -0.974722f, 0.212623f, 0.125000f, 0.375000f,
+ -1.140207f, 0.273219f, 0.084375f, 0.065384f, -0.869606f, 0.489398f, 0.250000f, 0.375000f,
+ -1.210815f, 0.252667f, 0.049219f, 0.148598f, -0.965146f, 0.215435f, 0.125000f, 0.500000f,
+ -1.047684f, 0.295782f, 0.105469f, 0.017593f, -0.580836f, 0.813830f, 0.375000f, 0.250000f,
+ -1.140207f, 0.273219f, 0.084375f, 0.065384f, -0.869606f, 0.489398f, 0.250000f, 0.375000f,
+ -1.152891f, 0.290286f, 0.105469f, 0.046704f, -0.577184f, 0.815278f, 0.375000f, 0.375000f,
+ -1.167432f, 0.309851f, 0.112500f, 0.000000f, 0.000000f, 1.000000f, 0.500000f, 0.375000f,
+ -1.239868f, 0.279584f, 0.105469f, 0.099732f, -0.560496f, 0.822130f, 0.375000f, 0.500000f,
+ -0.757812f, 0.357422f, 0.084375f, 0.000000f, 0.871576f, 0.490261f, 0.750000f, 0.000000f,
+ -1.055859f, 0.316113f, 0.112500f, 0.000000f, 0.000000f, 1.000000f, 0.500000f, 0.250000f,
+ -1.071167f, 0.354181f, 0.084375f, -0.031326f, 0.872200f, 0.488145f, 0.750000f, 0.250000f,
+ -1.078125f, 0.371484f, -0.000000f, -0.037474f, 0.999298f, 0.000000f, 1.000000f, 0.250000f,
+ -1.295898f, 0.331494f, 0.084375f, -0.180412f, 0.841138f, 0.509842f, 0.750000f, 0.500000f,
+ -0.765820f, 0.339404f, 0.105469f, 0.000000f, 0.579524f, 0.814955f, 0.625000f, 0.000000f,
+ -0.924951f, 0.318420f, 0.112500f, 0.000000f, -0.000000f, 1.000000f, 0.500000f, 0.125000f,
+ -0.925256f, 0.339034f, 0.105469f, -0.004308f, 0.580398f, 0.814321f, 0.625000f, 0.125000f,
+ -0.925522f, 0.357017f, 0.084375f, -0.006764f, 0.872035f, 0.489397f, 0.750000f, 0.125000f,
+ -1.064035f, 0.336445f, 0.105469f, -0.020004f, 0.580169f, 0.814250f, 0.625000f, 0.250000f,
+ -0.752148f, 0.370166f, 0.049219f, 0.000000f, 0.976900f, 0.213697f, 0.875000f, 0.000000f,
+ -0.925522f, 0.357017f, 0.084375f, -0.006764f, 0.872035f, 0.489398f, 0.750000f, 0.125000f,
+ -0.925710f, 0.369736f, 0.049219f, -0.007768f, 0.976972f, 0.213224f, 0.875000f, 0.125000f,
+ -0.925781f, 0.374561f, -0.000000f, -0.008035f, 0.999968f, 0.000000f, 1.000000f, 0.125000f,
+ -1.076211f, 0.366726f, 0.049219f, -0.036201f, 0.976302f, 0.213364f, 0.875000f, 0.250000f,
+ -1.064035f, 0.336445f, 0.105469f, -0.020004f, 0.580169f, 0.814250f, 0.625000f, 0.250000f,
+ -1.167432f, 0.309851f, 0.112500f, 0.000000f, 0.000000f, 1.000000f, 0.500000f, 0.375000f,
+ -1.181972f, 0.329416f, 0.105469f, -0.053190f, 0.573905f, 0.817192f, 0.625000f, 0.375000f,
+ -1.194656f, 0.346484f, 0.084375f, -0.084210f, 0.865181f, 0.494338f, 0.750000f, 0.375000f,
+ -1.278882f, 0.315729f, 0.105469f, -0.112865f, 0.550447f, 0.827206f, 0.625000f, 0.500000f,
+ -1.076211f, 0.366726f, 0.049219f, -0.036201f, 0.976302f, 0.213364f, 0.875000f, 0.250000f,
+ -1.194656f, 0.346484f, 0.084375f, -0.084210f, 0.865181f, 0.494339f, 0.750000f, 0.375000f,
+ -1.203628f, 0.358556f, 0.049219f, -0.097201f, 0.971485f, 0.216262f, 0.875000f, 0.375000f,
+ -1.207031f, 0.363135f, -0.000000f, -0.100735f, 0.994913f, 0.000000f, 1.000000f, 0.375000f,
+ -1.307935f, 0.342645f, 0.049219f, -0.211316f, 0.951005f, 0.225686f, 0.875000f, 0.500000f,
+ -1.222852f, 0.263818f, 0.084375f, 0.140206f, -0.856814f, 0.496198f, 0.250000f, 0.500000f,
+ -1.313281f, 0.215039f, -0.000000f, 0.546885f, -0.837207f, 0.000000f, 0.000000f, 0.750000f,
+ -1.335132f, 0.225201f, 0.084375f, 0.483435f, -0.674422f, 0.558073f, 0.250000f, 0.750000f,
+ -1.383203f, 0.247559f, 0.112500f, 0.000000f, 0.000000f, 1.000000f, 0.500000f, 0.750000f,
+ -1.373438f, 0.150000f, 0.084375f, 0.800000f, 0.000000f, 0.600000f, 0.250000f, 1.000000f,
+ -1.210815f, 0.252667f, 0.049219f, 0.148598f, -0.965146f, 0.215435f, 0.125000f, 0.500000f,
+ -1.268262f, 0.235034f, -0.000000f, 0.293811f, -0.955864f, 0.000000f, 0.000000f, 0.625000f,
+ -1.273687f, 0.238688f, 0.049219f, 0.293318f, -0.928882f, 0.226146f, 0.125000f, 0.625000f,
+ -1.287991f, 0.248321f, 0.084375f, 0.274428f, -0.809737f, 0.518667f, 0.250000f, 0.625000f,
+ -1.319290f, 0.217834f, 0.049219f, 0.540058f, -0.804093f, 0.248541f, 0.125000f, 0.750000f,
+ -1.239868f, 0.279584f, 0.105469f, 0.099732f, -0.560497f, 0.822130f, 0.375000f, 0.500000f,
+ -1.287991f, 0.248321f, 0.084375f, 0.274428f, -0.809736f, 0.518669f, 0.250000f, 0.625000f,
+ -1.308214f, 0.261940f, 0.105469f, 0.187187f, -0.510240f, 0.839414f, 0.375000f, 0.625000f,
+ -1.331396f, 0.277551f, 0.112500f, 0.000000f, 0.000000f, 1.000000f, 0.500000f, 0.625000f,
+ -1.357529f, 0.235618f, 0.105469f, 0.310389f, -0.395752f, 0.864314f, 0.375000f, 0.750000f,
+ -1.319290f, 0.217834f, 0.049219f, 0.540058f, -0.804093f, 0.248541f, 0.125000f, 0.750000f,
+ -1.340723f, 0.187134f, -0.000000f, 0.868244f, -0.496138f, 0.000000f, 0.000000f, 0.875000f,
+ -1.347063f, 0.188729f, 0.049219f, 0.840433f, -0.466702f, 0.275432f, 0.125000f, 0.875000f,
+ -1.363779f, 0.192936f, 0.084375f, 0.713833f, -0.367656f, 0.596046f, 0.250000f, 0.875000f,
+ -1.356445f, 0.150000f, 0.049219f, 0.960000f, 0.000000f, 0.280000f, 0.125000f, 1.000000f,
+ -1.357529f, 0.235618f, 0.105469f, 0.310389f, -0.395752f, 0.864314f, 0.375000f, 0.750000f,
+ -1.363779f, 0.192936f, 0.084375f, 0.713834f, -0.367656f, 0.596045f, 0.250000f, 0.875000f,
+ -1.387411f, 0.198883f, 0.105469f, 0.426484f, -0.201800f, 0.881696f, 0.375000f, 0.875000f,
+ -1.414502f, 0.205701f, 0.112500f, 0.000000f, 0.000000f, 1.000000f, 0.500000f, 0.875000f,
+ -1.397461f, 0.150000f, 0.105469f, 0.470589f, 0.000000f, 0.882353f, 0.375000f, 1.000000f,
+ -1.295898f, 0.331494f, 0.084375f, -0.180412f, 0.841138f, 0.509842f, 0.750000f, 0.500000f,
+ -1.383203f, 0.247559f, 0.112500f, 0.000000f, 0.000000f, 1.000000f, 0.500000f, 0.750000f,
+ -1.431274f, 0.269916f, 0.084375f, -0.562646f, 0.585663f, 0.583462f, 0.750000f, 0.750000f,
+ -1.453125f, 0.280078f, -0.000000f, -0.711485f, 0.702701f, 0.000000f, 1.000000f, 0.750000f,
+ -1.476562f, 0.150000f, 0.084375f, -0.800000f, 0.000000f, 0.600000f, 0.750000f, 1.000000f,
+ -1.278882f, 0.315729f, 0.105469f, -0.112865f, 0.550447f, 0.827206f, 0.625000f, 0.500000f,
+ -1.331396f, 0.277551f, 0.112500f, 0.000000f, 0.000000f, 1.000000f, 0.500000f, 0.625000f,
+ -1.354579f, 0.293163f, 0.105469f, -0.207595f, 0.488130f, 0.847722f, 0.625000f, 0.625000f,
+ -1.374802f, 0.306782f, 0.084375f, -0.343732f, 0.765920f, 0.543338f, 0.750000f, 0.625000f,
+ -1.408878f, 0.259499f, 0.105469f, -0.330606f, 0.361483f, 0.871797f, 0.625000f, 0.750000f,
+ -1.307935f, 0.342645f, 0.049219f, -0.211317f, 0.951005f, 0.225686f, 0.875000f, 0.500000f,
+ -1.374802f, 0.306782f, 0.084375f, -0.343732f, 0.765919f, 0.543338f, 0.750000f, 0.625000f,
+ -1.389106f, 0.316415f, 0.049219f, -0.407011f, 0.879764f, 0.245675f, 0.875000f, 0.625000f,
+ -1.394531f, 0.320068f, -0.000000f, -0.424434f, 0.905459f, 0.000000f, 1.000000f, 0.625000f,
+ -1.447116f, 0.277283f, 0.049219f, -0.680178f, 0.681081f, 0.271085f, 0.875000f, 0.750000f,
+ -1.408878f, 0.259499f, 0.105469f, -0.330606f, 0.361483f, 0.871797f, 0.625000f, 0.750000f,
+ -1.414502f, 0.205701f, 0.112500f, 0.000000f, 0.000000f, 1.000000f, 0.500000f, 0.875000f,
+ -1.441593f, 0.212518f, 0.105469f, -0.434397f, 0.175246f, 0.883509f, 0.625000f, 0.875000f,
+ -1.465225f, 0.218465f, 0.084375f, -0.745462f, 0.283642f, 0.603187f, 0.750000f, 0.875000f,
+ -1.452539f, 0.150000f, 0.105469f, -0.470588f, 0.000000f, 0.882353f, 0.625000f, 1.000000f,
+ -1.447116f, 0.277283f, 0.049219f, -0.680178f, 0.681081f, 0.271085f, 0.875000f, 0.750000f,
+ -1.465225f, 0.218465f, 0.084375f, -0.745462f, 0.283642f, 0.603187f, 0.750000f, 0.875000f,
+ -1.481941f, 0.222672f, 0.049219f, -0.900243f, 0.331346f, 0.282440f, 0.875000f, 0.875000f,
+ -1.488281f, 0.224268f, -0.000000f, -0.940042f, 0.341058f, 0.000000f, 1.000000f, 0.875000f,
+ -1.493555f, 0.150000f, 0.049219f, -0.960000f, 0.000000f, 0.280000f, 0.875000f, 1.000000f,
+ -0.750000f, 0.375000f, -0.000000f, 0.000000f, 1.000000f, 0.000000f, 0.000000f, 0.000000f,
+ -0.800000f, 0.262500f, -0.000000f, 0.000000f, -1.000000f, 0.000000f, 1.000000f, 0.000000f,
+ -1.500000f, 0.150000f, -0.000000f, -1.000000f, -0.000000f, -0.000000f, 0.000000f, 1.000000f,
+ -1.350000f, 0.150000f, -0.000000f, 1.000000f, 0.000000f, -0.000000f, 1.000000f, 1.000000f,
+ -0.775000f, 0.318750f, -0.112500f, -0.000000f, 0.000000f, -1.000000f, 0.500000f, 0.000000f,
+ -1.312500f, 0.346875f, -0.000000f, -0.219512f, 0.975610f, 0.000000f, 0.000000f, 0.500000f,
+ -1.259375f, 0.297656f, -0.112500f, 0.000000f, -0.000000f, -1.000000f, 0.500000f, 0.500000f,
+ -1.206250f, 0.248438f, -0.000000f, 0.148341f, -0.988936f, 0.000000f, 1.000000f, 0.500000f,
+ -1.425000f, 0.150000f, -0.112500f, 0.000000f, 0.000000f, -1.000000f, 0.500000f, 1.000000f,
+ -0.757812f, 0.357422f, -0.084375f, 0.000000f, 0.871576f, -0.490261f, 0.250000f, 0.000000f,
+ -1.078125f, 0.371484f, -0.000000f, -0.037474f, 0.999298f, 0.000000f, 0.000000f, 0.250000f,
+ -1.071167f, 0.354181f, -0.084375f, -0.031612f, 0.872168f, -0.488184f, 0.250000f, 0.250000f,
+ -1.055859f, 0.316113f, -0.112500f, 0.000000f, -0.000000f, -1.000000f, 0.500000f, 0.250000f,
+ -1.295898f, 0.331494f, -0.084375f, -0.182095f, 0.840441f, -0.510393f, 0.250000f, 0.500000f,
+ -0.752148f, 0.370166f, -0.049219f, 0.000000f, 0.976900f, -0.213697f, 0.125000f, 0.000000f,
+ -0.925781f, 0.374561f, -0.000000f, -0.008035f, 0.999968f, 0.000000f, 0.000000f, 0.125000f,
+ -0.925710f, 0.369736f, -0.049219f, -0.007783f, 0.976972f, -0.213224f, 0.125000f, 0.125000f,
+ -0.925522f, 0.357017f, -0.084375f, -0.006764f, 0.872035f, -0.489398f, 0.250000f, 0.125000f,
+ -1.076211f, 0.366726f, -0.049219f, -0.036277f, 0.976298f, -0.213369f, 0.125000f, 0.250000f,
+ -0.765820f, 0.339404f, -0.105469f, 0.000000f, 0.579524f, -0.814955f, 0.375000f, 0.000000f,
+ -0.925522f, 0.357017f, -0.084375f, -0.006764f, 0.872035f, -0.489397f, 0.250000f, 0.125000f,
+ -0.925256f, 0.339034f, -0.105469f, -0.004329f, 0.580399f, -0.814321f, 0.375000f, 0.125000f,
+ -0.924951f, 0.318420f, -0.112500f, 0.000000f, 0.000000f, -1.000000f, 0.500000f, 0.125000f,
+ -1.064035f, 0.336445f, -0.105469f, -0.020108f, 0.580140f, -0.814268f, 0.375000f, 0.250000f,
+ -1.076211f, 0.366726f, -0.049219f, -0.036277f, 0.976298f, -0.213369f, 0.125000f, 0.250000f,
+ -1.207031f, 0.363135f, -0.000000f, -0.100735f, 0.994913f, 0.000000f, 0.000000f, 0.375000f,
+ -1.203628f, 0.358556f, -0.049219f, -0.097411f, 0.971458f, -0.216288f, 0.125000f, 0.375000f,
+ -1.194656f, 0.346484f, -0.084375f, -0.084210f, 0.865181f, -0.494339f, 0.250000f, 0.375000f,
+ -1.307935f, 0.342645f, -0.049219f, -0.211778f, 0.950885f, -0.225758f, 0.125000f, 0.500000f,
+ -1.064035f, 0.336445f, -0.105469f, -0.020108f, 0.580141f, -0.814268f, 0.375000f, 0.250000f,
+ -1.194656f, 0.346484f, -0.084375f, -0.084210f, 0.865181f, -0.494338f, 0.250000f, 0.375000f,
+ -1.181972f, 0.329416f, -0.105469f, -0.053470f, 0.573763f, -0.817274f, 0.375000f, 0.375000f,
+ -1.167432f, 0.309851f, -0.112500f, 0.000000f, -0.000000f, -1.000000f, 0.500000f, 0.375000f,
+ -1.278882f, 0.315729f, -0.105469f, -0.113428f, 0.550012f, -0.827418f, 0.375000f, 0.500000f,
+ -0.792188f, 0.280078f, -0.084375f, -0.000000f, -0.871576f, -0.490261f, 0.750000f, 0.000000f,
+ -1.055859f, 0.316113f, -0.112500f, 0.000000f, -0.000000f, -1.000000f, 0.500000f, 0.250000f,
+ -1.040552f, 0.278046f, -0.084375f, 0.024919f, -0.872908f, -0.487248f, 0.750000f, 0.250000f,
+ -1.033594f, 0.260742f, -0.000000f, 0.025853f, -0.999666f, 0.000000f, 1.000000f, 0.250000f,
+ -1.222852f, 0.263818f, -0.084375f, 0.142803f, -0.855858f, -0.497107f, 0.750000f, 0.500000f,
+ -0.784180f, 0.298096f, -0.105469f, -0.000000f, -0.579524f, -0.814955f, 0.625000f, 0.000000f,
+ -0.924951f, 0.318420f, -0.112500f, 0.000000f, 0.000000f, -1.000000f, 0.500000f, 0.125000f,
+ -0.924646f, 0.297807f, -0.105469f, 0.003835f, -0.580398f, -0.814324f, 0.625000f, 0.125000f,
+ -0.924381f, 0.279824f, -0.084375f, 0.005349f, -0.872040f, -0.489406f, 0.750000f, 0.125000f,
+ -1.047684f, 0.295782f, -0.105469f, 0.017725f, -0.580800f, -0.813853f, 0.625000f, 0.250000f,
+ -0.797852f, 0.267334f, -0.049219f, -0.000000f, -0.976900f, -0.213697f, 0.875000f, 0.000000f,
+ -0.924381f, 0.279824f, -0.084375f, 0.005349f, -0.872040f, -0.489406f, 0.750000f, 0.125000f,
+ -0.924192f, 0.267105f, -0.049219f, 0.005668f, -0.976986f, -0.213230f, 0.875000f, 0.125000f,
+ -0.924121f, 0.262280f, -0.000000f, 0.005639f, -0.999984f, 0.000000f, 1.000000f, 0.125000f,
+ -1.035507f, 0.265501f, -0.049219f, 0.026018f, -0.976795f, -0.212588f, 0.875000f, 0.250000f,
+ -1.047684f, 0.295782f, -0.105469f, 0.017725f, -0.580800f, -0.813853f, 0.625000f, 0.250000f,
+ -1.167432f, 0.309851f, -0.112500f, 0.000000f, -0.000000f, -1.000000f, 0.500000f, 0.375000f,
+ -1.152891f, 0.290286f, -0.105469f, 0.047058f, -0.577006f, -0.815383f, 0.625000f, 0.375000f,
+ -1.140207f, 0.273219f, -0.084375f, 0.065384f, -0.869606f, -0.489398f, 0.750000f, 0.375000f,
+ -1.239868f, 0.279584f, -0.105469f, 0.100453f, -0.559950f, -0.822414f, 0.625000f, 0.500000f,
+ -1.035507f, 0.265501f, -0.049219f, 0.026018f, -0.976795f, -0.212588f, 0.875000f, 0.250000f,
+ -1.140207f, 0.273219f, -0.084375f, 0.065384f, -0.869606f, -0.489398f, 0.750000f, 0.375000f,
+ -1.131235f, 0.261146f, -0.049219f, 0.068986f, -0.974686f, -0.212671f, 0.875000f, 0.375000f,
+ -1.127832f, 0.256567f, -0.000000f, 0.068483f, -0.997652f, 0.000000f, 1.000000f, 0.375000f,
+ -1.210815f, 0.252667f, -0.049219f, 0.149411f, -0.964989f, -0.215573f, 0.875000f, 0.500000f,
+ -1.295898f, 0.331494f, -0.084375f, -0.182096f, 0.840441f, -0.510393f, 0.250000f, 0.500000f,
+ -1.453125f, 0.280078f, -0.000000f, -0.711485f, 0.702701f, 0.000000f, 0.000000f, 0.750000f,
+ -1.431274f, 0.269916f, -0.084375f, -0.565483f, 0.582130f, -0.584255f, 0.250000f, 0.750000f,
+ -1.383203f, 0.247559f, -0.112500f, 0.000000f, -0.000000f, -1.000000f, 0.500000f, 0.750000f,
+ -1.476562f, 0.150000f, -0.084375f, -0.800000f, -0.000000f, -0.600000f, 0.250000f, 1.000000f,
+ -1.307935f, 0.342645f, -0.049219f, -0.211779f, 0.950885f, -0.225758f, 0.125000f, 0.500000f,
+ -1.394531f, 0.320068f, -0.000000f, -0.424434f, 0.905459f, 0.000000f, 0.000000f, 0.625000f,
+ -1.389106f, 0.316415f, -0.049219f, -0.407810f, 0.879359f, -0.245803f, 0.125000f, 0.625000f,
+ -1.374802f, 0.306782f, -0.084375f, -0.343732f, 0.765919f, -0.543338f, 0.250000f, 0.625000f,
+ -1.447116f, 0.277283f, -0.049219f, -0.681018f, 0.680194f, -0.271202f, 0.125000f, 0.750000f,
+ -1.278882f, 0.315729f, -0.105469f, -0.113428f, 0.550012f, -0.827418f, 0.375000f, 0.500000f,
+ -1.374802f, 0.306782f, -0.084375f, -0.343732f, 0.765920f, -0.543338f, 0.250000f, 0.625000f,
+ -1.354579f, 0.293163f, -0.105469f, -0.208448f, 0.487192f, -0.848053f, 0.375000f, 0.625000f,
+ -1.331396f, 0.277551f, -0.112500f, 0.000000f, -0.000000f, -1.000000f, 0.500000f, 0.625000f,
+ -1.408878f, 0.259499f, -0.105469f, -0.331408f, 0.360091f, -0.872068f, 0.375000f, 0.750000f,
+ -1.447116f, 0.277283f, -0.049219f, -0.681018f, 0.680194f, -0.271202f, 0.125000f, 0.750000f,
+ -1.488281f, 0.224268f, -0.000000f, -0.940042f, 0.341058f, 0.000000f, 0.000000f, 0.875000f,
+ -1.481941f, 0.222672f, -0.049219f, -0.900521f, 0.330571f, -0.282462f, 0.125000f, 0.875000f,
+ -1.465225f, 0.218465f, -0.084375f, -0.745462f, 0.283642f, -0.603187f, 0.250000f, 0.875000f,
+ -1.493555f, 0.150000f, -0.049219f, -0.960000f, -0.000000f, -0.280000f, 0.125000f, 1.000000f,
+ -1.408878f, 0.259499f, -0.105469f, -0.331408f, 0.360091f, -0.872068f, 0.375000f, 0.750000f,
+ -1.465225f, 0.218465f, -0.084375f, -0.745462f, 0.283642f, -0.603187f, 0.250000f, 0.875000f,
+ -1.441593f, 0.212518f, -0.105469f, -0.434695f, 0.174222f, -0.883565f, 0.375000f, 0.875000f,
+ -1.414502f, 0.205701f, -0.112500f, 0.000000f, -0.000000f, -1.000000f, 0.500000f, 0.875000f,
+ -1.452539f, 0.150000f, -0.105469f, -0.470588f, -0.000000f, -0.882353f, 0.375000f, 1.000000f,
+ -1.222852f, 0.263818f, -0.084375f, 0.142803f, -0.855858f, -0.497107f, 0.750000f, 0.500000f,
+ -1.383203f, 0.247559f, -0.112500f, 0.000000f, -0.000000f, -1.000000f, 0.500000f, 0.750000f,
+ -1.335132f, 0.225201f, -0.084375f, 0.489273f, -0.668472f, -0.560140f, 0.750000f, 0.750000f,
+ -1.313281f, 0.215039f, -0.000000f, 0.546885f, -0.837207f, 0.000000f, 1.000000f, 0.750000f,
+ -1.373438f, 0.150000f, -0.084375f, 0.800000f, 0.000000f, -0.600000f, 0.750000f, 1.000000f,
+ -1.239868f, 0.279584f, -0.105469f, 0.100453f, -0.559950f, -0.822414f, 0.625000f, 0.500000f,
+ -1.331396f, 0.277551f, -0.112500f, 0.000000f, -0.000000f, -1.000000f, 0.500000f, 0.625000f,
+ -1.308214f, 0.261940f, -0.105469f, 0.188332f, -0.509017f, -0.839900f, 0.625000f, 0.625000f,
+ -1.287991f, 0.248321f, -0.084375f, 0.274428f, -0.809736f, -0.518669f, 0.750000f, 0.625000f,
+ -1.357529f, 0.235618f, -0.105469f, 0.311577f, -0.393781f, -0.864787f, 0.625000f, 0.750000f,
+ -1.210815f, 0.252667f, -0.049219f, 0.149411f, -0.964989f, -0.215573f, 0.875000f, 0.500000f,
+ -1.287991f, 0.248321f, -0.084375f, 0.274428f, -0.809737f, -0.518667f, 0.750000f, 0.625000f,
+ -1.273687f, 0.238688f, -0.049219f, 0.294850f, -0.928329f, -0.226427f, 0.875000f, 0.625000f,
+ -1.268262f, 0.235034f, -0.000000f, 0.293811f, -0.955864f, 0.000000f, 1.000000f, 0.625000f,
+ -1.319290f, 0.217834f, -0.049219f, 0.542231f, -0.802508f, -0.248931f, 0.875000f, 0.750000f,
+ -1.357529f, 0.235618f, -0.105469f, 0.311577f, -0.393780f, -0.864787f, 0.625000f, 0.750000f,
+ -1.414502f, 0.205701f, -0.112500f, 0.000000f, -0.000000f, -1.000000f, 0.500000f, 0.875000f,
+ -1.387411f, 0.198883f, -0.105469f, 0.426972f, -0.200197f, -0.881825f, 0.625000f, 0.875000f,
+ -1.363779f, 0.192936f, -0.084375f, 0.713834f, -0.367656f, -0.596045f, 0.750000f, 0.875000f,
+ -1.397461f, 0.150000f, -0.105469f, 0.470589f, 0.000000f, -0.882353f, 0.625000f, 1.000000f,
+ -1.319290f, 0.217834f, -0.049219f, 0.542231f, -0.802508f, -0.248931f, 0.875000f, 0.750000f,
+ -1.363779f, 0.192936f, -0.084375f, 0.713833f, -0.367656f, -0.596046f, 0.750000f, 0.875000f,
+ -1.347063f, 0.188729f, -0.049219f, 0.841606f, -0.464481f, -0.275602f, 0.875000f, 0.875000f,
+ -1.340723f, 0.187134f, -0.000000f, 0.868244f, -0.496138f, 0.000000f, 1.000000f, 0.875000f,
+ -1.356445f, 0.150000f, -0.049219f, 0.960000f, 0.000000f, -0.280000f, 0.875000f, 1.000000f,
+ -1.350000f, 0.150000f, -0.000000f, 1.000000f, 0.000000f, -0.000000f, 0.000000f, 0.000000f,
+ -1.500000f, 0.150000f, -0.000000f, -1.000000f, -0.000000f, -0.000000f, 1.000000f, 0.000000f,
+ -1.000000f, -0.300000f, -0.000000f, 0.410365f, 0.911922f, -0.000000f, 0.000000f, 1.000000f,
+ -0.950000f, -0.450000f, -0.000000f, -0.410365f, -0.911922f, -0.000000f, 1.000000f, 1.000000f,
+ -1.425000f, 0.150000f, 0.112500f, 0.000000f, 0.000000f, 1.000000f, 0.500000f, 0.000000f,
+ -1.268750f, -0.075000f, -0.000000f, 0.832050f, 0.554700f, -0.000000f, 0.000000f, 0.500000f,
+ -1.317188f, -0.123047f, 0.112500f, 0.000000f, 0.000000f, 1.000000f, 0.500000f, 0.500000f,
+ -1.365625f, -0.171094f, -0.000000f, -0.743581f, -0.668646f, -0.000000f, 1.000000f, 0.500000f,
+ -0.975000f, -0.375000f, 0.112500f, 0.000000f, 0.000000f, 1.000000f, 0.500000f, 1.000000f,
+ -1.373438f, 0.150000f, 0.084375f, 0.800000f, 0.000000f, 0.600000f, 0.250000f, 0.000000f,
+ -1.330469f, 0.048047f, -0.000000f, 0.945778f, 0.324813f, -0.000000f, 0.000000f, 0.250000f,
+ -1.351770f, 0.038205f, 0.084375f, 0.754441f, 0.269277f, 0.598589f, 0.250000f, 0.250000f,
+ -1.398633f, 0.016553f, 0.112500f, 0.000000f, 0.000000f, 1.000000f, 0.500000f, 0.250000f,
+ -1.283887f, -0.090015f, 0.084375f, 0.678042f, 0.478207f, 0.558191f, 0.250000f, 0.500000f,
+ -1.356445f, 0.150000f, 0.049219f, 0.960000f, 0.000000f, 0.280000f, 0.125000f, 0.000000f,
+ -1.345215f, 0.102979f, -0.000000f, 0.982777f, 0.184796f, -0.000000f, 0.000000f, 0.125000f,
+ -1.351511f, 0.101413f, 0.049219f, 0.943027f, 0.178069f, 0.281055f, 0.125000f, 0.125000f,
+ -1.368111f, 0.097285f, 0.084375f, 0.784625f, 0.149799f, 0.601602f, 0.250000f, 0.125000f,
+ -1.336327f, 0.045340f, 0.049219f, 0.907104f, 0.315107f, 0.279051f, 0.125000f, 0.250000f,
+ -1.397461f, 0.150000f, 0.105469f, 0.470589f, 0.000000f, 0.882353f, 0.375000f, 0.000000f,
+ -1.368111f, 0.097285f, 0.084375f, 0.784624f, 0.149799f, 0.601603f, 0.250000f, 0.125000f,
+ -1.391579f, 0.091449f, 0.105469f, 0.460503f, 0.089006f, 0.883184f, 0.375000f, 0.125000f,
+ -1.418481f, 0.084760f, 0.112500f, 0.000000f, 0.000000f, 1.000000f, 0.500000f, 0.125000f,
+ -1.373604f, 0.028117f, 0.105469f, 0.441858f, 0.163868f, 0.881991f, 0.375000f, 0.250000f,
+ -1.336327f, 0.045340f, 0.049219f, 0.907105f, 0.315106f, 0.279051f, 0.125000f, 0.250000f,
+ -1.305176f, -0.012158f, -0.000000f, 0.895694f, 0.444671f, -0.000000f, 0.000000f, 0.375000f,
+ -1.310318f, -0.015685f, 0.049219f, 0.859856f, 0.433367f, 0.269890f, 0.125000f, 0.375000f,
+ -1.323875f, -0.024981f, 0.084375f, 0.717810f, 0.376810f, 0.585460f, 0.250000f, 0.375000f,
+ -1.272913f, -0.079129f, 0.049219f, 0.801010f, 0.542879f, 0.252321f, 0.125000f, 0.500000f,
+ -1.373604f, 0.028117f, 0.105469f, 0.441858f, 0.163868f, 0.881991f, 0.375000f, 0.250000f,
+ -1.323875f, -0.024981f, 0.084375f, 0.717810f, 0.376810f, 0.585460f, 0.250000f, 0.375000f,
+ -1.343043f, -0.038125f, 0.105469f, 0.423804f, 0.233330f, 0.875184f, 0.375000f, 0.375000f,
+ -1.365015f, -0.053192f, 0.112500f, 0.000000f, 0.000000f, 1.000000f, 0.500000f, 0.375000f,
+ -1.299402f, -0.105405f, 0.105469f, 0.408072f, 0.304992f, 0.860498f, 0.375000f, 0.500000f,
+ -1.476562f, 0.150000f, 0.084375f, -0.800000f, 0.000000f, 0.600000f, 0.750000f, 0.000000f,
+ -1.398633f, 0.016553f, 0.112500f, 0.000000f, 0.000000f, 1.000000f, 0.500000f, 0.250000f,
+ -1.445496f, -0.005099f, 0.084375f, -0.741739f, -0.300819f, 0.599442f, 0.750000f, 0.250000f,
+ -1.466797f, -0.014941f, -0.000000f, -0.923524f, -0.383540f, -0.000000f, 1.000000f, 0.250000f,
+ -1.350488f, -0.156079f, 0.084375f, -0.625724f, -0.540260f, 0.562662f, 0.750000f, 0.500000f,
+ -1.452539f, 0.150000f, 0.105469f, -0.470588f, 0.000000f, 0.882353f, 0.625000f, 0.000000f,
+ -1.418481f, 0.084760f, 0.112500f, 0.000000f, 0.000000f, 1.000000f, 0.500000f, 0.125000f,
+ -1.445384f, 0.078070f, 0.105469f, -0.460057f, -0.090956f, 0.883218f, 0.625000f, 0.125000f,
+ -1.468852f, 0.072234f, 0.084375f, -0.783295f, -0.156125f, 0.601726f, 0.750000f, 0.125000f,
+ -1.423662f, 0.004988f, 0.105469f, -0.437541f, -0.173581f, 0.882285f, 0.625000f, 0.250000f,
+ -1.493555f, 0.150000f, 0.049219f, -0.960000f, 0.000000f, 0.280000f, 0.875000f, 0.000000f,
+ -1.468852f, 0.072234f, 0.084375f, -0.783295f, -0.156125f, 0.601726f, 0.750000f, 0.125000f,
+ -1.485452f, 0.068106f, 0.049219f, -0.940981f, -0.188412f, 0.281170f, 0.875000f, 0.125000f,
+ -1.491748f, 0.066541f, -0.000000f, -0.980463f, -0.196702f, -0.000000f, 1.000000f, 0.125000f,
+ -1.460939f, -0.012235f, 0.049219f, -0.887370f, -0.366235f, 0.280082f, 0.875000f, 0.250000f,
+ -1.423662f, 0.004988f, 0.105469f, -0.437541f, -0.173581f, 0.882285f, 0.625000f, 0.250000f,
+ -1.365015f, -0.053192f, 0.112500f, 0.000000f, 0.000000f, 1.000000f, 0.500000f, 0.375000f,
+ -1.386987f, -0.068259f, 0.105469f, -0.412980f, -0.249957f, 0.875768f, 0.625000f, 0.375000f,
+ -1.406154f, -0.081403f, 0.084375f, -0.685340f, -0.430186f, 0.587579f, 0.750000f, 0.375000f,
+ -1.334973f, -0.140689f, 0.105469f, -0.389863f, -0.324451f, 0.861822f, 0.625000f, 0.500000f,
+ -1.460939f, -0.012235f, 0.049219f, -0.887370f, -0.366235f, 0.280082f, 0.875000f, 0.250000f,
+ -1.406154f, -0.081403f, 0.084375f, -0.685340f, -0.430186f, 0.587580f, 0.750000f, 0.375000f,
+ -1.419711f, -0.090700f, 0.049219f, -0.810168f, -0.519360f, 0.271832f, 0.875000f, 0.375000f,
+ -1.424854f, -0.094226f, -0.000000f, -0.839602f, -0.543202f, -0.000000f, 1.000000f, 0.375000f,
+ -1.361462f, -0.166965f, 0.049219f, -0.722234f, -0.642490f, 0.256095f, 0.875000f, 0.500000f,
+ -1.283887f, -0.090015f, 0.084375f, 0.678042f, 0.478207f, 0.558191f, 0.250000f, 0.500000f,
+ -1.160156f, -0.198047f, -0.000000f, 0.655687f, 0.755033f, -0.000000f, 0.000000f, 0.750000f,
+ -1.165466f, -0.216586f, 0.084375f, 0.553444f, 0.668090f, 0.497350f, 0.250000f, 0.750000f,
+ -1.177148f, -0.257373f, 0.112500f, 0.000000f, 0.000000f, 1.000000f, 0.500000f, 0.750000f,
+ -0.992188f, -0.323438f, 0.084375f, 0.354770f, 0.788378f, 0.502591f, 0.250000f, 1.000000f,
+ -1.272913f, -0.079129f, 0.049219f, 0.801011f, 0.542878f, 0.252321f, 0.125000f, 0.500000f,
+ -1.220605f, -0.137842f, -0.000000f, 0.752687f, 0.658378f, -0.000000f, 0.000000f, 0.625000f,
+ -1.223536f, -0.142460f, 0.049219f, 0.726886f, 0.646097f, 0.232800f, 0.125000f, 0.625000f,
+ -1.231264f, -0.154636f, 0.084375f, 0.623037f, 0.578584f, 0.526370f, 0.250000f, 0.625000f,
+ -1.161617f, -0.203145f, 0.049219f, 0.635572f, 0.742022f, 0.213194f, 0.125000f, 0.750000f,
+ -1.299402f, -0.105405f, 0.105469f, 0.408072f, 0.304992f, 0.860498f, 0.375000f, 0.500000f,
+ -1.231264f, -0.154636f, 0.084375f, 0.623037f, 0.578584f, 0.526370f, 0.250000f, 0.625000f,
+ -1.242188f, -0.171850f, 0.105469f, 0.386230f, 0.377876f, 0.841449f, 0.375000f, 0.625000f,
+ -1.254712f, -0.191583f, 0.112500f, 0.000000f, 0.000000f, 1.000000f, 0.500000f, 0.625000f,
+ -1.170909f, -0.235589f, 0.105469f, 0.355340f, 0.450452f, 0.819040f, 0.375000f, 0.750000f,
+ -1.161617f, -0.203145f, 0.049219f, 0.635572f, 0.742022f, 0.213194f, 0.125000f, 0.750000f,
+ -1.086816f, -0.252979f, -0.000000f, 0.540758f, 0.841178f, -0.000000f, 0.000000f, 0.875000f,
+ -1.086579f, -0.258651f, 0.049219f, 0.525642f, 0.825088f, 0.207198f, 0.125000f, 0.875000f,
+ -1.085954f, -0.273607f, 0.084375f, 0.462854f, 0.744576f, 0.481012f, 0.250000f, 0.875000f,
+ -0.997852f, -0.306445f, 0.049219f, 0.400263f, 0.889473f, 0.220515f, 0.125000f, 1.000000f,
+ -1.170909f, -0.235589f, 0.105469f, 0.355340f, 0.450452f, 0.819040f, 0.375000f, 0.750000f,
+ -1.085954f, -0.273607f, 0.084375f, 0.462854f, 0.744576f, 0.481012f, 0.250000f, 0.875000f,
+ -1.085071f, -0.294750f, 0.105469f, 0.302868f, 0.501527f, 0.810396f, 0.375000f, 0.875000f,
+ -1.084058f, -0.318988f, 0.112500f, 0.000000f, 0.000000f, 1.000000f, 0.500000f, 0.875000f,
+ -0.984180f, -0.347461f, 0.105469f, 0.232611f, 0.516912f, 0.823829f, 0.375000f, 1.000000f,
+ -1.350488f, -0.156079f, 0.084375f, -0.625724f, -0.540260f, 0.562662f, 0.750000f, 0.500000f,
+ -1.177148f, -0.257373f, 0.112500f, 0.000000f, 0.000000f, 1.000000f, 0.500000f, 0.750000f,
+ -1.188831f, -0.298160f, 0.084375f, -0.492641f, -0.706153f, 0.508579f, 0.750000f, 0.750000f,
+ -1.194141f, -0.316699f, -0.000000f, -0.558748f, -0.829337f, -0.000000f, 1.000000f, 0.750000f,
+ -0.957812f, -0.426562f, 0.084375f, -0.354770f, -0.788378f, 0.502591f, 0.750000f, 1.000000f,
+ -1.334973f, -0.140689f, 0.105469f, -0.389864f, -0.324451f, 0.861822f, 0.625000f, 0.500000f,
+ -1.254712f, -0.191583f, 0.112500f, 0.000000f, 0.000000f, 1.000000f, 0.500000f, 0.625000f,
+ -1.267236f, -0.211316f, 0.105469f, -0.362855f, -0.394979f, 0.843995f, 0.625000f, 0.625000f,
+ -1.278160f, -0.228531f, 0.084375f, -0.558837f, -0.634504f, 0.533952f, 0.750000f, 0.625000f,
+ -1.183388f, -0.279157f, 0.105469f, -0.331427f, -0.460343f, 0.823553f, 0.625000f, 0.750000f,
+ -1.361462f, -0.166965f, 0.049219f, -0.722234f, -0.642490f, 0.256095f, 0.875000f, 0.500000f,
+ -1.278160f, -0.228531f, 0.084375f, -0.558837f, -0.634504f, 0.533953f, 0.750000f, 0.625000f,
+ -1.285887f, -0.240706f, 0.049219f, -0.632854f, -0.736497f, 0.238887f, 0.875000f, 0.625000f,
+ -1.288818f, -0.245325f, -0.000000f, -0.647649f, -0.761939f, -0.000000f, 1.000000f, 0.625000f,
+ -1.192680f, -0.311601f, 0.049219f, -0.548245f, -0.806248f, 0.222240f, 0.875000f, 0.750000f,
+ -1.183388f, -0.279157f, 0.105469f, -0.331427f, -0.460343f, 0.823553f, 0.625000f, 0.750000f,
+ -1.084058f, -0.318988f, 0.112500f, 0.000000f, 0.000000f, 1.000000f, 0.500000f, 0.875000f,
+ -1.083045f, -0.343226f, 0.105469f, -0.286990f, -0.503756f, 0.814780f, 0.625000f, 0.875000f,
+ -1.082161f, -0.364370f, 0.084375f, -0.423555f, -0.760495f, 0.492187f, 0.750000f, 0.875000f,
+ -0.965820f, -0.402539f, 0.105469f, -0.232611f, -0.516913f, 0.823829f, 0.625000f, 1.000000f,
+ -1.192680f, -0.311601f, 0.049219f, -0.548245f, -0.806248f, 0.222240f, 0.875000f, 0.750000f,
+ -1.082161f, -0.364370f, 0.084375f, -0.423555f, -0.760495f, 0.492188f, 0.750000f, 0.875000f,
+ -1.081536f, -0.379325f, 0.049219f, -0.470388f, -0.855760f, 0.215428f, 0.875000f, 0.875000f,
+ -1.081299f, -0.384998f, -0.000000f, -0.479572f, -0.877503f, -0.000000f, 1.000000f, 0.875000f,
+ -0.952148f, -0.443555f, 0.049219f, -0.400263f, -0.889473f, 0.220515f, 0.875000f, 1.000000f,
+ -1.500000f, 0.150000f, -0.000000f, -1.000000f, -0.000000f, -0.000000f, 0.000000f, 0.000000f,
+ -1.350000f, 0.150000f, -0.000000f, 1.000000f, 0.000000f, -0.000000f, 1.000000f, 0.000000f,
+ -0.950000f, -0.450000f, -0.000000f, -0.410365f, -0.911922f, -0.000000f, 0.000000f, 1.000000f,
+ -1.000000f, -0.300000f, -0.000000f, 0.410365f, 0.911922f, -0.000000f, 1.000000f, 1.000000f,
+ -1.425000f, 0.150000f, -0.112500f, 0.000000f, 0.000000f, -1.000000f, 0.500000f, 0.000000f,
+ -1.365625f, -0.171094f, -0.000000f, -0.743581f, -0.668646f, -0.000000f, 0.000000f, 0.500000f,
+ -1.317188f, -0.123047f, -0.112500f, 0.000000f, 0.000000f, -1.000000f, 0.500000f, 0.500000f,
+ -1.268750f, -0.075000f, -0.000000f, 0.832050f, 0.554700f, -0.000000f, 1.000000f, 0.500000f,
+ -0.975000f, -0.375000f, -0.112500f, 0.000000f, 0.000000f, -1.000000f, 0.500000f, 1.000000f,
+ -1.476562f, 0.150000f, -0.084375f, -0.800000f, -0.000000f, -0.600000f, 0.250000f, 0.000000f,
+ -1.466797f, -0.014941f, -0.000000f, -0.923524f, -0.383540f, -0.000000f, 0.000000f, 0.250000f,
+ -1.445496f, -0.005099f, -0.084375f, -0.741200f, -0.302104f, -0.599462f, 0.250000f, 0.250000f,
+ -1.398633f, 0.016553f, -0.112500f, 0.000000f, 0.000000f, -1.000000f, 0.500000f, 0.250000f,
+ -1.350488f, -0.156079f, -0.084375f, -0.623402f, -0.542826f, -0.562770f, 0.250000f, 0.500000f,
+ -1.493555f, 0.150000f, -0.049219f, -0.960000f, -0.000000f, -0.280000f, 0.125000f, 0.000000f,
+ -1.491748f, 0.066541f, -0.000000f, -0.980463f, -0.196702f, -0.000000f, 0.000000f, 0.125000f,
+ -1.485452f, 0.068106f, -0.049219f, -0.940967f, -0.188477f, -0.281171f, 0.125000f, 0.125000f,
+ -1.468852f, 0.072234f, -0.084375f, -0.783295f, -0.156125f, -0.601726f, 0.250000f, 0.125000f,
+ -1.460939f, -0.012235f, -0.049219f, -0.887220f, -0.366595f, -0.280086f, 0.125000f, 0.250000f,
+ -1.452539f, 0.150000f, -0.105469f, -0.470588f, -0.000000f, -0.882353f, 0.375000f, 0.000000f,
+ -1.468852f, 0.072234f, -0.084375f, -0.783295f, -0.156125f, -0.601726f, 0.250000f, 0.125000f,
+ -1.445384f, 0.078070f, -0.105469f, -0.460039f, -0.091036f, -0.883219f, 0.375000f, 0.125000f,
+ -1.418481f, 0.084760f, -0.112500f, 0.000000f, 0.000000f, -1.000000f, 0.500000f, 0.125000f,
+ -1.423662f, 0.004988f, -0.105469f, -0.437356f, -0.173995f, -0.882296f, 0.375000f, 0.250000f,
+ -1.460939f, -0.012235f, -0.049219f, -0.887221f, -0.366595f, -0.280086f, 0.125000f, 0.250000f,
+ -1.424854f, -0.094226f, -0.000000f, -0.839602f, -0.543202f, -0.000000f, 0.000000f, 0.375000f,
+ -1.419711f, -0.090700f, -0.049219f, -0.809767f, -0.519983f, -0.271837f, 0.125000f, 0.375000f,
+ -1.406154f, -0.081403f, -0.084375f, -0.685340f, -0.430186f, -0.587580f, 0.250000f, 0.375000f,
+ -1.361462f, -0.166965f, -0.049219f, -0.721599f, -0.643198f, -0.256108f, 0.125000f, 0.500000f,
+ -1.423662f, 0.004988f, -0.105469f, -0.437356f, -0.173994f, -0.882296f, 0.375000f, 0.250000f,
+ -1.406154f, -0.081403f, -0.084375f, -0.685340f, -0.430186f, -0.587579f, 0.250000f, 0.375000f,
+ -1.386987f, -0.068259f, -0.105469f, -0.412506f, -0.250677f, -0.875785f, 0.375000f, 0.375000f,
+ -1.365015f, -0.053192f, -0.112500f, 0.000000f, 0.000000f, -1.000000f, 0.500000f, 0.375000f,
+ -1.334973f, -0.140689f, -0.105469f, -0.389066f, -0.325292f, -0.861866f, 0.375000f, 0.500000f,
+ -1.373438f, 0.150000f, -0.084375f, 0.800000f, 0.000000f, -0.600000f, 0.750000f, 0.000000f,
+ -1.398633f, 0.016553f, -0.112500f, 0.000000f, 0.000000f, -1.000000f, 0.500000f, 0.250000f,
+ -1.351770f, 0.038205f, -0.084375f, 0.753631f, 0.271366f, -0.598666f, 0.750000f, 0.250000f,
+ -1.330469f, 0.048047f, -0.000000f, 0.945778f, 0.324813f, -0.000000f, 1.000000f, 0.250000f,
+ -1.283887f, -0.090015f, -0.084375f, 0.674847f, 0.482249f, -0.558585f, 0.750000f, 0.500000f,
+ -1.397461f, 0.150000f, -0.105469f, 0.470589f, 0.000000f, -0.882353f, 0.625000f, 0.000000f,
+ -1.418481f, 0.084760f, -0.112500f, 0.000000f, 0.000000f, -1.000000f, 0.500000f, 0.125000f,
+ -1.391579f, 0.091449f, -0.105469f, 0.460478f, 0.089118f, -0.883187f, 0.625000f, 0.125000f,
+ -1.368111f, 0.097285f, -0.084375f, 0.784624f, 0.149799f, -0.601603f, 0.750000f, 0.125000f,
+ -1.373604f, 0.028117f, -0.105469f, 0.441621f, 0.164404f, -0.882010f, 0.625000f, 0.250000f,
+ -1.356445f, 0.150000f, -0.049219f, 0.960000f, 0.000000f, -0.280000f, 0.875000f, 0.000000f,
+ -1.368111f, 0.097285f, -0.084375f, 0.784625f, 0.149799f, -0.601602f, 0.750000f, 0.125000f,
+ -1.351511f, 0.101413f, -0.049219f, 0.942997f, 0.178224f, -0.281057f, 0.875000f, 0.125000f,
+ -1.345215f, 0.102979f, -0.000000f, 0.982777f, 0.184796f, -0.000000f, 1.000000f, 0.125000f,
+ -1.336327f, 0.045340f, -0.049219f, 0.906857f, 0.315800f, -0.279070f, 0.875000f, 0.250000f,
+ -1.373604f, 0.028117f, -0.105469f, 0.441621f, 0.164404f, -0.882010f, 0.625000f, 0.250000f,
+ -1.365015f, -0.053192f, -0.112500f, 0.000000f, 0.000000f, -1.000000f, 0.500000f, 0.375000f,
+ -1.343043f, -0.038125f, -0.105469f, 0.423222f, 0.234233f, -0.875224f, 0.625000f, 0.375000f,
+ -1.323875f, -0.024981f, -0.084375f, 0.717810f, 0.376810f, -0.585460f, 0.750000f, 0.375000f,
+ -1.299402f, -0.105405f, -0.105469f, 0.407093f, 0.306052f, -0.860586f, 0.625000f, 0.500000f,
+ -1.336327f, 0.045340f, -0.049219f, 0.906858f, 0.315799f, -0.279070f, 0.875000f, 0.250000f,
+ -1.323875f, -0.024981f, -0.084375f, 0.717810f, 0.376810f, -0.585460f, 0.750000f, 0.375000f,
+ -1.310318f, -0.015685f, -0.049219f, 0.859273f, 0.434496f, -0.269932f, 0.875000f, 0.375000f,
+ -1.305176f, -0.012158f, -0.000000f, 0.895694f, 0.444671f, -0.000000f, 1.000000f, 0.375000f,
+ -1.272913f, -0.079129f, -0.049219f, 0.800087f, 0.544204f, -0.252394f, 0.875000f, 0.500000f,
+ -1.350488f, -0.156079f, -0.084375f, -0.623402f, -0.542826f, -0.562770f, 0.250000f, 0.500000f,
+ -1.194141f, -0.316699f, -0.000000f, -0.558748f, -0.829337f, -0.000000f, 0.000000f, 0.750000f,
+ -1.188831f, -0.298160f, -0.084375f, -0.490104f, -0.707628f, -0.508980f, 0.250000f, 0.750000f,
+ -1.177148f, -0.257373f, -0.112500f, 0.000000f, 0.000000f, -1.000000f, 0.500000f, 0.750000f,
+ -0.957812f, -0.426562f, -0.084375f, -0.354770f, -0.788378f, -0.502591f, 0.250000f, 1.000000f,
+ -1.361462f, -0.166965f, -0.049219f, -0.721599f, -0.643198f, -0.256108f, 0.125000f, 0.500000f,
+ -1.288818f, -0.245325f, -0.000000f, -0.647649f, -0.761939f, -0.000000f, 0.000000f, 0.625000f,
+ -1.285887f, -0.240706f, -0.049219f, -0.632123f, -0.737115f, -0.238917f, 0.125000f, 0.625000f,
+ -1.278160f, -0.228531f, -0.084375f, -0.558837f, -0.634504f, -0.533953f, 0.250000f, 0.625000f,
+ -1.192680f, -0.311601f, -0.049219f, -0.547600f, -0.806671f, -0.222295f, 0.125000f, 0.750000f,
+ -1.334973f, -0.140689f, -0.105469f, -0.389066f, -0.325292f, -0.861866f, 0.375000f, 0.500000f,
+ -1.278160f, -0.228531f, -0.084375f, -0.558837f, -0.634504f, -0.533952f, 0.250000f, 0.625000f,
+ -1.267236f, -0.211316f, -0.105469f, -0.361844f, -0.395706f, -0.844088f, 0.375000f, 0.625000f,
+ -1.254712f, -0.191583f, -0.112500f, 0.000000f, 0.000000f, -1.000000f, 0.500000f, 0.625000f,
+ -1.183388f, -0.279157f, -0.105469f, -0.330412f, -0.460754f, -0.823731f, 0.375000f, 0.750000f,
+ -1.192680f, -0.311601f, -0.049219f, -0.547601f, -0.806671f, -0.222295f, 0.125000f, 0.750000f,
+ -1.081299f, -0.384998f, -0.000000f, -0.479572f, -0.877503f, -0.000000f, 0.000000f, 0.875000f,
+ -1.081536f, -0.379325f, -0.049219f, -0.470000f, -0.855960f, -0.215482f, 0.125000f, 0.875000f,
+ -1.082161f, -0.364370f, -0.084375f, -0.423555f, -0.760495f, -0.492188f, 0.250000f, 0.875000f,
+ -0.952148f, -0.443555f, -0.049219f, -0.400263f, -0.889473f, -0.220515f, 0.125000f, 1.000000f,
+ -1.183388f, -0.279157f, -0.105469f, -0.330412f, -0.460754f, -0.823731f, 0.375000f, 0.750000f,
+ -1.082161f, -0.364370f, -0.084375f, -0.423555f, -0.760495f, -0.492187f, 0.250000f, 0.875000f,
+ -1.083045f, -0.343226f, -0.105469f, -0.286325f, -0.503846f, -0.814958f, 0.375000f, 0.875000f,
+ -1.084058f, -0.318988f, -0.112500f, 0.000000f, 0.000000f, -1.000000f, 0.500000f, 0.875000f,
+ -0.965820f, -0.402539f, -0.105469f, -0.232611f, -0.516913f, -0.823829f, 0.375000f, 1.000000f,
+ -1.283887f, -0.090015f, -0.084375f, 0.674847f, 0.482249f, -0.558585f, 0.750000f, 0.500000f,
+ -1.177148f, -0.257373f, -0.112500f, 0.000000f, 0.000000f, -1.000000f, 0.500000f, 0.750000f,
+ -1.165466f, -0.216586f, -0.084375f, 0.549511f, 0.670716f, -0.498173f, 0.750000f, 0.750000f,
+ -1.160156f, -0.198047f, -0.000000f, 0.655687f, 0.755033f, -0.000000f, 1.000000f, 0.750000f,
+ -0.992188f, -0.323438f, -0.084375f, 0.354770f, 0.788378f, -0.502591f, 0.750000f, 1.000000f,
+ -1.299402f, -0.105405f, -0.105469f, 0.407093f, 0.306051f, -0.860586f, 0.625000f, 0.500000f,
+ -1.254712f, -0.191583f, -0.112500f, 0.000000f, 0.000000f, -1.000000f, 0.500000f, 0.625000f,
+ -1.242188f, -0.171850f, -0.105469f, 0.384959f, 0.378821f, -0.841606f, 0.625000f, 0.625000f,
+ -1.231264f, -0.154636f, -0.084375f, 0.623037f, 0.578584f, -0.526370f, 0.750000f, 0.625000f,
+ -1.170909f, -0.235589f, -0.105469f, 0.354017f, 0.451010f, -0.819306f, 0.625000f, 0.750000f,
+ -1.272913f, -0.079129f, -0.049219f, 0.800088f, 0.544202f, -0.252394f, 0.875000f, 0.500000f,
+ -1.231264f, -0.154636f, -0.084375f, 0.623037f, 0.578584f, -0.526370f, 0.750000f, 0.625000f,
+ -1.223536f, -0.142460f, -0.049219f, 0.725742f, 0.647344f, -0.232905f, 0.875000f, 0.625000f,
+ -1.220605f, -0.137842f, -0.000000f, 0.752687f, 0.658378f, -0.000000f, 1.000000f, 0.625000f,
+ -1.161617f, -0.203145f, -0.049219f, 0.634450f, 0.742942f, -0.213332f, 0.875000f, 0.750000f,
+ -1.170909f, -0.235589f, -0.105469f, 0.354017f, 0.451010f, -0.819306f, 0.625000f, 0.750000f,
+ -1.084058f, -0.318988f, -0.112500f, 0.000000f, 0.000000f, -1.000000f, 0.500000f, 0.875000f,
+ -1.085071f, -0.294750f, -0.105469f, 0.301978f, 0.501655f, -0.810649f, 0.625000f, 0.875000f,
+ -1.085954f, -0.273607f, -0.084375f, 0.462854f, 0.744576f, -0.481012f, 0.750000f, 0.875000f,
+ -0.984180f, -0.347461f, -0.105469f, 0.232611f, 0.516912f, -0.823829f, 0.625000f, 1.000000f,
+ -1.161617f, -0.203145f, -0.049219f, 0.634450f, 0.742942f, -0.213332f, 0.875000f, 0.750000f,
+ -1.085954f, -0.273607f, -0.084375f, 0.462854f, 0.744576f, -0.481012f, 0.750000f, 0.875000f,
+ -1.086579f, -0.258651f, -0.049219f, 0.524892f, 0.825535f, -0.207317f, 0.875000f, 0.875000f,
+ -1.086816f, -0.252979f, -0.000000f, 0.540758f, 0.841178f, -0.000000f, 1.000000f, 0.875000f,
+ -0.997852f, -0.306445f, -0.049219f, 0.400263f, 0.889473f, -0.220515f, 0.875000f, 1.000000f,
+ 0.850000f, -0.037500f, -0.000000f, 0.000000f, 1.000000f, 0.000000f, 0.000000f, 0.000000f,
+ 0.850000f, -0.450000f, -0.000000f, 0.158678f, -0.987330f, 0.000000f, 1.000000f, 0.000000f,
+ 1.350000f, 0.450000f, -0.000000f, -0.600000f, 0.800000f, 0.000000f, 0.000000f, 1.000000f,
+ 1.650000f, 0.450000f, -0.000000f, 0.384615f, -0.923077f, 0.000000f, 1.000000f, 1.000000f,
+ 0.850000f, -0.243750f, 0.247500f, -0.000000f, 0.000000f, 1.000000f, 0.500000f, 0.000000f,
+ 1.193750f, 0.150000f, -0.000000f, -0.920582f, 0.390550f, 0.000000f, 0.000000f, 0.500000f,
+ 1.268750f, 0.060938f, 0.170625f, 0.213724f, 0.177140f, 0.960699f, 0.500000f, 0.500000f,
+ 1.343750f, -0.028125f, -0.000000f, 0.957826f, -0.287348f, 0.000000f, 1.000000f, 0.500000f,
+ 1.500000f, 0.450000f, 0.093750f, 0.000000f, 0.000000f, 1.000000f, 0.500000f, 1.000000f,
+ 0.850000f, -0.101953f, 0.185625f, -0.024132f, 0.729325f, 0.683742f, 0.250000f, 0.000000f,
+ 1.089844f, 0.017578f, -0.000000f, -0.544548f, 0.838729f, 0.000000f, 0.000000f, 0.250000f,
+ 1.108154f, -0.030212f, 0.167607f, -0.371220f, 0.678515f, 0.633887f, 0.250000f, 0.250000f,
+ 1.148438f, -0.135352f, 0.223477f, 0.171854f, 0.062939f, 0.983110f, 0.500000f, 0.250000f,
+ 1.217188f, 0.122168f, 0.127969f, -0.695041f, 0.414771f, 0.587267f, 0.250000f, 0.500000f,
+ 0.850000f, -0.055225f, 0.108281f, -0.009231f, 0.939467f, 0.342514f, 0.125000f, 0.000000f,
+ 0.992480f, -0.022705f, -0.000000f, -0.235151f, 0.971959f, 0.000000f, 0.000000f, 0.125000f,
+ 0.995678f, -0.038346f, 0.105391f, -0.221262f, 0.921126f, 0.320265f, 0.125000f, 0.125000f,
+ 1.004108f, -0.079582f, 0.180670f, -0.165703f, 0.736103f, 0.656273f, 0.250000f, 0.125000f,
+ 1.094879f, 0.004436f, 0.097771f, -0.507507f, 0.807721f, 0.300039f, 0.125000f, 0.250000f,
+ 0.850000f, -0.168018f, 0.232031f, -0.025797f, 0.392308f, 0.919472f, 0.375000f, 0.000000f,
+ 1.004108f, -0.079582f, 0.180670f, -0.165703f, 0.736103f, 0.656273f, 0.250000f, 0.125000f,
+ 1.016026f, -0.137881f, 0.225838f, -0.059540f, 0.413822f, 0.908409f, 0.375000f, 0.125000f,
+ 1.029688f, -0.204712f, 0.240894f, 0.079921f, 0.015529f, 0.996680f, 0.500000f, 0.125000f,
+ 1.126923f, -0.079198f, 0.209509f, -0.127458f, 0.418405f, 0.899273f, 0.375000f, 0.250000f,
+ 1.094879f, 0.004436f, 0.097771f, -0.507507f, 0.807721f, 0.300039f, 0.125000f, 0.250000f,
+ 1.153223f, 0.077197f, -0.000000f, -0.801883f, 0.597481f, 0.000000f, 0.000000f, 0.375000f,
+ 1.159190f, 0.066780f, 0.086998f, -0.756895f, 0.593502f, 0.273617f, 0.125000f, 0.375000f,
+ 1.174921f, 0.039317f, 0.149139f, -0.577629f, 0.549531f, 0.603623f, 0.250000f, 0.375000f,
+ 1.200195f, 0.142346f, 0.074648f, -0.876990f, 0.403565f, 0.260813f, 0.125000f, 0.500000f,
+ 1.126923f, -0.079198f, 0.209509f, -0.127458f, 0.418405f, 0.899273f, 0.375000f, 0.250000f,
+ 1.174921f, 0.039317f, 0.149139f, -0.577629f, 0.549531f, 0.603623f, 0.250000f, 0.375000f,
+ 1.197161f, 0.000490f, 0.186424f, -0.218772f, 0.394191f, 0.892610f, 0.375000f, 0.375000f,
+ 1.222656f, -0.044019f, 0.198853f, 0.229848f, 0.129312f, 0.964597f, 0.500000f, 0.375000f,
+ 1.241211f, 0.093640f, 0.159961f, -0.296452f, 0.354445f, 0.886840f, 0.375000f, 0.500000f,
+ 0.850000f, -0.385547f, 0.185625f, 0.102331f, -0.725708f, 0.680351f, 0.750000f, 0.000000f,
+ 1.148438f, -0.135352f, 0.223477f, 0.171854f, 0.062939f, 0.983110f, 0.500000f, 0.250000f,
+ 1.188721f, -0.240491f, 0.167607f, 0.612561f, -0.529591f, 0.586772f, 0.750000f, 0.250000f,
+ 1.207031f, -0.288281f, -0.000000f, 0.718240f, -0.695795f, 0.000000f, 1.000000f, 0.250000f,
+ 1.320312f, -0.000293f, 0.127969f, 0.837979f, -0.174710f, 0.516979f, 0.750000f, 0.500000f,
+ 0.850000f, -0.319482f, 0.232031f, 0.048061f, -0.391985f, 0.918715f, 0.625000f, 0.000000f,
+ 1.029688f, -0.204712f, 0.240894f, 0.079921f, 0.015529f, 0.996680f, 0.500000f, 0.125000f,
+ 1.043350f, -0.271543f, 0.225838f, 0.224876f, -0.377046f, 0.898480f, 0.625000f, 0.125000f,
+ 1.055267f, -0.329842f, 0.180670f, 0.342821f, -0.685430f, 0.642386f, 0.750000f, 0.125000f,
+ 1.169952f, -0.191505f, 0.209509f, 0.435323f, -0.278094f, 0.856247f, 0.625000f, 0.250000f,
+ 0.850000f, -0.432275f, 0.108281f, 0.144604f, -0.929633f, 0.338929f, 0.875000f, 0.000000f,
+ 1.055267f, -0.329842f, 0.180670f, 0.342821f, -0.685430f, 0.642386f, 0.750000f, 0.125000f,
+ 1.063697f, -0.371078f, 0.105391f, 0.408872f, -0.857837f, 0.311351f, 0.875000f, 0.125000f,
+ 1.066895f, -0.386719f, -0.000000f, 0.427109f, -0.904200f, 0.000000f, 1.000000f, 0.125000f,
+ 1.201996f, -0.275139f, 0.097771f, 0.697781f, -0.660281f, 0.277723f, 0.875000f, 0.250000f,
+ 1.169952f, -0.191505f, 0.209509f, 0.435322f, -0.278094f, 0.856247f, 0.625000f, 0.250000f,
+ 1.222656f, -0.044019f, 0.198853f, 0.229848f, 0.129312f, 0.964597f, 0.500000f, 0.375000f,
+ 1.248151f, -0.088527f, 0.186424f, 0.585763f, -0.133695f, 0.799380f, 0.625000f, 0.375000f,
+ 1.270392f, -0.127354f, 0.149139f, 0.789294f, -0.317418f, 0.525605f, 0.750000f, 0.375000f,
+ 1.296289f, 0.028235f, 0.159961f, 0.613165f, -0.021542f, 0.789661f, 0.625000f, 0.500000f,
+ 1.201996f, -0.275139f, 0.097771f, 0.697781f, -0.660281f, 0.277723f, 0.875000f, 0.250000f,
+ 1.270392f, -0.127354f, 0.149139f, 0.789294f, -0.317418f, 0.525605f, 0.750000f, 0.375000f,
+ 1.286123f, -0.154817f, 0.086998f, 0.877362f, -0.413464f, 0.243482f, 0.875000f, 0.375000f,
+ 1.292090f, -0.165234f, -0.000000f, 0.897596f, -0.440819f, 0.000000f, 1.000000f, 0.375000f,
+ 1.337305f, -0.020471f, 0.074648f, 0.935156f, -0.261048f, 0.239452f, 0.875000f, 0.500000f,
+ 1.217188f, 0.122168f, 0.127969f, -0.695041f, 0.414772f, 0.587267f, 0.250000f, 0.500000f,
+ 1.250781f, 0.310547f, -0.000000f, -0.928477f, 0.371391f, 0.000000f, 0.000000f, 0.750000f,
+ 1.279346f, 0.300476f, 0.088330f, -0.634799f, 0.386374f, 0.669138f, 0.250000f, 0.750000f,
+ 1.342187f, 0.278320f, 0.117773f, 0.067770f, 0.175606f, 0.982125f, 0.500000f, 0.750000f,
+ 1.396875f, 0.450000f, 0.070312f, -0.390971f, 0.593197f, 0.703747f, 0.250000f, 1.000000f,
+ 1.200195f, 0.142346f, 0.074648f, -0.876990f, 0.403566f, 0.260813f, 0.125000f, 0.500000f,
+ 1.222558f, 0.229834f, -0.000000f, -0.950213f, 0.311602f, 0.000000f, 0.000000f, 0.625000f,
+ 1.229482f, 0.224792f, 0.062299f, -0.900661f, 0.331376f, 0.281068f, 0.125000f, 0.625000f,
+ 1.247736f, 0.211501f, 0.106798f, -0.702257f, 0.362674f, 0.612620f, 0.250000f, 0.625000f,
+ 1.258636f, 0.307777f, 0.051526f, -0.858527f, 0.385856f, 0.337708f, 0.125000f, 0.750000f,
+ 1.241211f, 0.093640f, 0.159961f, -0.296452f, 0.354445f, 0.886840f, 0.375000f, 0.500000f,
+ 1.247736f, 0.211501f, 0.106798f, -0.702256f, 0.362674f, 0.612621f, 0.250000f, 0.625000f,
+ 1.273542f, 0.192709f, 0.133498f, -0.321036f, 0.326352f, 0.889062f, 0.375000f, 0.625000f,
+ 1.303125f, 0.171167f, 0.142397f, 0.144754f, 0.193543f, 0.970354f, 0.500000f, 0.625000f,
+ 1.308624f, 0.290154f, 0.110413f, -0.297769f, 0.322801f, 0.898406f, 0.375000f, 0.750000f,
+ 1.258636f, 0.307777f, 0.051526f, -0.858527f, 0.385856f, 0.337708f, 0.125000f, 0.750000f,
+ 1.289551f, 0.385986f, -0.000000f, -0.828868f, 0.559444f, 0.000000f, 0.000000f, 0.875000f,
+ 1.299244f, 0.384960f, 0.043906f, -0.742962f, 0.544199f, 0.389686f, 0.125000f, 0.875000f,
+ 1.324799f, 0.382256f, 0.075267f, -0.517529f, 0.474866f, 0.711805f, 0.250000f, 0.875000f,
+ 1.362891f, 0.450000f, 0.041016f, -0.541369f, 0.750540f, 0.378959f, 0.125000f, 1.000000f,
+ 1.308624f, 0.290154f, 0.110413f, -0.297769f, 0.322801f, 0.898406f, 0.375000f, 0.750000f,
+ 1.324799f, 0.382256f, 0.075267f, -0.517529f, 0.474866f, 0.711805f, 0.250000f, 0.875000f,
+ 1.360928f, 0.378432f, 0.094084f, -0.253078f, 0.335498f, 0.907410f, 0.375000f, 0.875000f,
+ 1.402344f, 0.374048f, 0.100356f, 0.015086f, 0.130164f, 0.991378f, 0.500000f, 0.875000f,
+ 1.444922f, 0.450000f, 0.087891f, -0.203320f, 0.348629f, 0.914942f, 0.375000f, 1.000000f,
+ 1.320312f, -0.000293f, 0.127969f, 0.837979f, -0.174710f, 0.516979f, 0.750000f, 0.500000f,
+ 1.342187f, 0.278320f, 0.117773f, 0.067770f, 0.175606f, 0.982125f, 0.500000f, 0.750000f,
+ 1.405029f, 0.256165f, 0.088330f, 0.697661f, -0.240664f, 0.674796f, 0.750000f, 0.750000f,
+ 1.433594f, 0.246094f, -0.000000f, 0.897727f, -0.440551f, 0.000000f, 1.000000f, 0.750000f,
+ 1.603125f, 0.450000f, 0.070312f, 0.328506f, -0.736502f, 0.591311f, 0.750000f, 1.000000f,
+ 1.296289f, 0.028235f, 0.159961f, 0.613165f, -0.021543f, 0.789661f, 0.625000f, 0.500000f,
+ 1.303125f, 0.171167f, 0.142397f, 0.144754f, 0.193543f, 0.970354f, 0.500000f, 0.625000f,
+ 1.332708f, 0.149625f, 0.133498f, 0.543037f, 0.012500f, 0.839616f, 0.625000f, 0.625000f,
+ 1.358514f, 0.130833f, 0.106798f, 0.802971f, -0.151273f, 0.576501f, 0.750000f, 0.625000f,
+ 1.375751f, 0.266487f, 0.110413f, 0.409019f, -0.025151f, 0.912179f, 0.625000f, 0.750000f,
+ 1.337305f, -0.020471f, 0.074648f, 0.935156f, -0.261048f, 0.239452f, 0.875000f, 0.500000f,
+ 1.358514f, 0.130833f, 0.106798f, 0.802972f, -0.151273f, 0.576501f, 0.750000f, 0.625000f,
+ 1.376768f, 0.117542f, 0.062299f, 0.928216f, -0.252378f, 0.273351f, 0.875000f, 0.625000f,
+ 1.383691f, 0.112500f, -0.000000f, 0.958492f, -0.285121f, 0.000000f, 1.000000f, 0.625000f,
+ 1.425738f, 0.248863f, 0.051526f, 0.856186f, -0.391161f, 0.337548f, 0.875000f, 0.750000f,
+ 1.375751f, 0.266487f, 0.110413f, 0.409019f, -0.025151f, 0.912179f, 0.625000f, 0.750000f,
+ 1.402344f, 0.374048f, 0.100356f, 0.015086f, 0.130164f, 0.991378f, 0.500000f, 0.875000f,
+ 1.443760f, 0.369664f, 0.094084f, 0.287699f, -0.145568f, 0.946593f, 0.625000f, 0.875000f,
+ 1.479889f, 0.365840f, 0.075267f, 0.529482f, -0.444837f, 0.722336f, 0.750000f, 0.875000f,
+ 1.555078f, 0.450000f, 0.087891f, 0.197370f, -0.414974f, 0.888167f, 0.625000f, 1.000000f,
+ 1.425738f, 0.248863f, 0.051526f, 0.856187f, -0.391160f, 0.337548f, 0.875000f, 0.750000f,
+ 1.479889f, 0.365840f, 0.075267f, 0.529481f, -0.444836f, 0.722337f, 0.750000f, 0.875000f,
+ 1.505444f, 0.363135f, 0.043906f, 0.670506f, -0.648431f, 0.360497f, 0.875000f, 0.875000f,
+ 1.515137f, 0.362109f, -0.000000f, 0.704117f, -0.710084f, 0.000000f, 1.000000f, 0.875000f,
+ 1.637109f, 0.450000f, 0.041016f, 0.376658f, -0.888038f, 0.263661f, 0.875000f, 1.000000f,
+ 0.850000f, -0.450000f, -0.000000f, 0.158678f, -0.987330f, 0.000000f, 0.000000f, 0.000000f,
+ 0.850000f, -0.037500f, -0.000000f, 0.000000f, 1.000000f, 0.000000f, 1.000000f, 0.000000f,
+ 1.650000f, 0.450000f, -0.000000f, 0.384615f, -0.923077f, 0.000000f, 0.000000f, 1.000000f,
+ 1.350000f, 0.450000f, -0.000000f, -0.600000f, 0.800000f, 0.000000f, 1.000000f, 1.000000f,
+ 0.850000f, -0.243750f, -0.247500f, 0.000000f, 0.000000f, -1.000000f, 0.500000f, 0.000000f,
+ 1.343750f, -0.028125f, -0.000000f, 0.957826f, -0.287348f, 0.000000f, 0.000000f, 0.500000f,
+ 1.268750f, 0.060938f, -0.170625f, 0.200450f, 0.166138f, -0.965514f, 0.500000f, 0.500000f,
+ 1.193750f, 0.150000f, -0.000000f, -0.920582f, 0.390550f, 0.000000f, 1.000000f, 0.500000f,
+ 1.500000f, 0.450000f, -0.093750f, 0.000000f, 0.000000f, -1.000000f, 0.500000f, 1.000000f,
+ 0.850000f, -0.385547f, -0.185625f, 0.105312f, -0.725480f, -0.680138f, 0.250000f, 0.000000f,
+ 1.207031f, -0.288281f, -0.000000f, 0.718240f, -0.695795f, 0.000000f, 0.000000f, 0.250000f,
+ 1.188721f, -0.240491f, -0.167607f, 0.612003f, -0.530032f, -0.586957f, 0.250000f, 0.250000f,
+ 1.148438f, -0.135352f, -0.223477f, 0.171854f, 0.062939f, -0.983110f, 0.500000f, 0.250000f,
+ 1.320312f, -0.000293f, -0.127969f, 0.836313f, -0.178498f, -0.518380f, 0.250000f, 0.500000f,
+ 0.850000f, -0.432275f, -0.108281f, 0.145471f, -0.929513f, -0.338885f, 0.125000f, 0.000000f,
+ 1.066895f, -0.386719f, -0.000000f, 0.427109f, -0.904200f, 0.000000f, 0.000000f, 0.125000f,
+ 1.063697f, -0.371078f, -0.105391f, 0.409189f, -0.857696f, -0.311324f, 0.125000f, 0.125000f,
+ 1.055267f, -0.329842f, -0.180670f, 0.342821f, -0.685430f, -0.642386f, 0.250000f, 0.125000f,
+ 1.201996f, -0.275139f, -0.097771f, 0.697590f, -0.660469f, -0.277758f, 0.125000f, 0.250000f,
+ 0.850000f, -0.319482f, -0.232031f, 0.048978f, -0.391968f, -0.918674f, 0.375000f, 0.000000f,
+ 1.055267f, -0.329842f, -0.180670f, 0.342821f, -0.685430f, -0.642386f, 0.250000f, 0.125000f,
+ 1.043350f, -0.271543f, -0.225838f, 0.224881f, -0.377045f, -0.898480f, 0.375000f, 0.125000f,
+ 1.029688f, -0.204712f, -0.240894f, 0.079921f, 0.015529f, -0.996680f, 0.500000f, 0.125000f,
+ 1.169952f, -0.191505f, -0.209509f, 0.434362f, -0.278625f, -0.856562f, 0.375000f, 0.250000f,
+ 1.201996f, -0.275139f, -0.097771f, 0.697590f, -0.660469f, -0.277758f, 0.125000f, 0.250000f,
+ 1.292090f, -0.165234f, -0.000000f, 0.897596f, -0.440819f, 0.000000f, 0.000000f, 0.375000f,
+ 1.286123f, -0.154817f, -0.086998f, 0.877008f, -0.414138f, -0.243610f, 0.125000f, 0.375000f,
+ 1.270392f, -0.127354f, -0.149139f, 0.789294f, -0.317418f, -0.525605f, 0.250000f, 0.375000f,
+ 1.337305f, -0.020471f, -0.074648f, 0.934784f, -0.262203f, -0.239644f, 0.125000f, 0.500000f,
+ 1.169952f, -0.191505f, -0.209509f, 0.434362f, -0.278625f, -0.856562f, 0.375000f, 0.250000f,
+ 1.270392f, -0.127354f, -0.149139f, 0.789294f, -0.317418f, -0.525605f, 0.250000f, 0.375000f,
+ 1.248151f, -0.088527f, -0.186424f, 0.584302f, -0.135007f, -0.800227f, 0.375000f, 0.375000f,
+ 1.222656f, -0.044019f, -0.198853f, 0.229848f, 0.129312f, -0.964597f, 0.500000f, 0.375000f,
+ 1.296289f, 0.028235f, -0.159961f, 0.611590f, -0.023659f, -0.790821f, 0.375000f, 0.500000f,
+ 0.850000f, -0.101953f, -0.185625f, -0.029616f, 0.729217f, -0.683641f, 0.750000f, 0.000000f,
+ 1.148438f, -0.135352f, -0.223477f, 0.171854f, 0.062939f, -0.983110f, 0.500000f, 0.250000f,
+ 1.108154f, -0.030212f, -0.167607f, -0.375101f, 0.676680f, -0.633564f, 0.750000f, 0.250000f,
+ 1.089844f, 0.017578f, -0.000000f, -0.544548f, 0.838729f, 0.000000f, 1.000000f, 0.250000f,
+ 1.217188f, 0.122168f, -0.127969f, -0.694334f, 0.415688f, -0.587455f, 0.750000f, 0.500000f,
+ 0.850000f, -0.168018f, -0.232031f, -0.027062f, 0.392295f, -0.919441f, 0.625000f, 0.000000f,
+ 1.029688f, -0.204712f, -0.240894f, 0.079921f, 0.015529f, -0.996680f, 0.500000f, 0.125000f,
+ 1.016026f, -0.137881f, -0.225838f, -0.060933f, 0.413563f, -0.908434f, 0.625000f, 0.125000f,
+ 1.004108f, -0.079582f, -0.180670f, -0.165703f, 0.736103f, -0.656273f, 0.750000f, 0.125000f,
+ 1.126923f, -0.079198f, -0.209509f, -0.128837f, 0.417897f, -0.899313f, 0.625000f, 0.250000f,
+ 0.850000f, -0.055225f, -0.108281f, -0.011227f, 0.939448f, -0.342507f, 0.875000f, 0.000000f,
+ 1.004108f, -0.079582f, -0.180670f, -0.165703f, 0.736103f, -0.656273f, 0.750000f, 0.125000f,
+ 0.995678f, -0.038346f, -0.105391f, -0.222729f, 0.920780f, -0.320245f, 0.875000f, 0.125000f,
+ 0.992480f, -0.022705f, -0.000000f, -0.235151f, 0.971959f, 0.000000f, 1.000000f, 0.125000f,
+ 1.094879f, 0.004436f, -0.097771f, -0.508167f, 0.807322f, -0.299996f, 0.875000f, 0.250000f,
+ 1.126923f, -0.079198f, -0.209509f, -0.128837f, 0.417897f, -0.899313f, 0.625000f, 0.250000f,
+ 1.222656f, -0.044019f, -0.198853f, 0.229848f, 0.129312f, -0.964597f, 0.500000f, 0.375000f,
+ 1.197161f, 0.000490f, -0.186424f, -0.219827f, 0.393598f, -0.892612f, 0.625000f, 0.375000f,
+ 1.174921f, 0.039317f, -0.149139f, -0.577629f, 0.549531f, -0.603623f, 0.750000f, 0.375000f,
+ 1.241211f, 0.093640f, -0.159961f, -0.296846f, 0.354114f, -0.886840f, 0.625000f, 0.500000f,
+ 1.094879f, 0.004436f, -0.097771f, -0.508167f, 0.807322f, -0.299996f, 0.875000f, 0.250000f,
+ 1.174921f, 0.039317f, -0.149139f, -0.577629f, 0.549531f, -0.603623f, 0.750000f, 0.375000f,
+ 1.159190f, 0.066780f, -0.086998f, -0.756738f, 0.593689f, -0.273644f, 0.875000f, 0.375000f,
+ 1.153223f, 0.077197f, -0.000000f, -0.801883f, 0.597481f, 0.000000f, 1.000000f, 0.375000f,
+ 1.200195f, 0.142346f, -0.074648f, -0.876392f, 0.404760f, -0.260971f, 0.875000f, 0.500000f,
+ 1.320312f, -0.000293f, -0.127969f, 0.836313f, -0.178498f, -0.518380f, 0.250000f, 0.500000f,
+ 1.433594f, 0.246094f, -0.000000f, 0.897727f, -0.440551f, 0.000000f, 0.000000f, 0.750000f,
+ 1.405029f, 0.256165f, -0.088330f, 0.694944f, -0.248071f, -0.674918f, 0.250000f, 0.750000f,
+ 1.342187f, 0.278320f, -0.117773f, 0.067770f, 0.175606f, -0.982125f, 0.500000f, 0.750000f,
+ 1.603125f, 0.450000f, -0.070312f, 0.325932f, -0.741335f, -0.586677f, 0.250000f, 1.000000f,
+ 1.337305f, -0.020471f, -0.074648f, 0.934784f, -0.262203f, -0.239644f, 0.125000f, 0.500000f,
+ 1.383691f, 0.112500f, -0.000000f, 0.958492f, -0.285121f, 0.000000f, 0.000000f, 0.625000f,
+ 1.376768f, 0.117542f, -0.062299f, 0.927697f, -0.254079f, -0.273535f, 0.125000f, 0.625000f,
+ 1.358514f, 0.130833f, -0.106798f, 0.802972f, -0.151273f, -0.576501f, 0.250000f, 0.625000f,
+ 1.425738f, 0.248863f, -0.051526f, 0.855222f, -0.393324f, -0.337479f, 0.125000f, 0.750000f,
+ 1.296289f, 0.028235f, -0.159961f, 0.611590f, -0.023659f, -0.790821f, 0.375000f, 0.500000f,
+ 1.358514f, 0.130833f, -0.106798f, 0.802971f, -0.151273f, -0.576501f, 0.250000f, 0.625000f,
+ 1.332708f, 0.149625f, -0.133498f, 0.541544f, 0.009652f, -0.840617f, 0.375000f, 0.625000f,
+ 1.303125f, 0.171167f, -0.142397f, 0.144754f, 0.193543f, -0.970354f, 0.500000f, 0.625000f,
+ 1.375751f, 0.266487f, -0.110413f, 0.408001f, -0.028503f, -0.912536f, 0.375000f, 0.750000f,
+ 1.425738f, 0.248863f, -0.051526f, 0.855222f, -0.393323f, -0.337479f, 0.125000f, 0.750000f,
+ 1.515137f, 0.362109f, -0.000000f, 0.704117f, -0.710084f, 0.000000f, 0.000000f, 0.875000f,
+ 1.505444f, 0.363135f, -0.043906f, 0.669146f, -0.650146f, -0.359936f, 0.125000f, 0.875000f,
+ 1.479889f, 0.365840f, -0.075267f, 0.529481f, -0.444836f, -0.722337f, 0.250000f, 0.875000f,
+ 1.637109f, 0.450000f, -0.041016f, 0.375683f, -0.888654f, -0.262978f, 0.125000f, 1.000000f,
+ 1.375751f, 0.266487f, -0.110413f, 0.408001f, -0.028503f, -0.912536f, 0.375000f, 0.750000f,
+ 1.479889f, 0.365840f, -0.075267f, 0.529482f, -0.444837f, -0.722336f, 0.250000f, 0.875000f,
+ 1.443760f, 0.369664f, -0.094084f, 0.287200f, -0.148873f, -0.946231f, 0.375000f, 0.875000f,
+ 1.402344f, 0.374048f, -0.100356f, 0.015086f, 0.130164f, -0.991378f, 0.500000f, 0.875000f,
+ 1.555078f, 0.450000f, -0.087891f, 0.197089f, -0.417806f, -0.886901f, 0.375000f, 1.000000f,
+ 1.217188f, 0.122168f, -0.127969f, -0.694334f, 0.415688f, -0.587455f, 0.750000f, 0.500000f,
+ 1.342187f, 0.278320f, -0.117773f, 0.067770f, 0.175606f, -0.982125f, 0.500000f, 0.750000f,
+ 1.279346f, 0.300476f, -0.088330f, -0.631401f, 0.393081f, -0.668446f, 0.750000f, 0.750000f,
+ 1.250781f, 0.310547f, -0.000000f, -0.928477f, 0.371391f, 0.000000f, 1.000000f, 0.750000f,
+ 1.396875f, 0.450000f, -0.070312f, -0.386984f, 0.604180f, -0.696571f, 0.750000f, 1.000000f,
+ 1.241211f, 0.093640f, -0.159961f, -0.296846f, 0.354114f, -0.886840f, 0.625000f, 0.500000f,
+ 1.303125f, 0.171167f, -0.142397f, 0.144754f, 0.193543f, -0.970354f, 0.500000f, 0.625000f,
+ 1.273542f, 0.192709f, -0.133498f, -0.320819f, 0.326623f, -0.889040f, 0.625000f, 0.625000f,
+ 1.247736f, 0.211501f, -0.106798f, -0.702256f, 0.362674f, -0.612621f, 0.750000f, 0.625000f,
+ 1.308624f, 0.290154f, -0.110413f, -0.297312f, 0.323820f, -0.898191f, 0.625000f, 0.750000f,
+ 1.200195f, 0.142346f, -0.074648f, -0.876392f, 0.404761f, -0.260971f, 0.875000f, 0.500000f,
+ 1.247736f, 0.211501f, -0.106798f, -0.702257f, 0.362674f, -0.612620f, 0.750000f, 0.625000f,
+ 1.229482f, 0.224792f, -0.062299f, -0.899738f, 0.333705f, -0.281268f, 0.875000f, 0.625000f,
+ 1.222558f, 0.229834f, -0.000000f, -0.950213f, 0.311602f, 0.000000f, 1.000000f, 0.625000f,
+ 1.258636f, 0.307777f, -0.051526f, -0.857015f, 0.389291f, -0.337605f, 0.875000f, 0.750000f,
+ 1.308624f, 0.290154f, -0.110413f, -0.297312f, 0.323820f, -0.898191f, 0.625000f, 0.750000f,
+ 1.402344f, 0.374048f, -0.100356f, 0.015086f, 0.130164f, -0.991378f, 0.500000f, 0.875000f,
+ 1.360928f, 0.378432f, -0.094084f, -0.252654f, 0.337465f, -0.906799f, 0.625000f, 0.875000f,
+ 1.324799f, 0.382256f, -0.075267f, -0.517529f, 0.474866f, -0.711805f, 0.750000f, 0.875000f,
+ 1.444922f, 0.450000f, -0.087891f, -0.203025f, 0.352273f, -0.913611f, 0.625000f, 1.000000f,
+ 1.258636f, 0.307777f, -0.051526f, -0.857015f, 0.389291f, -0.337606f, 0.875000f, 0.750000f,
+ 1.324799f, 0.382256f, -0.075267f, -0.517529f, 0.474866f, -0.711805f, 0.750000f, 0.875000f,
+ 1.299244f, 0.384960f, -0.043906f, -0.740671f, 0.547951f, -0.388789f, 0.875000f, 0.875000f,
+ 1.289551f, 0.385986f, -0.000000f, -0.828868f, 0.559444f, 0.000000f, 1.000000f, 0.875000f,
+ 1.362891f, 0.450000f, -0.041016f, -0.538815f, 0.753273f, -0.377171f, 0.875000f, 1.000000f,
+ 1.350000f, 0.450000f, -0.000000f, -0.599999f, 0.800000f, 0.000000f, 0.000000f, 0.000000f,
+ 1.650000f, 0.450000f, -0.000000f, 0.384615f, -0.923077f, 0.000000f, 1.000000f, 0.000000f,
+ 1.400000f, 0.450000f, -0.000000f, 0.599998f, -0.800001f, 0.000000f, 0.000000f, 1.000000f,
+ 1.600000f, 0.450000f, -0.000000f, -0.410365f, 0.911922f, 0.000000f, 1.000000f, 1.000000f,
+ 1.500000f, 0.450000f, 0.093750f, 0.000000f, 0.000000f, 1.000000f, 0.500000f, 0.000000f,
+ 1.412500f, 0.478125f, -0.000000f, 0.000000f, 1.000000f, 0.000000f, 0.000000f, 0.500000f,
+ 1.563281f, 0.483398f, 0.075000f, -0.030653f, 0.998390f, 0.047730f, 0.500000f, 0.500000f,
+ 1.714062f, 0.488672f, -0.000000f, 0.106533f, 0.994309f, 0.000000f, 1.000000f, 0.500000f,
+ 1.500000f, 0.450000f, 0.056250f, 0.000000f, -0.000000f, -1.000000f, 0.500000f, 1.000000f,
+ 1.396875f, 0.450000f, 0.070312f, -0.390970f, 0.593197f, 0.703746f, 0.250000f, 0.000000f,
+ 1.385937f, 0.471094f, -0.000000f, -0.393919f, 0.919145f, 0.000000f, 0.000000f, 0.250000f,
+ 1.436139f, 0.472124f, 0.065918f, -0.261242f, 0.825249f, 0.500716f, 0.250000f, 0.250000f,
+ 1.546582f, 0.474390f, 0.087891f, -0.010489f, 0.543162f, 0.839563f, 0.500000f, 0.250000f,
+ 1.459619f, 0.479773f, 0.056250f, -0.028676f, 0.999488f, -0.014204f, 0.250000f, 0.500000f,
+ 1.362891f, 0.450000f, 0.041016f, -0.541370f, 0.750538f, 0.378960f, 0.125000f, 0.000000f,
+ 1.368555f, 0.462305f, -0.000000f, -0.502135f, 0.864789f, 0.000000f, 0.000000f, 0.125000f,
+ 1.382164f, 0.462453f, 0.040311f, -0.452660f, 0.827269f, 0.332754f, 0.125000f, 0.125000f,
+ 1.418043f, 0.462845f, 0.069104f, -0.328007f, 0.714730f, 0.617715f, 0.250000f, 0.125000f,
+ 1.399743f, 0.471377f, 0.038452f, -0.354757f, 0.895428f, 0.268992f, 0.125000f, 0.250000f,
+ 1.444922f, 0.450000f, 0.087891f, -0.203320f, 0.348630f, 0.914942f, 0.375000f, 0.000000f,
+ 1.418043f, 0.462845f, 0.069104f, -0.328007f, 0.714730f, 0.617715f, 0.250000f, 0.125000f,
+ 1.468768f, 0.463400f, 0.086380f, -0.177466f, 0.531475f, 0.828275f, 0.375000f, 0.125000f,
+ 1.526917f, 0.464035f, 0.092139f, -0.002586f, 0.248712f, 0.968574f, 0.500000f, 0.125000f,
+ 1.487595f, 0.473179f, 0.082397f, -0.146800f, 0.719542f, 0.678756f, 0.375000f, 0.250000f,
+ 1.399743f, 0.471377f, 0.038452f, -0.354755f, 0.895429f, 0.268990f, 0.125000f, 0.250000f,
+ 1.400977f, 0.476367f, -0.000000f, -0.252422f, 0.967617f, 0.000000f, 0.000000f, 0.375000f,
+ 1.414538f, 0.476757f, 0.035825f, -0.228367f, 0.958759f, 0.169205f, 0.125000f, 0.375000f,
+ 1.450289f, 0.477783f, 0.061414f, -0.171147f, 0.934241f, 0.312892f, 0.250000f, 0.375000f,
+ 1.425458f, 0.478578f, 0.032812f, -0.011150f, 0.999718f, -0.020946f, 0.125000f, 0.500000f,
+ 1.487595f, 0.473179f, 0.082397f, -0.146800f, 0.719545f, 0.678753f, 0.375000f, 0.250000f,
+ 1.450289f, 0.477783f, 0.061414f, -0.171148f, 0.934242f, 0.312891f, 0.250000f, 0.375000f,
+ 1.500835f, 0.479235f, 0.076767f, -0.104867f, 0.896864f, 0.429695f, 0.375000f, 0.375000f,
+ 1.558777f, 0.480899f, 0.081885f, -0.023691f, 0.837628f, 0.545728f, 0.500000f, 0.375000f,
+ 1.507916f, 0.481462f, 0.070312f, -0.038175f, 0.999104f, 0.018273f, 0.375000f, 0.500000f,
+ 1.603125f, 0.450000f, 0.070312f, 0.328506f, -0.736502f, 0.591311f, 0.750000f, 0.000000f,
+ 1.546582f, 0.474390f, 0.087891f, -0.010489f, 0.543162f, 0.839563f, 0.500000f, 0.250000f,
+ 1.657025f, 0.476656f, 0.065918f, 0.419012f, -0.340104f, 0.841878f, 0.750000f, 0.250000f,
+ 1.707227f, 0.477686f, -0.000000f, 0.537133f, -0.843498f, 0.000000f, 1.000000f, 0.250000f,
+ 1.666943f, 0.487024f, 0.056250f, 0.017233f, 0.992921f, 0.117519f, 0.750000f, 0.500000f,
+ 1.555078f, 0.450000f, 0.087891f, 0.197370f, -0.414975f, 0.888167f, 0.625000f, 0.000000f,
+ 1.526917f, 0.464035f, 0.092139f, -0.002586f, 0.248712f, 0.968574f, 0.500000f, 0.125000f,
+ 1.585065f, 0.464670f, 0.086380f, 0.201774f, -0.178320f, 0.963062f, 0.625000f, 0.125000f,
+ 1.635790f, 0.465225f, 0.069104f, 0.367189f, -0.618011f, 0.695150f, 0.750000f, 0.125000f,
+ 1.605569f, 0.475600f, 0.082397f, 0.182564f, 0.209574f, 0.960598f, 0.625000f, 0.250000f,
+ 1.637109f, 0.450000f, 0.041016f, 0.376658f, -0.888038f, 0.263661f, 0.875000f, 0.000000f,
+ 1.635790f, 0.465225f, 0.069104f, 0.367189f, -0.618009f, 0.695153f, 0.750000f, 0.125000f,
+ 1.671669f, 0.465617f, 0.040311f, 0.430592f, -0.845391f, 0.316077f, 0.875000f, 0.125000f,
+ 1.685278f, 0.465765f, -0.000000f, 0.438412f, -0.898774f, 0.000000f, 1.000000f, 0.125000f,
+ 1.693421f, 0.477402f, 0.038452f, 0.528248f, -0.743422f, 0.410218f, 0.875000f, 0.250000f,
+ 1.605569f, 0.475600f, 0.082397f, 0.182565f, 0.209570f, 0.960599f, 0.625000f, 0.250000f,
+ 1.558777f, 0.480899f, 0.081885f, -0.023691f, 0.837628f, 0.545728f, 0.500000f, 0.375000f,
+ 1.616719f, 0.482563f, 0.076767f, 0.105864f, 0.722978f, 0.682712f, 0.625000f, 0.375000f,
+ 1.667265f, 0.484015f, 0.061414f, 0.368189f, 0.433463f, 0.822524f, 0.750000f, 0.375000f,
+ 1.618646f, 0.485335f, 0.070312f, -0.017857f, 0.995236f, 0.095847f, 0.625000f, 0.500000f,
+ 1.693421f, 0.477402f, 0.038452f, 0.528244f, -0.743425f, 0.410215f, 0.875000f, 0.250000f,
+ 1.667265f, 0.484015f, 0.061414f, 0.368191f, 0.433462f, 0.822524f, 0.750000f, 0.375000f,
+ 1.703016f, 0.485041f, 0.035825f, 0.754900f, -0.180907f, 0.630395f, 0.875000f, 0.375000f,
+ 1.716577f, 0.485431f, -0.000000f, 0.859737f, -0.510736f, 0.000000f, 1.000000f, 0.375000f,
+ 1.701105f, 0.488219f, 0.032812f, 0.072271f, 0.992935f, 0.094111f, 0.875000f, 0.500000f,
+ 1.459619f, 0.479773f, 0.056250f, -0.028676f, 0.999488f, -0.014203f, 0.250000f, 0.500000f,
+ 1.420312f, 0.471094f, -0.000000f, 0.948684f, -0.316227f, 0.000000f, 0.000000f, 0.750000f,
+ 1.460321f, 0.472536f, 0.046582f, 0.388841f, 0.140631f, -0.910508f, 0.250000f, 0.750000f,
+ 1.548340f, 0.475708f, 0.062109f, -0.020139f, 0.565841f, -0.824268f, 0.500000f, 0.750000f,
+ 1.431250f, 0.450000f, 0.042188f, 0.370536f, -0.559922f, -0.741073f, 0.250000f, 1.000000f,
+ 1.425458f, 0.478578f, 0.032812f, -0.011151f, 0.999718f, -0.020945f, 0.125000f, 0.500000f,
+ 1.419336f, 0.476367f, -0.000000f, 0.650788f, 0.759260f, -0.000000f, 0.000000f, 0.625000f,
+ 1.431414f, 0.476827f, 0.029800f, 0.466018f, 0.764069f, -0.446123f, 0.125000f, 0.625000f,
+ 1.463255f, 0.478041f, 0.051086f, 0.212314f, 0.799230f, -0.562276f, 0.250000f, 0.625000f,
+ 1.431315f, 0.471490f, 0.027173f, 0.736672f, -0.149641f, -0.659487f, 0.125000f, 0.750000f,
+ 1.507916f, 0.481462f, 0.070312f, -0.038175f, 0.999104f, 0.018273f, 0.375000f, 0.500000f,
+ 1.463255f, 0.478041f, 0.051086f, 0.212315f, 0.799230f, -0.562276f, 0.250000f, 0.625000f,
+ 1.508271f, 0.479756f, 0.063858f, 0.061046f, 0.840539f, -0.538301f, 0.375000f, 0.625000f,
+ 1.559876f, 0.481723f, 0.068115f, -0.033383f, 0.880730f, -0.472440f, 0.500000f, 0.625000f,
+ 1.501330f, 0.474014f, 0.058228f, 0.143907f, 0.380043f, -0.913706f, 0.375000f, 0.750000f,
+ 1.431315f, 0.471490f, 0.027173f, 0.736673f, -0.149623f, -0.659489f, 0.125000f, 0.750000f,
+ 1.414258f, 0.462305f, -0.000000f, 0.727013f, -0.686624f, 0.000000f, 0.000000f, 0.875000f,
+ 1.424072f, 0.462553f, 0.025314f, 0.622016f, -0.580709f, -0.525236f, 0.125000f, 0.875000f,
+ 1.449944f, 0.463206f, 0.043396f, 0.394296f, -0.328022f, -0.858448f, 0.250000f, 0.875000f,
+ 1.408594f, 0.450000f, 0.024609f, 0.532585f, -0.738082f, -0.414232f, 0.125000f, 1.000000f,
+ 1.501330f, 0.474014f, 0.058228f, 0.143907f, 0.380043f, -0.913706f, 0.375000f, 0.750000f,
+ 1.449944f, 0.463206f, 0.043396f, 0.394294f, -0.328020f, -0.858449f, 0.250000f, 0.875000f,
+ 1.486523f, 0.464130f, 0.054245f, 0.177862f, -0.043211f, -0.983106f, 0.375000f, 0.875000f,
+ 1.528455f, 0.465189f, 0.057861f, -0.006299f, 0.244403f, -0.969653f, 0.500000f, 0.875000f,
+ 1.463281f, 0.450000f, 0.052734f, 0.186166f, -0.314478f, -0.930831f, 0.375000f, 1.000000f,
+ 1.666943f, 0.487024f, 0.056250f, 0.017234f, 0.992921f, 0.117521f, 0.750000f, 0.500000f,
+ 1.548340f, 0.475708f, 0.062109f, -0.020139f, 0.565841f, -0.824268f, 0.500000f, 0.750000f,
+ 1.636358f, 0.478880f, 0.046582f, -0.236122f, 0.847054f, -0.476179f, 0.750000f, 0.750000f,
+ 1.676367f, 0.480322f, -0.000000f, -0.309738f, 0.950822f, 0.000000f, 1.000000f, 0.750000f,
+ 1.568750f, 0.450000f, 0.042188f, -0.325285f, 0.686256f, -0.650571f, 0.750000f, 1.000000f,
+ 1.618646f, 0.485335f, 0.070312f, -0.017856f, 0.995235f, 0.095852f, 0.625000f, 0.500000f,
+ 1.559876f, 0.481723f, 0.068115f, -0.033384f, 0.880731f, -0.472439f, 0.500000f, 0.625000f,
+ 1.611480f, 0.483690f, 0.063858f, -0.102068f, 0.914951f, -0.390443f, 0.625000f, 0.625000f,
+ 1.656496f, 0.485405f, 0.051086f, -0.157379f, 0.946540f, -0.281590f, 0.750000f, 0.625000f,
+ 1.595350f, 0.477402f, 0.058228f, -0.142748f, 0.722340f, -0.676645f, 0.625000f, 0.750000f,
+ 1.701105f, 0.488219f, 0.032812f, 0.072275f, 0.992935f, 0.094114f, 0.875000f, 0.500000f,
+ 1.656496f, 0.485405f, 0.051086f, -0.157378f, 0.946540f, -0.281592f, 0.750000f, 0.625000f,
+ 1.688337f, 0.486619f, 0.029800f, -0.197992f, 0.969370f, -0.145333f, 0.875000f, 0.625000f,
+ 1.700415f, 0.487079f, -0.000000f, -0.212233f, 0.977219f, 0.000000f, 1.000000f, 0.625000f,
+ 1.665365f, 0.479926f, 0.027173f, -0.292302f, 0.927391f, -0.233464f, 0.875000f, 0.750000f,
+ 1.595350f, 0.477402f, 0.058228f, -0.142748f, 0.722338f, -0.676646f, 0.625000f, 0.750000f,
+ 1.528455f, 0.465189f, 0.057861f, -0.006299f, 0.244403f, -0.969653f, 0.500000f, 0.875000f,
+ 1.570386f, 0.466248f, 0.054245f, -0.163578f, 0.526337f, -0.834393f, 0.625000f, 0.875000f,
+ 1.606965f, 0.467171f, 0.043396f, -0.282838f, 0.759561f, -0.585721f, 0.750000f, 0.875000f,
+ 1.536719f, 0.450000f, 0.052734f, -0.182506f, 0.366028f, -0.912532f, 0.625000f, 1.000000f,
+ 1.665365f, 0.479926f, 0.027173f, -0.292302f, 0.927391f, -0.233463f, 0.875000f, 0.750000f,
+ 1.606965f, 0.467171f, 0.043396f, -0.282837f, 0.759559f, -0.585724f, 0.750000f, 0.875000f,
+ 1.632838f, 0.467825f, 0.025314f, -0.349511f, 0.893333f, -0.282485f, 0.875000f, 0.875000f,
+ 1.642651f, 0.468073f, -0.000000f, -0.366863f, 0.930275f, 0.000000f, 1.000000f, 0.875000f,
+ 1.591406f, 0.450000f, 0.024609f, -0.394896f, 0.865864f, -0.307141f, 0.875000f, 1.000000f,
+ 1.650000f, 0.450000f, -0.000000f, 0.384615f, -0.923077f, 0.000000f, 0.000000f, 0.000000f,
+ 1.350000f, 0.450000f, -0.000000f, -0.599999f, 0.800000f, 0.000000f, 1.000000f, 0.000000f,
+ 1.600000f, 0.450000f, -0.000000f, -0.410365f, 0.911922f, 0.000000f, 0.000000f, 1.000000f,
+ 1.400000f, 0.450000f, -0.000000f, 0.599998f, -0.800001f, 0.000000f, 1.000000f, 1.000000f,
+ 1.500000f, 0.450000f, -0.093750f, 0.000000f, 0.000000f, -1.000000f, 0.500000f, 0.000000f,
+ 1.714062f, 0.488672f, -0.000000f, 0.106533f, 0.994309f, 0.000000f, 0.000000f, 0.500000f,
+ 1.563281f, 0.483398f, -0.075000f, -0.030594f, 0.996500f, -0.077797f, 0.500000f, 0.500000f,
+ 1.412500f, 0.478125f, -0.000000f, 0.000000f, 1.000000f, 0.000000f, 1.000000f, 0.500000f,
+ 1.500000f, 0.450000f, -0.056250f, 0.000000f, 0.000000f, 1.000000f, 0.500000f, 1.000000f,
+ 1.603125f, 0.450000f, -0.070312f, 0.325932f, -0.741335f, -0.586677f, 0.250000f, 0.000000f,
+ 1.707227f, 0.477686f, -0.000000f, 0.537133f, -0.843498f, 0.000000f, 0.000000f, 0.250000f,
+ 1.657025f, 0.476656f, -0.065918f, 0.416712f, -0.355669f, -0.836570f, 0.250000f, 0.250000f,
+ 1.546582f, 0.474390f, -0.087891f, -0.010489f, 0.543162f, -0.839563f, 0.500000f, 0.250000f,
+ 1.666943f, 0.487024f, -0.056250f, 0.020713f, 0.991902f, -0.125308f, 0.250000f, 0.500000f,
+ 1.637109f, 0.450000f, -0.041016f, 0.375683f, -0.888653f, -0.262978f, 0.125000f, 0.000000f,
+ 1.685278f, 0.465765f, -0.000000f, 0.438412f, -0.898774f, 0.000000f, 0.000000f, 0.125000f,
+ 1.671669f, 0.465617f, -0.040311f, 0.429299f, -0.846413f, -0.315099f, 0.125000f, 0.125000f,
+ 1.635790f, 0.465225f, -0.069104f, 0.367189f, -0.618009f, -0.695153f, 0.250000f, 0.125000f,
+ 1.693421f, 0.477402f, -0.038452f, 0.526088f, -0.745922f, -0.408450f, 0.125000f, 0.250000f,
+ 1.555078f, 0.450000f, -0.087891f, 0.197089f, -0.417807f, -0.886901f, 0.375000f, 0.000000f,
+ 1.635790f, 0.465225f, -0.069104f, 0.367189f, -0.618011f, -0.695150f, 0.250000f, 0.125000f,
+ 1.585065f, 0.464670f, -0.086380f, 0.201644f, -0.183060f, -0.962200f, 0.375000f, 0.125000f,
+ 1.526917f, 0.464035f, -0.092139f, -0.002586f, 0.248712f, -0.968574f, 0.500000f, 0.125000f,
+ 1.605569f, 0.475600f, -0.082397f, 0.183016f, 0.202049f, -0.962123f, 0.375000f, 0.250000f,
+ 1.693421f, 0.477402f, -0.038452f, 0.526085f, -0.745926f, -0.408447f, 0.125000f, 0.250000f,
+ 1.716577f, 0.485431f, -0.000000f, 0.859737f, -0.510736f, 0.000000f, 0.000000f, 0.375000f,
+ 1.703016f, 0.485041f, -0.035825f, 0.753057f, -0.194596f, -0.628520f, 0.125000f, 0.375000f,
+ 1.667265f, 0.484015f, -0.061414f, 0.368191f, 0.433462f, -0.822524f, 0.250000f, 0.375000f,
+ 1.701105f, 0.488219f, -0.032812f, 0.074241f, 0.992625f, -0.095834f, 0.125000f, 0.500000f,
+ 1.605569f, 0.475600f, -0.082397f, 0.183016f, 0.202045f, -0.962124f, 0.375000f, 0.250000f,
+ 1.667265f, 0.484015f, -0.061414f, 0.368189f, 0.433463f, -0.822524f, 0.250000f, 0.375000f,
+ 1.616719f, 0.482563f, -0.076767f, 0.107208f, 0.716766f, -0.689024f, 0.375000f, 0.375000f,
+ 1.558777f, 0.480899f, -0.081885f, -0.023691f, 0.837628f, -0.545728f, 0.500000f, 0.375000f,
+ 1.618646f, 0.485335f, -0.070312f, -0.017113f, 0.994843f, -0.099972f, 0.375000f, 0.500000f,
+ 1.396875f, 0.450000f, -0.070312f, -0.386984f, 0.604180f, -0.696570f, 0.750000f, 0.000000f,
+ 1.546582f, 0.474390f, -0.087891f, -0.010489f, 0.543162f, -0.839563f, 0.500000f, 0.250000f,
+ 1.436139f, 0.472124f, -0.065918f, -0.260333f, 0.826693f, -0.498803f, 0.750000f, 0.250000f,
+ 1.385937f, 0.471094f, -0.000000f, -0.393919f, 0.919145f, 0.000000f, 1.000000f, 0.250000f,
+ 1.459619f, 0.479773f, -0.056250f, -0.031625f, 0.999471f, 0.007533f, 0.750000f, 0.500000f,
+ 1.444922f, 0.450000f, -0.087891f, -0.203025f, 0.352273f, -0.913611f, 0.625000f, 0.000000f,
+ 1.526917f, 0.464035f, -0.092139f, -0.002586f, 0.248712f, -0.968574f, 0.500000f, 0.125000f,
+ 1.468768f, 0.463400f, -0.086380f, -0.177235f, 0.533433f, -0.827065f, 0.625000f, 0.125000f,
+ 1.418043f, 0.462845f, -0.069104f, -0.328007f, 0.714730f, -0.617715f, 0.750000f, 0.125000f,
+ 1.487595f, 0.473179f, -0.082397f, -0.146760f, 0.719769f, -0.678524f, 0.625000f, 0.250000f,
+ 1.362891f, 0.450000f, -0.041016f, -0.538816f, 0.753272f, -0.377172f, 0.875000f, 0.000000f,
+ 1.418043f, 0.462845f, -0.069104f, -0.328007f, 0.714730f, -0.617715f, 0.750000f, 0.125000f,
+ 1.382164f, 0.462453f, -0.040311f, -0.450802f, 0.828846f, -0.331350f, 0.875000f, 0.125000f,
+ 1.368555f, 0.462305f, -0.000000f, -0.502135f, 0.864789f, 0.000000f, 1.000000f, 0.125000f,
+ 1.399743f, 0.471377f, -0.038452f, -0.353662f, 0.896127f, -0.268105f, 0.875000f, 0.250000f,
+ 1.487595f, 0.473179f, -0.082397f, -0.146759f, 0.719772f, -0.678521f, 0.625000f, 0.250000f,
+ 1.558777f, 0.480899f, -0.081885f, -0.023691f, 0.837628f, -0.545728f, 0.500000f, 0.375000f,
+ 1.500835f, 0.479235f, -0.076767f, -0.105172f, 0.895971f, -0.431480f, 0.625000f, 0.375000f,
+ 1.450289f, 0.477783f, -0.061414f, -0.171148f, 0.934242f, -0.312891f, 0.750000f, 0.375000f,
+ 1.507916f, 0.481462f, -0.070312f, -0.038808f, 0.999007f, -0.021872f, 0.625000f, 0.500000f,
+ 1.399743f, 0.471377f, -0.038452f, -0.353660f, 0.896128f, -0.268103f, 0.875000f, 0.250000f,
+ 1.450289f, 0.477783f, -0.061414f, -0.171147f, 0.934241f, -0.312892f, 0.750000f, 0.375000f,
+ 1.414538f, 0.476757f, -0.035825f, -0.228267f, 0.958797f, -0.169120f, 0.875000f, 0.375000f,
+ 1.400977f, 0.476367f, -0.000000f, -0.252422f, 0.967617f, 0.000000f, 1.000000f, 0.375000f,
+ 1.425458f, 0.478578f, -0.032812f, -0.012463f, 0.999726f, 0.019791f, 0.875000f, 0.500000f,
+ 1.666943f, 0.487024f, -0.056250f, 0.020714f, 0.991901f, -0.125310f, 0.250000f, 0.500000f,
+ 1.676367f, 0.480322f, -0.000000f, -0.309738f, 0.950822f, 0.000000f, 0.000000f, 0.750000f,
+ 1.636358f, 0.478880f, -0.046582f, -0.235472f, 0.848126f, 0.474589f, 0.250000f, 0.750000f,
+ 1.548340f, 0.475708f, -0.062109f, -0.020139f, 0.565841f, 0.824268f, 0.500000f, 0.750000f,
+ 1.568750f, 0.450000f, -0.042188f, -0.323573f, 0.690291f, 0.647147f, 0.250000f, 1.000000f,
+ 1.701105f, 0.488219f, -0.032812f, 0.074245f, 0.992624f, -0.095838f, 0.125000f, 0.500000f,
+ 1.700415f, 0.487079f, -0.000000f, -0.212233f, 0.977219f, 0.000000f, 0.000000f, 0.625000f,
+ 1.688337f, 0.486619f, -0.029800f, -0.197930f, 0.969391f, 0.145277f, 0.125000f, 0.625000f,
+ 1.656496f, 0.485405f, -0.051086f, -0.157378f, 0.946540f, 0.281592f, 0.250000f, 0.625000f,
+ 1.665365f, 0.479926f, -0.027173f, -0.292143f, 0.927478f, 0.233317f, 0.125000f, 0.750000f,
+ 1.618646f, 0.485335f, -0.070312f, -0.017112f, 0.994843f, -0.099978f, 0.375000f, 0.500000f,
+ 1.656496f, 0.485405f, -0.051086f, -0.157379f, 0.946540f, 0.281590f, 0.250000f, 0.625000f,
+ 1.611480f, 0.483690f, -0.063858f, -0.102043f, 0.915022f, 0.390285f, 0.375000f, 0.625000f,
+ 1.559876f, 0.481723f, -0.068115f, -0.033384f, 0.880731f, 0.472439f, 0.500000f, 0.625000f,
+ 1.595350f, 0.477402f, -0.058228f, -0.142797f, 0.721999f, 0.676998f, 0.375000f, 0.750000f,
+ 1.665365f, 0.479926f, -0.027173f, -0.292143f, 0.927478f, 0.233317f, 0.125000f, 0.750000f,
+ 1.642651f, 0.468073f, -0.000000f, -0.366863f, 0.930275f, 0.000000f, 0.000000f, 0.875000f,
+ 1.632838f, 0.467825f, -0.025314f, -0.349075f, 0.893625f, 0.282102f, 0.125000f, 0.875000f,
+ 1.606965f, 0.467171f, -0.043396f, -0.282837f, 0.759559f, 0.585724f, 0.250000f, 0.875000f,
+ 1.591406f, 0.450000f, -0.024609f, -0.394161f, 0.866402f, 0.306569f, 0.125000f, 1.000000f,
+ 1.595350f, 0.477402f, -0.058228f, -0.142797f, 0.721999f, 0.676998f, 0.375000f, 0.750000f,
+ 1.606965f, 0.467171f, -0.043396f, -0.282838f, 0.759561f, 0.585721f, 0.250000f, 0.875000f,
+ 1.570386f, 0.466248f, -0.054245f, -0.163533f, 0.526860f, 0.834072f, 0.375000f, 0.875000f,
+ 1.528455f, 0.465189f, -0.057861f, -0.006299f, 0.244403f, 0.969653f, 0.500000f, 0.875000f,
+ 1.536719f, 0.450000f, -0.052734f, -0.182345f, 0.368116f, 0.911724f, 0.375000f, 1.000000f,
+ 1.459619f, 0.479773f, -0.056250f, -0.031626f, 0.999471f, 0.007532f, 0.750000f, 0.500000f,
+ 1.548340f, 0.475708f, -0.062109f, -0.020139f, 0.565841f, 0.824268f, 0.500000f, 0.750000f,
+ 1.460321f, 0.472536f, -0.046582f, 0.390568f, 0.119605f, 0.912771f, 0.750000f, 0.750000f,
+ 1.420312f, 0.471094f, -0.000000f, 0.948684f, -0.316227f, 0.000000f, 1.000000f, 0.750000f,
+ 1.431250f, 0.450000f, -0.042188f, 0.367398f, -0.570170f, 0.734796f, 0.750000f, 1.000000f,
+ 1.507916f, 0.481462f, -0.070312f, -0.038808f, 0.999007f, -0.021872f, 0.625000f, 0.500000f,
+ 1.559876f, 0.481723f, -0.068115f, -0.033383f, 0.880730f, 0.472440f, 0.500000f, 0.625000f,
+ 1.508271f, 0.479756f, -0.063858f, 0.060846f, 0.841199f, 0.537292f, 0.625000f, 0.625000f,
+ 1.463255f, 0.478041f, -0.051086f, 0.212315f, 0.799230f, 0.562276f, 0.750000f, 0.625000f,
+ 1.501330f, 0.474014f, -0.058228f, 0.144240f, 0.376853f, 0.914974f, 0.625000f, 0.750000f,
+ 1.425458f, 0.478578f, -0.032812f, -0.012465f, 0.999726f, 0.019790f, 0.875000f, 0.500000f,
+ 1.463255f, 0.478041f, -0.051086f, 0.212314f, 0.799230f, 0.562276f, 0.750000f, 0.625000f,
+ 1.431414f, 0.476827f, -0.029800f, 0.465501f, 0.764644f, 0.445677f, 0.875000f, 0.625000f,
+ 1.419336f, 0.476367f, -0.000000f, 0.650788f, 0.759260f, -0.000000f, 1.000000f, 0.625000f,
+ 1.431315f, 0.471490f, -0.027173f, 0.736016f, -0.156276f, 0.658680f, 0.875000f, 0.750000f,
+ 1.501330f, 0.474014f, -0.058228f, 0.144240f, 0.376852f, 0.914974f, 0.625000f, 0.750000f,
+ 1.528455f, 0.465189f, -0.057861f, -0.006299f, 0.244403f, 0.969653f, 0.500000f, 0.875000f,
+ 1.486523f, 0.464130f, -0.054245f, 0.177936f, -0.047578f, 0.982891f, 0.625000f, 0.875000f,
+ 1.449944f, 0.463206f, -0.043396f, 0.394294f, -0.328020f, 0.858449f, 0.750000f, 0.875000f,
+ 1.463281f, 0.450000f, -0.052734f, 0.185972f, -0.317450f, 0.929860f, 0.625000f, 1.000000f,
+ 1.431315f, 0.471490f, -0.027173f, 0.736017f, -0.156259f, 0.658682f, 0.875000f, 0.750000f,
+ 1.449944f, 0.463206f, -0.043396f, 0.394296f, -0.328022f, 0.858448f, 0.750000f, 0.875000f,
+ 1.424072f, 0.462553f, -0.025314f, 0.619509f, -0.585423f, 0.522962f, 0.875000f, 0.875000f,
+ 1.414258f, 0.462305f, -0.000000f, 0.727013f, -0.686624f, 0.000000f, 1.000000f, 0.875000f,
+ 1.408594f, 0.450000f, -0.024609f, 0.530206f, -0.740826f, 0.412382f, 0.875000f, 1.000000f,
+ 0.000000f, 0.825000f, -0.000000f, 0.674579f, 0.299813f, 0.674579f, 0.000000f, 0.000000f,
+ 0.000000f, 0.825000f, -0.000000f, 0.674579f, 0.299813f, 0.674579f, 1.000000f, 0.000000f,
+ 0.100000f, 0.600000f, -0.000000f, 0.600000f, 0.800000f, -0.000000f, 0.000000f, 1.000000f,
+ 0.000000f, 0.600000f, 0.100000f, 0.000000f, 0.800000f, 0.600000f, 1.000000f, 1.000000f,
+ 0.000000f, 0.825000f, -0.000000f, 0.674579f, 0.299813f, 0.674579f, 0.500000f, 0.000000f,
+ 0.162500f, 0.740625f, -0.000000f, 0.780869f, -0.624695f, 0.000000f, 0.000000f, 0.500000f,
+ 0.115516f, 0.740625f, 0.115516f, 0.553962f, -0.621492f, 0.553962f, 0.500000f, 0.500000f,
+ 0.000000f, 0.740625f, 0.162500f, 0.000000f, -0.624695f, 0.780869f, 1.000000f, 0.500000f,
+ 0.071000f, 0.600000f, 0.071000f, 0.427005f, 0.797078f, 0.427005f, 0.500000f, 1.000000f,
+ 0.000000f, 0.825000f, -0.000000f, 0.452928f, 0.872306f, 0.184222f, 0.250000f, 0.000000f,
+ 0.170313f, 0.800391f, -0.000000f, 0.600000f, 0.800000f, -0.000000f, 0.000000f, 0.250000f,
+ 0.157173f, 0.800391f, 0.067026f, 0.554284f, 0.799965f, 0.229837f, 0.250000f, 0.250000f,
+ 0.121080f, 0.800391f, 0.121080f, 0.422824f, 0.801523f, 0.422824f, 0.500000f, 0.250000f,
+ 0.149959f, 0.740625f, 0.063939f, 0.721237f, -0.624756f, 0.299162f, 0.250000f, 0.500000f,
+ 0.000000f, 0.825000f, -0.000000f, 0.142954f, 0.989332f, 0.028025f, 0.125000f, 0.000000f,
+ 0.115039f, 0.818408f, -0.000000f, 0.152452f, 0.988311f, -0.000000f, 0.000000f, 0.125000f,
+ 0.112750f, 0.818408f, 0.023522f, 0.149493f, 0.988317f, 0.029677f, 0.125000f, 0.125000f,
+ 0.106164f, 0.818408f, 0.045274f, 0.140386f, 0.988384f, 0.058210f, 0.250000f, 0.125000f,
+ 0.166924f, 0.800391f, 0.034822f, 0.588416f, 0.800075f, 0.116818f, 0.125000f, 0.250000f,
+ 0.000000f, 0.825000f, -0.000000f, 0.120585f, 0.989432f, 0.080516f, 0.375000f, 0.000000f,
+ 0.106164f, 0.818408f, 0.045274f, 0.140386f, 0.988384f, 0.058209f, 0.250000f, 0.125000f,
+ 0.095702f, 0.818408f, 0.064836f, 0.126226f, 0.988401f, 0.084441f, 0.375000f, 0.125000f,
+ 0.081785f, 0.818408f, 0.081785f, 0.107233f, 0.988434f, 0.107233f, 0.500000f, 0.125000f,
+ 0.141684f, 0.800391f, 0.095986f, 0.497465f, 0.801110f, 0.332794f, 0.375000f, 0.250000f,
+ 0.166924f, 0.800391f, 0.034822f, 0.588416f, 0.800075f, 0.116818f, 0.125000f, 0.250000f,
+ 0.181055f, 0.773584f, -0.000000f, 0.978147f, -0.207916f, 0.000000f, 0.000000f, 0.375000f,
+ 0.177452f, 0.773584f, 0.037016f, 0.959398f, -0.208008f, 0.190496f, 0.125000f, 0.375000f,
+ 0.167085f, 0.773584f, 0.071249f, 0.903388f, -0.208673f, 0.374628f, 0.250000f, 0.375000f,
+ 0.159265f, 0.740625f, 0.033217f, 0.765799f, -0.624831f, 0.152111f, 0.125000f, 0.500000f,
+ 0.141684f, 0.800391f, 0.095986f, 0.497465f, 0.801110f, 0.332794f, 0.375000f, 0.250000f,
+ 0.167085f, 0.773584f, 0.071249f, 0.903388f, -0.208673f, 0.374627f, 0.250000f, 0.375000f,
+ 0.150618f, 0.773584f, 0.102036f, 0.812814f, -0.208889f, 0.543782f, 0.375000f, 0.375000f,
+ 0.128714f, 0.773584f, 0.128714f, 0.691459f, -0.209208f, 0.691459f, 0.500000f, 0.375000f,
+ 0.135177f, 0.740625f, 0.091571f, 0.647897f, -0.626344f, 0.433501f, 0.375000f, 0.500000f,
+ 0.000000f, 0.825000f, -0.000000f, 0.184222f, 0.872306f, 0.452928f, 0.750000f, 0.000000f,
+ 0.121080f, 0.800391f, 0.121080f, 0.422824f, 0.801523f, 0.422824f, 0.500000f, 0.250000f,
+ 0.067026f, 0.800391f, 0.157173f, 0.229949f, 0.799746f, 0.554553f, 0.750000f, 0.250000f,
+ 0.000000f, 0.800391f, 0.170313f, 0.000000f, 0.800000f, 0.600000f, 1.000000f, 0.250000f,
+ 0.063939f, 0.740625f, 0.149959f, 0.299246f, -0.624481f, 0.721440f, 0.750000f, 0.500000f,
+ 0.000000f, 0.825000f, -0.000000f, 0.080516f, 0.989432f, 0.120585f, 0.625000f, 0.000000f,
+ 0.081785f, 0.818408f, 0.081785f, 0.107233f, 0.988434f, 0.107233f, 0.500000f, 0.125000f,
+ 0.064836f, 0.818408f, 0.095702f, 0.084445f, 0.988400f, 0.126232f, 0.625000f, 0.125000f,
+ 0.045274f, 0.818408f, 0.106164f, 0.058209f, 0.988384f, 0.140386f, 0.750000f, 0.125000f,
+ 0.095986f, 0.800391f, 0.141684f, 0.332805f, 0.801096f, 0.497480f, 0.625000f, 0.250000f,
+ 0.000000f, 0.825000f, -0.000000f, 0.028025f, 0.989332f, 0.142954f, 0.875000f, 0.000000f,
+ 0.045274f, 0.818408f, 0.106164f, 0.058210f, 0.988384f, 0.140386f, 0.750000f, 0.125000f,
+ 0.023522f, 0.818408f, 0.112750f, 0.029681f, 0.988314f, 0.149513f, 0.875000f, 0.125000f,
+ 0.000000f, 0.818408f, 0.115039f, 0.000000f, 0.988311f, 0.152452f, 1.000000f, 0.125000f,
+ 0.034822f, 0.800391f, 0.166924f, 0.116828f, 0.800035f, 0.588468f, 0.875000f, 0.250000f,
+ 0.095986f, 0.800391f, 0.141684f, 0.332805f, 0.801096f, 0.497480f, 0.625000f, 0.250000f,
+ 0.128714f, 0.773584f, 0.128714f, 0.691459f, -0.209208f, 0.691459f, 0.500000f, 0.375000f,
+ 0.102036f, 0.773584f, 0.150618f, 0.543783f, -0.208883f, 0.812815f, 0.625000f, 0.375000f,
+ 0.071249f, 0.773584f, 0.167085f, 0.374627f, -0.208673f, 0.903388f, 0.750000f, 0.375000f,
+ 0.091571f, 0.740625f, 0.135177f, 0.433508f, -0.626329f, 0.647907f, 0.625000f, 0.500000f,
+ 0.034822f, 0.800391f, 0.166924f, 0.116828f, 0.800035f, 0.588468f, 0.875000f, 0.250000f,
+ 0.071249f, 0.773584f, 0.167085f, 0.374628f, -0.208673f, 0.903388f, 0.750000f, 0.375000f,
+ 0.037016f, 0.773584f, 0.177452f, 0.190497f, -0.207986f, 0.959402f, 0.875000f, 0.375000f,
+ 0.000000f, 0.773584f, 0.181055f, 0.000000f, -0.207916f, 0.978147f, 1.000000f, 0.375000f,
+ 0.033217f, 0.740625f, 0.159265f, 0.152118f, -0.624784f, 0.765837f, 0.875000f, 0.500000f,
+ 0.149959f, 0.740625f, 0.063939f, 0.721237f, -0.624756f, 0.299162f, 0.250000f, 0.500000f,
+ 0.098437f, 0.666797f, -0.000000f, 0.819843f, -0.572589f, 0.000000f, 0.000000f, 0.750000f,
+ 0.090828f, 0.666797f, 0.038696f, 0.756991f, -0.572775f, 0.314474f, 0.250000f, 0.750000f,
+ 0.069943f, 0.666797f, 0.069943f, 0.578481f, -0.575083f, 0.578480f, 0.500000f, 0.750000f,
+ 0.092250f, 0.600000f, 0.039250f, 0.554119f, 0.799779f, 0.230883f, 0.250000f, 1.000000f,
+ 0.159265f, 0.740625f, 0.033217f, 0.765799f, -0.624831f, 0.152111f, 0.125000f, 0.500000f,
+ 0.129883f, 0.704150f, -0.000000f, 0.733920f, -0.679236f, 0.000000f, 0.000000f, 0.625000f,
+ 0.127296f, 0.704150f, 0.026539f, 0.719711f, -0.679374f, 0.143067f, 0.125000f, 0.625000f,
+ 0.119854f, 0.704150f, 0.051090f, 0.676763f, -0.680523f, 0.280858f, 0.250000f, 0.625000f,
+ 0.096475f, 0.666797f, 0.020097f, 0.803930f, -0.572768f, 0.160103f, 0.125000f, 0.750000f,
+ 0.135177f, 0.740625f, 0.091571f, 0.647897f, -0.626344f, 0.433501f, 0.375000f, 0.500000f,
+ 0.119854f, 0.704150f, 0.051090f, 0.676763f, -0.680523f, 0.280858f, 0.250000f, 0.625000f,
+ 0.108035f, 0.704150f, 0.073175f, 0.608679f, -0.680856f, 0.407364f, 0.375000f, 0.625000f,
+ 0.092316f, 0.704150f, 0.092316f, 0.517530f, -0.681414f, 0.517530f, 0.500000f, 0.625000f,
+ 0.081863f, 0.666797f, 0.055433f, 0.680115f, -0.574467f, 0.455446f, 0.375000f, 0.750000f,
+ 0.096475f, 0.666797f, 0.020097f, 0.803930f, -0.572768f, 0.160103f, 0.125000f, 0.750000f,
+ 0.083398f, 0.631201f, -0.000000f, 0.998653f, -0.051878f, 0.000000f, 0.000000f, 0.875000f,
+ 0.081732f, 0.631201f, 0.017004f, 0.979312f, -0.052085f, 0.195539f, 0.125000f, 0.875000f,
+ 0.076941f, 0.631201f, 0.032751f, 0.921944f, -0.052662f, 0.383727f, 0.250000f, 0.875000f,
+ 0.098000f, 0.600000f, 0.020375f, 0.588328f, 0.800016f, 0.117666f, 0.125000f, 1.000000f,
+ 0.081863f, 0.666797f, 0.055433f, 0.680115f, -0.574467f, 0.455446f, 0.375000f, 0.750000f,
+ 0.076941f, 0.631201f, 0.032751f, 0.921944f, -0.052662f, 0.383728f, 0.250000f, 0.875000f,
+ 0.069336f, 0.631201f, 0.046930f, 0.829512f, -0.053050f, 0.555963f, 0.375000f, 0.875000f,
+ 0.059228f, 0.631201f, 0.059228f, 0.706103f, -0.053279f, 0.706102f, 0.500000f, 0.875000f,
+ 0.083125f, 0.600000f, 0.056250f, 0.497431f, 0.800807f, 0.333571f, 0.375000f, 1.000000f,
+ 0.063939f, 0.740625f, 0.149959f, 0.299246f, -0.624480f, 0.721440f, 0.750000f, 0.500000f,
+ 0.069943f, 0.666797f, 0.069943f, 0.578480f, -0.575083f, 0.578481f, 0.500000f, 0.750000f,
+ 0.038696f, 0.666797f, 0.090828f, 0.314542f, -0.572521f, 0.757155f, 0.750000f, 0.750000f,
+ 0.000000f, 0.666797f, 0.098437f, 0.000000f, -0.572589f, 0.819843f, 1.000000f, 0.750000f,
+ 0.039250f, 0.600000f, 0.092250f, 0.230996f, 0.799557f, 0.554392f, 0.750000f, 1.000000f,
+ 0.091571f, 0.740625f, 0.135177f, 0.433508f, -0.626329f, 0.647907f, 0.625000f, 0.500000f,
+ 0.092316f, 0.704150f, 0.092316f, 0.517530f, -0.681414f, 0.517530f, 0.500000f, 0.625000f,
+ 0.073175f, 0.704150f, 0.108035f, 0.407370f, -0.680843f, 0.608689f, 0.625000f, 0.625000f,
+ 0.051090f, 0.704150f, 0.119854f, 0.280858f, -0.680523f, 0.676763f, 0.750000f, 0.625000f,
+ 0.055433f, 0.666797f, 0.081863f, 0.455449f, -0.574459f, 0.680120f, 0.625000f, 0.750000f,
+ 0.033217f, 0.740625f, 0.159265f, 0.152118f, -0.624783f, 0.765837f, 0.875000f, 0.500000f,
+ 0.051090f, 0.704150f, 0.119854f, 0.280858f, -0.680523f, 0.676763f, 0.750000f, 0.625000f,
+ 0.026539f, 0.704150f, 0.127296f, 0.143075f, -0.679330f, 0.719750f, 0.875000f, 0.625000f,
+ 0.000000f, 0.704150f, 0.129883f, 0.000000f, -0.679236f, 0.733920f, 1.000000f, 0.625000f,
+ 0.020097f, 0.666797f, 0.096475f, 0.160109f, -0.572729f, 0.803957f, 0.875000f, 0.750000f,
+ 0.055433f, 0.666797f, 0.081863f, 0.455449f, -0.574459f, 0.680120f, 0.625000f, 0.750000f,
+ 0.059228f, 0.631201f, 0.059228f, 0.706102f, -0.053279f, 0.706103f, 0.500000f, 0.875000f,
+ 0.046930f, 0.631201f, 0.069336f, 0.555963f, -0.053067f, 0.829512f, 0.625000f, 0.875000f,
+ 0.032751f, 0.631201f, 0.076941f, 0.383728f, -0.052662f, 0.921944f, 0.750000f, 0.875000f,
+ 0.056250f, 0.600000f, 0.083125f, 0.333582f, 0.800793f, 0.497447f, 0.625000f, 1.000000f,
+ 0.020097f, 0.666797f, 0.096475f, 0.160109f, -0.572729f, 0.803957f, 0.875000f, 0.750000f,
+ 0.032751f, 0.631201f, 0.076941f, 0.383727f, -0.052662f, 0.921944f, 0.750000f, 0.875000f,
+ 0.017004f, 0.631201f, 0.081732f, 0.195539f, -0.052105f, 0.979311f, 0.875000f, 0.875000f,
+ 0.000000f, 0.631201f, 0.083398f, 0.000000f, -0.051878f, 0.998653f, 1.000000f, 0.875000f,
+ 0.020375f, 0.600000f, 0.098000f, 0.117676f, 0.799975f, 0.588381f, 0.875000f, 1.000000f,
+ 0.000000f, 0.825000f, -0.000000f, -0.674579f, 0.299813f, 0.674579f, 0.000000f, 0.000000f,
+ 0.000000f, 0.825000f, -0.000000f, -0.674579f, 0.299813f, 0.674579f, 1.000000f, 0.000000f,
+ 0.000000f, 0.600000f, 0.100000f, 0.000000f, 0.800000f, 0.600000f, 0.000000f, 1.000000f,
+ -0.100000f, 0.600000f, -0.000000f, -0.600000f, 0.800000f, 0.000000f, 1.000000f, 1.000000f,
+ 0.000000f, 0.825000f, -0.000000f, -0.674579f, 0.299813f, 0.674579f, 0.500000f, 0.000000f,
+ 0.000000f, 0.740625f, 0.162500f, 0.000000f, -0.624695f, 0.780869f, 0.000000f, 0.500000f,
+ -0.115516f, 0.740625f, 0.115516f, -0.553962f, -0.621492f, 0.553962f, 0.500000f, 0.500000f,
+ -0.162500f, 0.740625f, -0.000000f, -0.780869f, -0.624695f, -0.000000f, 1.000000f, 0.500000f,
+ -0.071000f, 0.600000f, 0.071000f, -0.427005f, 0.797078f, 0.427005f, 0.500000f, 1.000000f,
+ 0.000000f, 0.825000f, -0.000000f, -0.184222f, 0.872306f, 0.452928f, 0.250000f, 0.000000f,
+ 0.000000f, 0.800391f, 0.170313f, 0.000000f, 0.800000f, 0.600000f, 0.000000f, 0.250000f,
+ -0.067026f, 0.800391f, 0.157173f, -0.229837f, 0.799965f, 0.554284f, 0.250000f, 0.250000f,
+ -0.121080f, 0.800391f, 0.121080f, -0.422824f, 0.801523f, 0.422824f, 0.500000f, 0.250000f,
+ -0.063939f, 0.740625f, 0.149959f, -0.299162f, -0.624756f, 0.721237f, 0.250000f, 0.500000f,
+ 0.000000f, 0.825000f, -0.000000f, -0.028025f, 0.989332f, 0.142954f, 0.125000f, 0.000000f,
+ 0.000000f, 0.818408f, 0.115039f, 0.000000f, 0.988311f, 0.152452f, 0.000000f, 0.125000f,
+ -0.023522f, 0.818408f, 0.112750f, -0.029677f, 0.988317f, 0.149493f, 0.125000f, 0.125000f,
+ -0.045274f, 0.818408f, 0.106164f, -0.058210f, 0.988384f, 0.140386f, 0.250000f, 0.125000f,
+ -0.034822f, 0.800391f, 0.166924f, -0.116818f, 0.800075f, 0.588416f, 0.125000f, 0.250000f,
+ 0.000000f, 0.825000f, -0.000000f, -0.080516f, 0.989432f, 0.120585f, 0.375000f, 0.000000f,
+ -0.045274f, 0.818408f, 0.106164f, -0.058209f, 0.988384f, 0.140386f, 0.250000f, 0.125000f,
+ -0.064836f, 0.818408f, 0.095702f, -0.084441f, 0.988401f, 0.126226f, 0.375000f, 0.125000f,
+ -0.081785f, 0.818408f, 0.081785f, -0.107233f, 0.988434f, 0.107233f, 0.500000f, 0.125000f,
+ -0.095986f, 0.800391f, 0.141684f, -0.332794f, 0.801110f, 0.497465f, 0.375000f, 0.250000f,
+ -0.034822f, 0.800391f, 0.166924f, -0.116818f, 0.800075f, 0.588416f, 0.125000f, 0.250000f,
+ 0.000000f, 0.773584f, 0.181055f, 0.000000f, -0.207916f, 0.978147f, 0.000000f, 0.375000f,
+ -0.037016f, 0.773584f, 0.177452f, -0.190496f, -0.208008f, 0.959398f, 0.125000f, 0.375000f,
+ -0.071249f, 0.773584f, 0.167085f, -0.374628f, -0.208673f, 0.903388f, 0.250000f, 0.375000f,
+ -0.033217f, 0.740625f, 0.159265f, -0.152111f, -0.624831f, 0.765799f, 0.125000f, 0.500000f,
+ -0.095986f, 0.800391f, 0.141684f, -0.332794f, 0.801110f, 0.497465f, 0.375000f, 0.250000f,
+ -0.071249f, 0.773584f, 0.167085f, -0.374627f, -0.208673f, 0.903388f, 0.250000f, 0.375000f,
+ -0.102036f, 0.773584f, 0.150618f, -0.543782f, -0.208889f, 0.812814f, 0.375000f, 0.375000f,
+ -0.128714f, 0.773584f, 0.128714f, -0.691459f, -0.209208f, 0.691459f, 0.500000f, 0.375000f,
+ -0.091571f, 0.740625f, 0.135177f, -0.433501f, -0.626344f, 0.647897f, 0.375000f, 0.500000f,
+ 0.000000f, 0.825000f, -0.000000f, -0.452928f, 0.872306f, 0.184222f, 0.750000f, 0.000000f,
+ -0.121080f, 0.800391f, 0.121080f, -0.422824f, 0.801523f, 0.422824f, 0.500000f, 0.250000f,
+ -0.157173f, 0.800391f, 0.067026f, -0.554553f, 0.799746f, 0.229949f, 0.750000f, 0.250000f,
+ -0.170313f, 0.800391f, -0.000000f, -0.600000f, 0.800000f, 0.000000f, 1.000000f, 0.250000f,
+ -0.149959f, 0.740625f, 0.063939f, -0.721440f, -0.624481f, 0.299246f, 0.750000f, 0.500000f,
+ 0.000000f, 0.825000f, -0.000000f, -0.120585f, 0.989432f, 0.080516f, 0.625000f, 0.000000f,
+ -0.081785f, 0.818408f, 0.081785f, -0.107233f, 0.988434f, 0.107233f, 0.500000f, 0.125000f,
+ -0.095702f, 0.818408f, 0.064836f, -0.126232f, 0.988400f, 0.084445f, 0.625000f, 0.125000f,
+ -0.106164f, 0.818408f, 0.045274f, -0.140386f, 0.988384f, 0.058209f, 0.750000f, 0.125000f,
+ -0.141684f, 0.800391f, 0.095986f, -0.497480f, 0.801096f, 0.332805f, 0.625000f, 0.250000f,
+ 0.000000f, 0.825000f, -0.000000f, -0.142954f, 0.989332f, 0.028025f, 0.875000f, 0.000000f,
+ -0.106164f, 0.818408f, 0.045274f, -0.140386f, 0.988384f, 0.058210f, 0.750000f, 0.125000f,
+ -0.112750f, 0.818408f, 0.023522f, -0.149513f, 0.988314f, 0.029681f, 0.875000f, 0.125000f,
+ -0.115039f, 0.818408f, -0.000000f, -0.152452f, 0.988311f, 0.000000f, 1.000000f, 0.125000f,
+ -0.166924f, 0.800391f, 0.034822f, -0.588468f, 0.800035f, 0.116828f, 0.875000f, 0.250000f,
+ -0.141684f, 0.800391f, 0.095986f, -0.497480f, 0.801096f, 0.332805f, 0.625000f, 0.250000f,
+ -0.128714f, 0.773584f, 0.128714f, -0.691459f, -0.209208f, 0.691459f, 0.500000f, 0.375000f,
+ -0.150618f, 0.773584f, 0.102036f, -0.812815f, -0.208883f, 0.543783f, 0.625000f, 0.375000f,
+ -0.167085f, 0.773584f, 0.071249f, -0.903388f, -0.208673f, 0.374627f, 0.750000f, 0.375000f,
+ -0.135177f, 0.740625f, 0.091571f, -0.647907f, -0.626329f, 0.433508f, 0.625000f, 0.500000f,
+ -0.166924f, 0.800391f, 0.034822f, -0.588468f, 0.800035f, 0.116828f, 0.875000f, 0.250000f,
+ -0.167085f, 0.773584f, 0.071249f, -0.903388f, -0.208673f, 0.374628f, 0.750000f, 0.375000f,
+ -0.177452f, 0.773584f, 0.037016f, -0.959402f, -0.207986f, 0.190497f, 0.875000f, 0.375000f,
+ -0.181055f, 0.773584f, -0.000000f, -0.978147f, -0.207916f, -0.000000f, 1.000000f, 0.375000f,
+ -0.159265f, 0.740625f, 0.033217f, -0.765837f, -0.624784f, 0.152118f, 0.875000f, 0.500000f,
+ -0.063939f, 0.740625f, 0.149959f, -0.299162f, -0.624756f, 0.721237f, 0.250000f, 0.500000f,
+ 0.000000f, 0.666797f, 0.098437f, 0.000000f, -0.572589f, 0.819843f, 0.000000f, 0.750000f,
+ -0.038696f, 0.666797f, 0.090828f, -0.314474f, -0.572775f, 0.756991f, 0.250000f, 0.750000f,
+ -0.069943f, 0.666797f, 0.069943f, -0.578480f, -0.575083f, 0.578481f, 0.500000f, 0.750000f,
+ -0.039250f, 0.600000f, 0.092250f, -0.230883f, 0.799779f, 0.554119f, 0.250000f, 1.000000f,
+ -0.033217f, 0.740625f, 0.159265f, -0.152111f, -0.624831f, 0.765799f, 0.125000f, 0.500000f,
+ 0.000000f, 0.704150f, 0.129883f, 0.000000f, -0.679236f, 0.733920f, 0.000000f, 0.625000f,
+ -0.026539f, 0.704150f, 0.127296f, -0.143067f, -0.679374f, 0.719711f, 0.125000f, 0.625000f,
+ -0.051090f, 0.704150f, 0.119854f, -0.280858f, -0.680523f, 0.676763f, 0.250000f, 0.625000f,
+ -0.020097f, 0.666797f, 0.096475f, -0.160103f, -0.572768f, 0.803930f, 0.125000f, 0.750000f,
+ -0.091571f, 0.740625f, 0.135177f, -0.433501f, -0.626344f, 0.647897f, 0.375000f, 0.500000f,
+ -0.051090f, 0.704150f, 0.119854f, -0.280858f, -0.680523f, 0.676763f, 0.250000f, 0.625000f,
+ -0.073175f, 0.704150f, 0.108035f, -0.407364f, -0.680856f, 0.608679f, 0.375000f, 0.625000f,
+ -0.092316f, 0.704150f, 0.092316f, -0.517530f, -0.681414f, 0.517530f, 0.500000f, 0.625000f,
+ -0.055433f, 0.666797f, 0.081863f, -0.455446f, -0.574467f, 0.680115f, 0.375000f, 0.750000f,
+ -0.020097f, 0.666797f, 0.096475f, -0.160103f, -0.572768f, 0.803930f, 0.125000f, 0.750000f,
+ 0.000000f, 0.631201f, 0.083398f, 0.000000f, -0.051878f, 0.998653f, 0.000000f, 0.875000f,
+ -0.017004f, 0.631201f, 0.081732f, -0.195539f, -0.052085f, 0.979312f, 0.125000f, 0.875000f,
+ -0.032751f, 0.631201f, 0.076941f, -0.383727f, -0.052662f, 0.921944f, 0.250000f, 0.875000f,
+ -0.020375f, 0.600000f, 0.098000f, -0.117666f, 0.800016f, 0.588328f, 0.125000f, 1.000000f,
+ -0.055433f, 0.666797f, 0.081863f, -0.455446f, -0.574467f, 0.680115f, 0.375000f, 0.750000f,
+ -0.032751f, 0.631201f, 0.076941f, -0.383728f, -0.052662f, 0.921944f, 0.250000f, 0.875000f,
+ -0.046930f, 0.631201f, 0.069336f, -0.555963f, -0.053050f, 0.829512f, 0.375000f, 0.875000f,
+ -0.059228f, 0.631201f, 0.059228f, -0.706102f, -0.053279f, 0.706103f, 0.500000f, 0.875000f,
+ -0.056250f, 0.600000f, 0.083125f, -0.333571f, 0.800807f, 0.497431f, 0.375000f, 1.000000f,
+ -0.149959f, 0.740625f, 0.063939f, -0.721440f, -0.624480f, 0.299246f, 0.750000f, 0.500000f,
+ -0.069943f, 0.666797f, 0.069943f, -0.578481f, -0.575083f, 0.578480f, 0.500000f, 0.750000f,
+ -0.090828f, 0.666797f, 0.038696f, -0.757155f, -0.572521f, 0.314542f, 0.750000f, 0.750000f,
+ -0.098437f, 0.666797f, -0.000000f, -0.819843f, -0.572589f, -0.000000f, 1.000000f, 0.750000f,
+ -0.092250f, 0.600000f, 0.039250f, -0.554392f, 0.799557f, 0.230996f, 0.750000f, 1.000000f,
+ -0.135177f, 0.740625f, 0.091571f, -0.647907f, -0.626329f, 0.433508f, 0.625000f, 0.500000f,
+ -0.092316f, 0.704150f, 0.092316f, -0.517530f, -0.681414f, 0.517530f, 0.500000f, 0.625000f,
+ -0.108035f, 0.704150f, 0.073175f, -0.608689f, -0.680843f, 0.407370f, 0.625000f, 0.625000f,
+ -0.119854f, 0.704150f, 0.051090f, -0.676763f, -0.680523f, 0.280858f, 0.750000f, 0.625000f,
+ -0.081863f, 0.666797f, 0.055433f, -0.680120f, -0.574459f, 0.455449f, 0.625000f, 0.750000f,
+ -0.159265f, 0.740625f, 0.033217f, -0.765837f, -0.624783f, 0.152118f, 0.875000f, 0.500000f,
+ -0.119854f, 0.704150f, 0.051090f, -0.676763f, -0.680523f, 0.280858f, 0.750000f, 0.625000f,
+ -0.127296f, 0.704150f, 0.026539f, -0.719750f, -0.679330f, 0.143075f, 0.875000f, 0.625000f,
+ -0.129883f, 0.704150f, -0.000000f, -0.733920f, -0.679236f, -0.000000f, 1.000000f, 0.625000f,
+ -0.096475f, 0.666797f, 0.020097f, -0.803957f, -0.572729f, 0.160109f, 0.875000f, 0.750000f,
+ -0.081863f, 0.666797f, 0.055433f, -0.680120f, -0.574459f, 0.455449f, 0.625000f, 0.750000f,
+ -0.059228f, 0.631201f, 0.059228f, -0.706103f, -0.053279f, 0.706102f, 0.500000f, 0.875000f,
+ -0.069336f, 0.631201f, 0.046930f, -0.829512f, -0.053067f, 0.555963f, 0.625000f, 0.875000f,
+ -0.076941f, 0.631201f, 0.032751f, -0.921944f, -0.052662f, 0.383728f, 0.750000f, 0.875000f,
+ -0.083125f, 0.600000f, 0.056250f, -0.497447f, 0.800793f, 0.333582f, 0.625000f, 1.000000f,
+ -0.096475f, 0.666797f, 0.020097f, -0.803957f, -0.572729f, 0.160109f, 0.875000f, 0.750000f,
+ -0.076941f, 0.631201f, 0.032751f, -0.921944f, -0.052662f, 0.383727f, 0.750000f, 0.875000f,
+ -0.081732f, 0.631201f, 0.017004f, -0.979311f, -0.052105f, 0.195539f, 0.875000f, 0.875000f,
+ -0.083398f, 0.631201f, -0.000000f, -0.998653f, -0.051878f, -0.000000f, 1.000000f, 0.875000f,
+ -0.098000f, 0.600000f, 0.020375f, -0.588381f, 0.799975f, 0.117676f, 0.875000f, 1.000000f,
+ 0.000000f, 0.825000f, -0.000000f, -0.674579f, 0.299813f, -0.674579f, 0.000000f, 0.000000f,
+ 0.000000f, 0.825000f, -0.000000f, -0.674579f, 0.299813f, -0.674579f, 1.000000f, 0.000000f,
+ -0.100000f, 0.600000f, -0.000000f, -0.600000f, 0.800000f, 0.000000f, 0.000000f, 1.000000f,
+ 0.000000f, 0.600000f, -0.100000f, 0.000000f, 0.800000f, -0.600000f, 1.000000f, 1.000000f,
+ 0.000000f, 0.825000f, -0.000000f, -0.674579f, 0.299813f, -0.674579f, 0.500000f, 0.000000f,
+ -0.162500f, 0.740625f, -0.000000f, -0.780869f, -0.624695f, -0.000000f, 0.000000f, 0.500000f,
+ -0.115516f, 0.740625f, -0.115516f, -0.553962f, -0.621492f, -0.553962f, 0.500000f, 0.500000f,
+ 0.000000f, 0.740625f, -0.162500f, 0.000000f, -0.624695f, -0.780869f, 1.000000f, 0.500000f,
+ -0.071000f, 0.600000f, -0.071000f, -0.427005f, 0.797078f, -0.427005f, 0.500000f, 1.000000f,
+ 0.000000f, 0.825000f, -0.000000f, -0.452928f, 0.872306f, -0.184222f, 0.250000f, 0.000000f,
+ -0.170313f, 0.800391f, -0.000000f, -0.600000f, 0.800000f, 0.000000f, 0.000000f, 0.250000f,
+ -0.157173f, 0.800391f, -0.067026f, -0.554284f, 0.799965f, -0.229837f, 0.250000f, 0.250000f,
+ -0.121080f, 0.800391f, -0.121080f, -0.422824f, 0.801523f, -0.422824f, 0.500000f, 0.250000f,
+ -0.149959f, 0.740625f, -0.063939f, -0.721237f, -0.624756f, -0.299162f, 0.250000f, 0.500000f,
+ 0.000000f, 0.825000f, -0.000000f, -0.142954f, 0.989332f, -0.028025f, 0.125000f, 0.000000f,
+ -0.115039f, 0.818408f, -0.000000f, -0.152452f, 0.988311f, 0.000000f, 0.000000f, 0.125000f,
+ -0.112750f, 0.818408f, -0.023522f, -0.149493f, 0.988317f, -0.029677f, 0.125000f, 0.125000f,
+ -0.106164f, 0.818408f, -0.045274f, -0.140386f, 0.988384f, -0.058210f, 0.250000f, 0.125000f,
+ -0.166924f, 0.800391f, -0.034822f, -0.588416f, 0.800075f, -0.116818f, 0.125000f, 0.250000f,
+ 0.000000f, 0.825000f, -0.000000f, -0.120585f, 0.989432f, -0.080516f, 0.375000f, 0.000000f,
+ -0.106164f, 0.818408f, -0.045274f, -0.140386f, 0.988384f, -0.058209f, 0.250000f, 0.125000f,
+ -0.095702f, 0.818408f, -0.064836f, -0.126226f, 0.988401f, -0.084441f, 0.375000f, 0.125000f,
+ -0.081785f, 0.818408f, -0.081785f, -0.107233f, 0.988434f, -0.107233f, 0.500000f, 0.125000f,
+ -0.141684f, 0.800391f, -0.095986f, -0.497465f, 0.801110f, -0.332794f, 0.375000f, 0.250000f,
+ -0.166924f, 0.800391f, -0.034822f, -0.588416f, 0.800075f, -0.116818f, 0.125000f, 0.250000f,
+ -0.181055f, 0.773584f, -0.000000f, -0.978147f, -0.207916f, -0.000000f, 0.000000f, 0.375000f,
+ -0.177452f, 0.773584f, -0.037016f, -0.959398f, -0.208008f, -0.190496f, 0.125000f, 0.375000f,
+ -0.167085f, 0.773584f, -0.071249f, -0.903388f, -0.208673f, -0.374628f, 0.250000f, 0.375000f,
+ -0.159265f, 0.740625f, -0.033217f, -0.765799f, -0.624831f, -0.152111f, 0.125000f, 0.500000f,
+ -0.141684f, 0.800391f, -0.095986f, -0.497465f, 0.801110f, -0.332794f, 0.375000f, 0.250000f,
+ -0.167085f, 0.773584f, -0.071249f, -0.903388f, -0.208673f, -0.374627f, 0.250000f, 0.375000f,
+ -0.150618f, 0.773584f, -0.102036f, -0.812814f, -0.208889f, -0.543782f, 0.375000f, 0.375000f,
+ -0.128714f, 0.773584f, -0.128714f, -0.691459f, -0.209208f, -0.691459f, 0.500000f, 0.375000f,
+ -0.135177f, 0.740625f, -0.091571f, -0.647897f, -0.626344f, -0.433501f, 0.375000f, 0.500000f,
+ 0.000000f, 0.825000f, -0.000000f, -0.184222f, 0.872306f, -0.452928f, 0.750000f, 0.000000f,
+ -0.121080f, 0.800391f, -0.121080f, -0.422824f, 0.801523f, -0.422824f, 0.500000f, 0.250000f,
+ -0.067026f, 0.800391f, -0.157173f, -0.229949f, 0.799746f, -0.554553f, 0.750000f, 0.250000f,
+ 0.000000f, 0.800391f, -0.170313f, 0.000000f, 0.800000f, -0.600000f, 1.000000f, 0.250000f,
+ -0.063939f, 0.740625f, -0.149959f, -0.299246f, -0.624481f, -0.721440f, 0.750000f, 0.500000f,
+ 0.000000f, 0.825000f, -0.000000f, -0.080516f, 0.989432f, -0.120585f, 0.625000f, 0.000000f,
+ -0.081785f, 0.818408f, -0.081785f, -0.107233f, 0.988434f, -0.107233f, 0.500000f, 0.125000f,
+ -0.064836f, 0.818408f, -0.095702f, -0.084445f, 0.988400f, -0.126232f, 0.625000f, 0.125000f,
+ -0.045274f, 0.818408f, -0.106164f, -0.058209f, 0.988384f, -0.140386f, 0.750000f, 0.125000f,
+ -0.095986f, 0.800391f, -0.141684f, -0.332805f, 0.801096f, -0.497480f, 0.625000f, 0.250000f,
+ 0.000000f, 0.825000f, -0.000000f, -0.028025f, 0.989332f, -0.142954f, 0.875000f, 0.000000f,
+ -0.045274f, 0.818408f, -0.106164f, -0.058210f, 0.988384f, -0.140386f, 0.750000f, 0.125000f,
+ -0.023522f, 0.818408f, -0.112750f, -0.029681f, 0.988314f, -0.149513f, 0.875000f, 0.125000f,
+ 0.000000f, 0.818408f, -0.115039f, 0.000000f, 0.988311f, -0.152452f, 1.000000f, 0.125000f,
+ -0.034822f, 0.800391f, -0.166924f, -0.116828f, 0.800035f, -0.588468f, 0.875000f, 0.250000f,
+ -0.095986f, 0.800391f, -0.141684f, -0.332805f, 0.801096f, -0.497480f, 0.625000f, 0.250000f,
+ -0.128714f, 0.773584f, -0.128714f, -0.691459f, -0.209208f, -0.691459f, 0.500000f, 0.375000f,
+ -0.102036f, 0.773584f, -0.150618f, -0.543783f, -0.208883f, -0.812815f, 0.625000f, 0.375000f,
+ -0.071249f, 0.773584f, -0.167085f, -0.374627f, -0.208673f, -0.903388f, 0.750000f, 0.375000f,
+ -0.091571f, 0.740625f, -0.135177f, -0.433508f, -0.626329f, -0.647907f, 0.625000f, 0.500000f,
+ -0.034822f, 0.800391f, -0.166924f, -0.116828f, 0.800035f, -0.588468f, 0.875000f, 0.250000f,
+ -0.071249f, 0.773584f, -0.167085f, -0.374628f, -0.208673f, -0.903388f, 0.750000f, 0.375000f,
+ -0.037016f, 0.773584f, -0.177452f, -0.190497f, -0.207986f, -0.959402f, 0.875000f, 0.375000f,
+ 0.000000f, 0.773584f, -0.181055f, 0.000000f, -0.207916f, -0.978147f, 1.000000f, 0.375000f,
+ -0.033217f, 0.740625f, -0.159265f, -0.152118f, -0.624784f, -0.765837f, 0.875000f, 0.500000f,
+ -0.149959f, 0.740625f, -0.063939f, -0.721237f, -0.624756f, -0.299162f, 0.250000f, 0.500000f,
+ -0.098437f, 0.666797f, -0.000000f, -0.819843f, -0.572589f, -0.000000f, 0.000000f, 0.750000f,
+ -0.090828f, 0.666797f, -0.038696f, -0.756991f, -0.572775f, -0.314474f, 0.250000f, 0.750000f,
+ -0.069943f, 0.666797f, -0.069943f, -0.578481f, -0.575083f, -0.578480f, 0.500000f, 0.750000f,
+ -0.092250f, 0.600000f, -0.039250f, -0.554119f, 0.799779f, -0.230883f, 0.250000f, 1.000000f,
+ -0.159265f, 0.740625f, -0.033217f, -0.765799f, -0.624831f, -0.152111f, 0.125000f, 0.500000f,
+ -0.129883f, 0.704150f, -0.000000f, -0.733920f, -0.679236f, -0.000000f, 0.000000f, 0.625000f,
+ -0.127296f, 0.704150f, -0.026539f, -0.719711f, -0.679374f, -0.143067f, 0.125000f, 0.625000f,
+ -0.119854f, 0.704150f, -0.051090f, -0.676763f, -0.680523f, -0.280858f, 0.250000f, 0.625000f,
+ -0.096475f, 0.666797f, -0.020097f, -0.803930f, -0.572768f, -0.160103f, 0.125000f, 0.750000f,
+ -0.135177f, 0.740625f, -0.091571f, -0.647897f, -0.626344f, -0.433501f, 0.375000f, 0.500000f,
+ -0.119854f, 0.704150f, -0.051090f, -0.676763f, -0.680523f, -0.280858f, 0.250000f, 0.625000f,
+ -0.108035f, 0.704150f, -0.073175f, -0.608679f, -0.680856f, -0.407364f, 0.375000f, 0.625000f,
+ -0.092316f, 0.704150f, -0.092316f, -0.517530f, -0.681414f, -0.517530f, 0.500000f, 0.625000f,
+ -0.081863f, 0.666797f, -0.055433f, -0.680115f, -0.574467f, -0.455446f, 0.375000f, 0.750000f,
+ -0.096475f, 0.666797f, -0.020097f, -0.803930f, -0.572768f, -0.160103f, 0.125000f, 0.750000f,
+ -0.083398f, 0.631201f, -0.000000f, -0.998653f, -0.051878f, -0.000000f, 0.000000f, 0.875000f,
+ -0.081732f, 0.631201f, -0.017004f, -0.979312f, -0.052085f, -0.195539f, 0.125000f, 0.875000f,
+ -0.076941f, 0.631201f, -0.032751f, -0.921944f, -0.052662f, -0.383727f, 0.250000f, 0.875000f,
+ -0.098000f, 0.600000f, -0.020375f, -0.588328f, 0.800016f, -0.117666f, 0.125000f, 1.000000f,
+ -0.081863f, 0.666797f, -0.055433f, -0.680115f, -0.574467f, -0.455446f, 0.375000f, 0.750000f,
+ -0.076941f, 0.631201f, -0.032751f, -0.921944f, -0.052662f, -0.383728f, 0.250000f, 0.875000f,
+ -0.069336f, 0.631201f, -0.046930f, -0.829512f, -0.053050f, -0.555963f, 0.375000f, 0.875000f,
+ -0.059228f, 0.631201f, -0.059228f, -0.706103f, -0.053279f, -0.706102f, 0.500000f, 0.875000f,
+ -0.083125f, 0.600000f, -0.056250f, -0.497431f, 0.800807f, -0.333571f, 0.375000f, 1.000000f,
+ -0.063939f, 0.740625f, -0.149959f, -0.299246f, -0.624480f, -0.721440f, 0.750000f, 0.500000f,
+ -0.069943f, 0.666797f, -0.069943f, -0.578480f, -0.575083f, -0.578481f, 0.500000f, 0.750000f,
+ -0.038696f, 0.666797f, -0.090828f, -0.314542f, -0.572521f, -0.757155f, 0.750000f, 0.750000f,
+ 0.000000f, 0.666797f, -0.098437f, 0.000000f, -0.572589f, -0.819843f, 1.000000f, 0.750000f,
+ -0.039250f, 0.600000f, -0.092250f, -0.230996f, 0.799557f, -0.554392f, 0.750000f, 1.000000f,
+ -0.091571f, 0.740625f, -0.135177f, -0.433508f, -0.626329f, -0.647907f, 0.625000f, 0.500000f,
+ -0.092316f, 0.704150f, -0.092316f, -0.517530f, -0.681414f, -0.517530f, 0.500000f, 0.625000f,
+ -0.073175f, 0.704150f, -0.108035f, -0.407370f, -0.680843f, -0.608689f, 0.625000f, 0.625000f,
+ -0.051090f, 0.704150f, -0.119854f, -0.280858f, -0.680523f, -0.676763f, 0.750000f, 0.625000f,
+ -0.055433f, 0.666797f, -0.081863f, -0.455449f, -0.574459f, -0.680120f, 0.625000f, 0.750000f,
+ -0.033217f, 0.740625f, -0.159265f, -0.152118f, -0.624783f, -0.765837f, 0.875000f, 0.500000f,
+ -0.051090f, 0.704150f, -0.119854f, -0.280858f, -0.680523f, -0.676763f, 0.750000f, 0.625000f,
+ -0.026539f, 0.704150f, -0.127296f, -0.143075f, -0.679330f, -0.719750f, 0.875000f, 0.625000f,
+ 0.000000f, 0.704150f, -0.129883f, 0.000000f, -0.679236f, -0.733920f, 1.000000f, 0.625000f,
+ -0.020097f, 0.666797f, -0.096475f, -0.160109f, -0.572729f, -0.803957f, 0.875000f, 0.750000f,
+ -0.055433f, 0.666797f, -0.081863f, -0.455449f, -0.574459f, -0.680120f, 0.625000f, 0.750000f,
+ -0.059228f, 0.631201f, -0.059228f, -0.706102f, -0.053279f, -0.706103f, 0.500000f, 0.875000f,
+ -0.046930f, 0.631201f, -0.069336f, -0.555963f, -0.053067f, -0.829512f, 0.625000f, 0.875000f,
+ -0.032751f, 0.631201f, -0.076941f, -0.383728f, -0.052662f, -0.921944f, 0.750000f, 0.875000f,
+ -0.056250f, 0.600000f, -0.083125f, -0.333582f, 0.800793f, -0.497447f, 0.625000f, 1.000000f,
+ -0.020097f, 0.666797f, -0.096475f, -0.160109f, -0.572729f, -0.803957f, 0.875000f, 0.750000f,
+ -0.032751f, 0.631201f, -0.076941f, -0.383727f, -0.052662f, -0.921944f, 0.750000f, 0.875000f,
+ -0.017004f, 0.631201f, -0.081732f, -0.195539f, -0.052105f, -0.979311f, 0.875000f, 0.875000f,
+ 0.000000f, 0.631201f, -0.083398f, 0.000000f, -0.051878f, -0.998653f, 1.000000f, 0.875000f,
+ -0.020375f, 0.600000f, -0.098000f, -0.117676f, 0.799975f, -0.588381f, 0.875000f, 1.000000f,
+ 0.000000f, 0.825000f, -0.000000f, 0.674579f, 0.299813f, -0.674579f, 0.000000f, 0.000000f,
+ 0.000000f, 0.825000f, -0.000000f, 0.674579f, 0.299813f, -0.674579f, 1.000000f, 0.000000f,
+ 0.000000f, 0.600000f, -0.100000f, 0.000000f, 0.800000f, -0.600000f, 0.000000f, 1.000000f,
+ 0.100000f, 0.600000f, -0.000000f, 0.600000f, 0.800000f, -0.000000f, 1.000000f, 1.000000f,
+ 0.000000f, 0.825000f, -0.000000f, 0.674579f, 0.299813f, -0.674579f, 0.500000f, 0.000000f,
+ 0.000000f, 0.740625f, -0.162500f, 0.000000f, -0.624695f, -0.780869f, 0.000000f, 0.500000f,
+ 0.115516f, 0.740625f, -0.115516f, 0.553962f, -0.621492f, -0.553962f, 0.500000f, 0.500000f,
+ 0.162500f, 0.740625f, -0.000000f, 0.780869f, -0.624695f, 0.000000f, 1.000000f, 0.500000f,
+ 0.071000f, 0.600000f, -0.071000f, 0.427005f, 0.797078f, -0.427005f, 0.500000f, 1.000000f,
+ 0.000000f, 0.825000f, -0.000000f, 0.184222f, 0.872306f, -0.452928f, 0.250000f, 0.000000f,
+ 0.000000f, 0.800391f, -0.170313f, 0.000000f, 0.800000f, -0.600000f, 0.000000f, 0.250000f,
+ 0.067026f, 0.800391f, -0.157173f, 0.229837f, 0.799965f, -0.554284f, 0.250000f, 0.250000f,
+ 0.121080f, 0.800391f, -0.121080f, 0.422824f, 0.801523f, -0.422824f, 0.500000f, 0.250000f,
+ 0.063939f, 0.740625f, -0.149959f, 0.299162f, -0.624756f, -0.721237f, 0.250000f, 0.500000f,
+ 0.000000f, 0.825000f, -0.000000f, 0.028025f, 0.989332f, -0.142954f, 0.125000f, 0.000000f,
+ 0.000000f, 0.818408f, -0.115039f, 0.000000f, 0.988311f, -0.152452f, 0.000000f, 0.125000f,
+ 0.023522f, 0.818408f, -0.112750f, 0.029677f, 0.988317f, -0.149493f, 0.125000f, 0.125000f,
+ 0.045274f, 0.818408f, -0.106164f, 0.058210f, 0.988384f, -0.140386f, 0.250000f, 0.125000f,
+ 0.034822f, 0.800391f, -0.166924f, 0.116818f, 0.800075f, -0.588416f, 0.125000f, 0.250000f,
+ 0.000000f, 0.825000f, -0.000000f, 0.080516f, 0.989432f, -0.120585f, 0.375000f, 0.000000f,
+ 0.045274f, 0.818408f, -0.106164f, 0.058209f, 0.988384f, -0.140386f, 0.250000f, 0.125000f,
+ 0.064836f, 0.818408f, -0.095702f, 0.084441f, 0.988401f, -0.126226f, 0.375000f, 0.125000f,
+ 0.081785f, 0.818408f, -0.081785f, 0.107233f, 0.988434f, -0.107233f, 0.500000f, 0.125000f,
+ 0.095986f, 0.800391f, -0.141684f, 0.332794f, 0.801110f, -0.497465f, 0.375000f, 0.250000f,
+ 0.034822f, 0.800391f, -0.166924f, 0.116818f, 0.800075f, -0.588416f, 0.125000f, 0.250000f,
+ 0.000000f, 0.773584f, -0.181055f, 0.000000f, -0.207916f, -0.978147f, 0.000000f, 0.375000f,
+ 0.037016f, 0.773584f, -0.177452f, 0.190496f, -0.208008f, -0.959398f, 0.125000f, 0.375000f,
+ 0.071249f, 0.773584f, -0.167085f, 0.374628f, -0.208673f, -0.903388f, 0.250000f, 0.375000f,
+ 0.033217f, 0.740625f, -0.159265f, 0.152111f, -0.624831f, -0.765799f, 0.125000f, 0.500000f,
+ 0.095986f, 0.800391f, -0.141684f, 0.332794f, 0.801110f, -0.497465f, 0.375000f, 0.250000f,
+ 0.071249f, 0.773584f, -0.167085f, 0.374627f, -0.208673f, -0.903388f, 0.250000f, 0.375000f,
+ 0.102036f, 0.773584f, -0.150618f, 0.543782f, -0.208889f, -0.812814f, 0.375000f, 0.375000f,
+ 0.128714f, 0.773584f, -0.128714f, 0.691459f, -0.209208f, -0.691459f, 0.500000f, 0.375000f,
+ 0.091571f, 0.740625f, -0.135177f, 0.433501f, -0.626344f, -0.647897f, 0.375000f, 0.500000f,
+ 0.000000f, 0.825000f, -0.000000f, 0.452928f, 0.872306f, -0.184222f, 0.750000f, 0.000000f,
+ 0.121080f, 0.800391f, -0.121080f, 0.422824f, 0.801523f, -0.422824f, 0.500000f, 0.250000f,
+ 0.157173f, 0.800391f, -0.067026f, 0.554553f, 0.799746f, -0.229949f, 0.750000f, 0.250000f,
+ 0.170313f, 0.800391f, -0.000000f, 0.600000f, 0.800000f, -0.000000f, 1.000000f, 0.250000f,
+ 0.149959f, 0.740625f, -0.063939f, 0.721440f, -0.624481f, -0.299246f, 0.750000f, 0.500000f,
+ 0.000000f, 0.825000f, -0.000000f, 0.120585f, 0.989432f, -0.080516f, 0.625000f, 0.000000f,
+ 0.081785f, 0.818408f, -0.081785f, 0.107233f, 0.988434f, -0.107233f, 0.500000f, 0.125000f,
+ 0.095702f, 0.818408f, -0.064836f, 0.126232f, 0.988400f, -0.084445f, 0.625000f, 0.125000f,
+ 0.106164f, 0.818408f, -0.045274f, 0.140386f, 0.988384f, -0.058209f, 0.750000f, 0.125000f,
+ 0.141684f, 0.800391f, -0.095986f, 0.497480f, 0.801096f, -0.332805f, 0.625000f, 0.250000f,
+ 0.000000f, 0.825000f, -0.000000f, 0.142954f, 0.989332f, -0.028025f, 0.875000f, 0.000000f,
+ 0.106164f, 0.818408f, -0.045274f, 0.140386f, 0.988384f, -0.058210f, 0.750000f, 0.125000f,
+ 0.112750f, 0.818408f, -0.023522f, 0.149513f, 0.988314f, -0.029681f, 0.875000f, 0.125000f,
+ 0.115039f, 0.818408f, -0.000000f, 0.152452f, 0.988311f, -0.000000f, 1.000000f, 0.125000f,
+ 0.166924f, 0.800391f, -0.034822f, 0.588468f, 0.800035f, -0.116828f, 0.875000f, 0.250000f,
+ 0.141684f, 0.800391f, -0.095986f, 0.497480f, 0.801096f, -0.332805f, 0.625000f, 0.250000f,
+ 0.128714f, 0.773584f, -0.128714f, 0.691459f, -0.209208f, -0.691459f, 0.500000f, 0.375000f,
+ 0.150618f, 0.773584f, -0.102036f, 0.812815f, -0.208883f, -0.543783f, 0.625000f, 0.375000f,
+ 0.167085f, 0.773584f, -0.071249f, 0.903388f, -0.208673f, -0.374627f, 0.750000f, 0.375000f,
+ 0.135177f, 0.740625f, -0.091571f, 0.647907f, -0.626329f, -0.433508f, 0.625000f, 0.500000f,
+ 0.166924f, 0.800391f, -0.034822f, 0.588468f, 0.800035f, -0.116828f, 0.875000f, 0.250000f,
+ 0.167085f, 0.773584f, -0.071249f, 0.903388f, -0.208673f, -0.374628f, 0.750000f, 0.375000f,
+ 0.177452f, 0.773584f, -0.037016f, 0.959402f, -0.207986f, -0.190497f, 0.875000f, 0.375000f,
+ 0.181055f, 0.773584f, -0.000000f, 0.978147f, -0.207916f, 0.000000f, 1.000000f, 0.375000f,
+ 0.159265f, 0.740625f, -0.033217f, 0.765837f, -0.624784f, -0.152118f, 0.875000f, 0.500000f,
+ 0.063939f, 0.740625f, -0.149959f, 0.299162f, -0.624756f, -0.721237f, 0.250000f, 0.500000f,
+ 0.000000f, 0.666797f, -0.098437f, 0.000000f, -0.572589f, -0.819843f, 0.000000f, 0.750000f,
+ 0.038696f, 0.666797f, -0.090828f, 0.314474f, -0.572775f, -0.756991f, 0.250000f, 0.750000f,
+ 0.069943f, 0.666797f, -0.069943f, 0.578480f, -0.575083f, -0.578481f, 0.500000f, 0.750000f,
+ 0.039250f, 0.600000f, -0.092250f, 0.230883f, 0.799779f, -0.554119f, 0.250000f, 1.000000f,
+ 0.033217f, 0.740625f, -0.159265f, 0.152111f, -0.624831f, -0.765799f, 0.125000f, 0.500000f,
+ 0.000000f, 0.704150f, -0.129883f, 0.000000f, -0.679236f, -0.733920f, 0.000000f, 0.625000f,
+ 0.026539f, 0.704150f, -0.127296f, 0.143067f, -0.679374f, -0.719711f, 0.125000f, 0.625000f,
+ 0.051090f, 0.704150f, -0.119854f, 0.280858f, -0.680523f, -0.676763f, 0.250000f, 0.625000f,
+ 0.020097f, 0.666797f, -0.096475f, 0.160103f, -0.572768f, -0.803930f, 0.125000f, 0.750000f,
+ 0.091571f, 0.740625f, -0.135177f, 0.433501f, -0.626344f, -0.647897f, 0.375000f, 0.500000f,
+ 0.051090f, 0.704150f, -0.119854f, 0.280858f, -0.680523f, -0.676763f, 0.250000f, 0.625000f,
+ 0.073175f, 0.704150f, -0.108035f, 0.407364f, -0.680856f, -0.608679f, 0.375000f, 0.625000f,
+ 0.092316f, 0.704150f, -0.092316f, 0.517530f, -0.681414f, -0.517530f, 0.500000f, 0.625000f,
+ 0.055433f, 0.666797f, -0.081863f, 0.455446f, -0.574467f, -0.680115f, 0.375000f, 0.750000f,
+ 0.020097f, 0.666797f, -0.096475f, 0.160103f, -0.572768f, -0.803930f, 0.125000f, 0.750000f,
+ 0.000000f, 0.631201f, -0.083398f, 0.000000f, -0.051878f, -0.998653f, 0.000000f, 0.875000f,
+ 0.017004f, 0.631201f, -0.081732f, 0.195539f, -0.052085f, -0.979312f, 0.125000f, 0.875000f,
+ 0.032751f, 0.631201f, -0.076941f, 0.383727f, -0.052662f, -0.921944f, 0.250000f, 0.875000f,
+ 0.020375f, 0.600000f, -0.098000f, 0.117666f, 0.800016f, -0.588328f, 0.125000f, 1.000000f,
+ 0.055433f, 0.666797f, -0.081863f, 0.455446f, -0.574467f, -0.680115f, 0.375000f, 0.750000f,
+ 0.032751f, 0.631201f, -0.076941f, 0.383728f, -0.052662f, -0.921944f, 0.250000f, 0.875000f,
+ 0.046930f, 0.631201f, -0.069336f, 0.555963f, -0.053050f, -0.829512f, 0.375000f, 0.875000f,
+ 0.059228f, 0.631201f, -0.059228f, 0.706102f, -0.053279f, -0.706103f, 0.500000f, 0.875000f,
+ 0.056250f, 0.600000f, -0.083125f, 0.333571f, 0.800807f, -0.497431f, 0.375000f, 1.000000f,
+ 0.149959f, 0.740625f, -0.063939f, 0.721440f, -0.624480f, -0.299246f, 0.750000f, 0.500000f,
+ 0.069943f, 0.666797f, -0.069943f, 0.578481f, -0.575083f, -0.578480f, 0.500000f, 0.750000f,
+ 0.090828f, 0.666797f, -0.038696f, 0.757155f, -0.572521f, -0.314542f, 0.750000f, 0.750000f,
+ 0.098437f, 0.666797f, -0.000000f, 0.819843f, -0.572589f, 0.000000f, 1.000000f, 0.750000f,
+ 0.092250f, 0.600000f, -0.039250f, 0.554392f, 0.799557f, -0.230996f, 0.750000f, 1.000000f,
+ 0.135177f, 0.740625f, -0.091571f, 0.647907f, -0.626329f, -0.433508f, 0.625000f, 0.500000f,
+ 0.092316f, 0.704150f, -0.092316f, 0.517530f, -0.681414f, -0.517530f, 0.500000f, 0.625000f,
+ 0.108035f, 0.704150f, -0.073175f, 0.608689f, -0.680843f, -0.407370f, 0.625000f, 0.625000f,
+ 0.119854f, 0.704150f, -0.051090f, 0.676763f, -0.680523f, -0.280858f, 0.750000f, 0.625000f,
+ 0.081863f, 0.666797f, -0.055433f, 0.680120f, -0.574459f, -0.455449f, 0.625000f, 0.750000f,
+ 0.159265f, 0.740625f, -0.033217f, 0.765837f, -0.624783f, -0.152118f, 0.875000f, 0.500000f,
+ 0.119854f, 0.704150f, -0.051090f, 0.676763f, -0.680523f, -0.280858f, 0.750000f, 0.625000f,
+ 0.127296f, 0.704150f, -0.026539f, 0.719750f, -0.679330f, -0.143075f, 0.875000f, 0.625000f,
+ 0.129883f, 0.704150f, -0.000000f, 0.733920f, -0.679236f, 0.000000f, 1.000000f, 0.625000f,
+ 0.096475f, 0.666797f, -0.020097f, 0.803957f, -0.572729f, -0.160109f, 0.875000f, 0.750000f,
+ 0.081863f, 0.666797f, -0.055433f, 0.680120f, -0.574459f, -0.455449f, 0.625000f, 0.750000f,
+ 0.059228f, 0.631201f, -0.059228f, 0.706103f, -0.053279f, -0.706102f, 0.500000f, 0.875000f,
+ 0.069336f, 0.631201f, -0.046930f, 0.829512f, -0.053067f, -0.555963f, 0.625000f, 0.875000f,
+ 0.076941f, 0.631201f, -0.032751f, 0.921944f, -0.052662f, -0.383728f, 0.750000f, 0.875000f,
+ 0.083125f, 0.600000f, -0.056250f, 0.497447f, 0.800793f, -0.333582f, 0.625000f, 1.000000f,
+ 0.096475f, 0.666797f, -0.020097f, 0.803957f, -0.572729f, -0.160109f, 0.875000f, 0.750000f,
+ 0.076941f, 0.631201f, -0.032751f, 0.921944f, -0.052662f, -0.383727f, 0.750000f, 0.875000f,
+ 0.081732f, 0.631201f, -0.017004f, 0.979311f, -0.052105f, -0.195539f, 0.875000f, 0.875000f,
+ 0.083398f, 0.631201f, -0.000000f, 0.998653f, -0.051878f, 0.000000f, 1.000000f, 0.875000f,
+ 0.098000f, 0.600000f, -0.020375f, 0.588381f, 0.799975f, -0.117676f, 0.875000f, 1.000000f,
+ 0.100000f, 0.600000f, -0.000000f, 0.600000f, 0.800000f, -0.000000f, 0.000000f, 0.000000f,
+ 0.000000f, 0.600000f, 0.100000f, 0.000000f, 0.800000f, 0.600000f, 1.000000f, 0.000000f,
+ 0.650000f, 0.450000f, -0.000000f, 1.000000f, 0.000000f, -0.000000f, 0.000000f, 1.000000f,
+ 0.000000f, 0.450000f, 0.650000f, 0.000000f, 0.000000f, 1.000000f, 1.000000f, 1.000000f,
+ 0.071000f, 0.600000f, 0.071000f, 0.427006f, 0.797077f, 0.427006f, 0.500000f, 0.000000f,
+ 0.412500f, 0.525000f, -0.000000f, 0.148340f, 0.988936f, -0.000000f, 0.000000f, 0.500000f,
+ 0.292875f, 0.525000f, 0.292875f, 0.105934f, 0.988714f, 0.105934f, 0.500000f, 0.500000f,
+ 0.000000f, 0.525000f, 0.412500f, 0.000000f, 0.988936f, 0.148340f, 1.000000f, 0.500000f,
+ 0.461500f, 0.450000f, 0.461500f, 0.707107f, 0.000000f, 0.707107f, 0.500000f, 1.000000f,
+ 0.092250f, 0.600000f, 0.039250f, 0.554119f, 0.799778f, 0.230883f, 0.250000f, 0.000000f,
+ 0.228125f, 0.555469f, -0.000000f, 0.203954f, 0.978980f, -0.000000f, 0.000000f, 0.250000f,
+ 0.210445f, 0.555469f, 0.089539f, 0.188404f, 0.978949f, 0.078502f, 0.250000f, 0.250000f,
+ 0.161969f, 0.555469f, 0.161969f, 0.143654f, 0.979146f, 0.143654f, 0.500000f, 0.250000f,
+ 0.380531f, 0.525000f, 0.161906f, 0.137033f, 0.988920f, 0.057097f, 0.250000f, 0.500000f,
+ 0.098000f, 0.600000f, 0.020375f, 0.588329f, 0.800015f, 0.117666f, 0.125000f, 0.000000f,
+ 0.152344f, 0.575098f, -0.000000f, 0.317497f, 0.948259f, -0.000000f, 0.000000f, 0.125000f,
+ 0.149297f, 0.575098f, 0.031040f, 0.311317f, 0.948264f, 0.062263f, 0.125000f, 0.125000f,
+ 0.140537f, 0.575098f, 0.059795f, 0.292417f, 0.948497f, 0.121840f, 0.250000f, 0.125000f,
+ 0.223562f, 0.555469f, 0.046480f, 0.199984f, 0.978983f, 0.039997f, 0.125000f, 0.250000f,
+ 0.083125f, 0.600000f, 0.056250f, 0.497432f, 0.800807f, 0.333572f, 0.375000f, 0.000000f,
+ 0.140537f, 0.575098f, 0.059795f, 0.292417f, 0.948497f, 0.121840f, 0.250000f, 0.125000f,
+ 0.126636f, 0.575098f, 0.085693f, 0.263031f, 0.948527f, 0.176386f, 0.375000f, 0.125000f,
+ 0.108164f, 0.575098f, 0.108164f, 0.223681f, 0.948648f, 0.223681f, 0.500000f, 0.125000f,
+ 0.189629f, 0.555469f, 0.128320f, 0.168938f, 0.979094f, 0.113288f, 0.375000f, 0.250000f,
+ 0.223562f, 0.555469f, 0.046480f, 0.199985f, 0.978982f, 0.039997f, 0.125000f, 0.250000f,
+ 0.317969f, 0.539355f, -0.000000f, 0.157389f, 0.987537f, -0.000000f, 0.000000f, 0.375000f,
+ 0.311609f, 0.539355f, 0.064786f, 0.154325f, 0.987538f, 0.030865f, 0.125000f, 0.375000f,
+ 0.293326f, 0.539355f, 0.124803f, 0.144929f, 0.987598f, 0.060387f, 0.250000f, 0.375000f,
+ 0.404250f, 0.525000f, 0.084047f, 0.145452f, 0.988938f, 0.029090f, 0.125000f, 0.500000f,
+ 0.189629f, 0.555469f, 0.128320f, 0.168939f, 0.979094f, 0.113289f, 0.375000f, 0.250000f,
+ 0.293326f, 0.539355f, 0.124803f, 0.144929f, 0.987598f, 0.060387f, 0.250000f, 0.375000f,
+ 0.264312f, 0.539355f, 0.178857f, 0.130361f, 0.987605f, 0.087419f, 0.375000f, 0.375000f,
+ 0.225758f, 0.539355f, 0.225758f, 0.110849f, 0.987636f, 0.110849f, 0.500000f, 0.375000f,
+ 0.342891f, 0.525000f, 0.232031f, 0.122865f, 0.988997f, 0.082392f, 0.375000f, 0.500000f,
+ 0.039250f, 0.600000f, 0.092250f, 0.230997f, 0.799556f, 0.554392f, 0.750000f, 0.000000f,
+ 0.161969f, 0.555469f, 0.161969f, 0.143654f, 0.979146f, 0.143654f, 0.500000f, 0.250000f,
+ 0.089539f, 0.555469f, 0.210445f, 0.078560f, 0.978918f, 0.188544f, 0.750000f, 0.250000f,
+ 0.000000f, 0.555469f, 0.228125f, 0.000000f, 0.978980f, 0.203954f, 1.000000f, 0.250000f,
+ 0.161906f, 0.525000f, 0.380531f, 0.057140f, 0.988903f, 0.137136f, 0.750000f, 0.500000f,
+ 0.056250f, 0.600000f, 0.083125f, 0.333583f, 0.800793f, 0.497447f, 0.625000f, 0.000000f,
+ 0.108164f, 0.575098f, 0.108164f, 0.223681f, 0.948648f, 0.223681f, 0.500000f, 0.125000f,
+ 0.085693f, 0.575098f, 0.126636f, 0.176393f, 0.948522f, 0.263043f, 0.625000f, 0.125000f,
+ 0.059795f, 0.575098f, 0.140537f, 0.121840f, 0.948497f, 0.292417f, 0.750000f, 0.125000f,
+ 0.128320f, 0.555469f, 0.189629f, 0.113293f, 0.979092f, 0.168946f, 0.625000f, 0.250000f,
+ 0.020375f, 0.600000f, 0.098000f, 0.117676f, 0.799975f, 0.588382f, 0.875000f, 0.000000f,
+ 0.059795f, 0.575098f, 0.140537f, 0.121840f, 0.948497f, 0.292417f, 0.750000f, 0.125000f,
+ 0.031040f, 0.575098f, 0.149297f, 0.062271f, 0.948251f, 0.311356f, 0.875000f, 0.125000f,
+ 0.000000f, 0.575098f, 0.152344f, 0.000000f, 0.948259f, 0.317497f, 1.000000f, 0.125000f,
+ 0.046480f, 0.555469f, 0.223562f, 0.040002f, 0.978977f, 0.200010f, 0.875000f, 0.250000f,
+ 0.128320f, 0.555469f, 0.189629f, 0.113294f, 0.979092f, 0.168947f, 0.625000f, 0.250000f,
+ 0.225758f, 0.539355f, 0.225758f, 0.110849f, 0.987636f, 0.110849f, 0.500000f, 0.375000f,
+ 0.178857f, 0.539355f, 0.264312f, 0.087423f, 0.987604f, 0.130368f, 0.625000f, 0.375000f,
+ 0.124803f, 0.539355f, 0.293326f, 0.060387f, 0.987598f, 0.144929f, 0.750000f, 0.375000f,
+ 0.232031f, 0.525000f, 0.342891f, 0.082396f, 0.988996f, 0.122871f, 0.625000f, 0.500000f,
+ 0.046480f, 0.555469f, 0.223562f, 0.040002f, 0.978977f, 0.200011f, 0.875000f, 0.250000f,
+ 0.124803f, 0.539355f, 0.293326f, 0.060387f, 0.987598f, 0.144929f, 0.750000f, 0.375000f,
+ 0.064786f, 0.539355f, 0.311609f, 0.030869f, 0.987535f, 0.154346f, 0.875000f, 0.375000f,
+ 0.000000f, 0.539355f, 0.317969f, 0.000000f, 0.987537f, 0.157389f, 1.000000f, 0.375000f,
+ 0.084047f, 0.525000f, 0.404250f, 0.029094f, 0.988935f, 0.145472f, 0.875000f, 0.500000f,
+ 0.380531f, 0.525000f, 0.161906f, 0.137032f, 0.988920f, 0.057097f, 0.250000f, 0.500000f,
+ 0.578125f, 0.494531f, -0.000000f, 0.258736f, 0.965948f, -0.000000f, 0.000000f, 0.750000f,
+ 0.533320f, 0.494531f, 0.226914f, 0.239005f, 0.965898f, 0.099585f, 0.250000f, 0.750000f,
+ 0.410469f, 0.494531f, 0.410469f, 0.182258f, 0.966211f, 0.182258f, 0.500000f, 0.750000f,
+ 0.599625f, 0.450000f, 0.255125f, 0.923077f, 0.000000f, 0.384615f, 0.250000f, 1.000000f,
+ 0.404250f, 0.525000f, 0.084047f, 0.145452f, 0.988938f, 0.029090f, 0.125000f, 0.500000f,
+ 0.502344f, 0.510645f, -0.000000f, 0.174370f, 0.984680f, -0.000000f, 0.000000f, 0.625000f,
+ 0.492297f, 0.510645f, 0.102353f, 0.170975f, 0.984682f, 0.034195f, 0.125000f, 0.625000f,
+ 0.463412f, 0.510645f, 0.197170f, 0.160568f, 0.984755f, 0.066903f, 0.250000f, 0.625000f,
+ 0.566563f, 0.494531f, 0.117793f, 0.253699f, 0.965951f, 0.050740f, 0.125000f, 0.750000f,
+ 0.342891f, 0.525000f, 0.232031f, 0.122865f, 0.988997f, 0.082392f, 0.375000f, 0.500000f,
+ 0.463412f, 0.510645f, 0.197170f, 0.160568f, 0.984755f, 0.066903f, 0.250000f, 0.625000f,
+ 0.417573f, 0.510645f, 0.282568f, 0.144429f, 0.984764f, 0.096852f, 0.375000f, 0.625000f,
+ 0.356664f, 0.510645f, 0.356664f, 0.122811f, 0.984802f, 0.122811f, 0.500000f, 0.625000f,
+ 0.480566f, 0.494531f, 0.325195f, 0.214330f, 0.966129f, 0.143727f, 0.375000f, 0.750000f,
+ 0.566563f, 0.494531f, 0.117793f, 0.253699f, 0.965951f, 0.050740f, 0.125000f, 0.750000f,
+ 0.630469f, 0.474902f, -0.000000f, 0.505546f, 0.862799f, -0.000000f, 0.000000f, 0.875000f,
+ 0.617859f, 0.474902f, 0.128458f, 0.495710f, 0.862811f, 0.099142f, 0.125000f, 0.875000f,
+ 0.581607f, 0.474902f, 0.247459f, 0.465791f, 0.863349f, 0.194079f, 0.250000f, 0.875000f,
+ 0.637000f, 0.450000f, 0.132437f, 0.980581f, 0.000000f, 0.196116f, 0.125000f, 1.000000f,
+ 0.480566f, 0.494531f, 0.325195f, 0.214330f, 0.966129f, 0.143727f, 0.375000f, 0.750000f,
+ 0.581607f, 0.474902f, 0.247459f, 0.465791f, 0.863349f, 0.194080f, 0.250000f, 0.875000f,
+ 0.524077f, 0.474902f, 0.354639f, 0.419002f, 0.863417f, 0.280978f, 0.375000f, 0.875000f,
+ 0.447633f, 0.474902f, 0.447633f, 0.356389f, 0.863698f, 0.356389f, 0.500000f, 0.875000f,
+ 0.540312f, 0.450000f, 0.365625f, 0.830544f, 0.000000f, 0.556953f, 0.375000f, 1.000000f,
+ 0.161906f, 0.525000f, 0.380531f, 0.057140f, 0.988903f, 0.137136f, 0.750000f, 0.500000f,
+ 0.410469f, 0.494531f, 0.410469f, 0.182258f, 0.966211f, 0.182258f, 0.500000f, 0.750000f,
+ 0.226914f, 0.494531f, 0.533320f, 0.099657f, 0.965848f, 0.239176f, 0.750000f, 0.750000f,
+ 0.000000f, 0.494531f, 0.578125f, 0.000000f, 0.965948f, 0.258736f, 1.000000f, 0.750000f,
+ 0.255125f, 0.450000f, 0.599625f, 0.384615f, 0.000000f, 0.923077f, 0.750000f, 1.000000f,
+ 0.232031f, 0.525000f, 0.342891f, 0.082396f, 0.988996f, 0.122871f, 0.625000f, 0.500000f,
+ 0.356664f, 0.510645f, 0.356664f, 0.122811f, 0.984802f, 0.122811f, 0.500000f, 0.625000f,
+ 0.282568f, 0.510645f, 0.417573f, 0.096857f, 0.984762f, 0.144436f, 0.625000f, 0.625000f,
+ 0.197170f, 0.510645f, 0.463412f, 0.066903f, 0.984755f, 0.160568f, 0.750000f, 0.625000f,
+ 0.325195f, 0.494531f, 0.480566f, 0.143734f, 0.966126f, 0.214340f, 0.625000f, 0.750000f,
+ 0.084047f, 0.525000f, 0.404250f, 0.029094f, 0.988935f, 0.145472f, 0.875000f, 0.500000f,
+ 0.197170f, 0.510645f, 0.463412f, 0.066903f, 0.984755f, 0.160568f, 0.750000f, 0.625000f,
+ 0.102353f, 0.510645f, 0.492297f, 0.034200f, 0.984678f, 0.170999f, 0.875000f, 0.625000f,
+ 0.000000f, 0.510645f, 0.502344f, 0.000000f, 0.984680f, 0.174370f, 1.000000f, 0.625000f,
+ 0.117793f, 0.494531f, 0.566563f, 0.050746f, 0.965942f, 0.253732f, 0.875000f, 0.750000f,
+ 0.325195f, 0.494531f, 0.480566f, 0.143734f, 0.966126f, 0.214340f, 0.625000f, 0.750000f,
+ 0.447633f, 0.474902f, 0.447633f, 0.356389f, 0.863698f, 0.356389f, 0.500000f, 0.875000f,
+ 0.354639f, 0.474902f, 0.524077f, 0.280988f, 0.863406f, 0.419017f, 0.625000f, 0.875000f,
+ 0.247459f, 0.474902f, 0.581607f, 0.194080f, 0.863349f, 0.465791f, 0.750000f, 0.875000f,
+ 0.365625f, 0.450000f, 0.540312f, 0.556953f, 0.000000f, 0.830544f, 0.625000f, 1.000000f,
+ 0.117793f, 0.494531f, 0.566563f, 0.050747f, 0.965942f, 0.253732f, 0.875000f, 0.750000f,
+ 0.247459f, 0.474902f, 0.581607f, 0.194079f, 0.863349f, 0.465791f, 0.750000f, 0.875000f,
+ 0.128458f, 0.474902f, 0.617859f, 0.099152f, 0.862780f, 0.495761f, 0.875000f, 0.875000f,
+ 0.000000f, 0.474902f, 0.630469f, 0.000000f, 0.862799f, 0.505546f, 1.000000f, 0.875000f,
+ 0.132437f, 0.450000f, 0.637000f, 0.196116f, 0.000000f, 0.980581f, 0.875000f, 1.000000f,
+ 0.000000f, 0.600000f, 0.100000f, 0.000000f, 0.800000f, 0.600000f, 0.000000f, 0.000000f,
+ -0.100000f, 0.600000f, -0.000000f, -0.600000f, 0.800000f, 0.000000f, 1.000000f, 0.000000f,
+ 0.000000f, 0.450000f, 0.650000f, 0.000000f, 0.000000f, 1.000000f, 0.000000f, 1.000000f,
+ -0.650000f, 0.450000f, -0.000000f, -1.000000f, -0.000000f, -0.000000f, 1.000000f, 1.000000f,
+ -0.071000f, 0.600000f, 0.071000f, -0.427006f, 0.797077f, 0.427006f, 0.500000f, 0.000000f,
+ 0.000000f, 0.525000f, 0.412500f, 0.000000f, 0.988936f, 0.148340f, 0.000000f, 0.500000f,
+ -0.292875f, 0.525000f, 0.292875f, -0.105934f, 0.988714f, 0.105934f, 0.500000f, 0.500000f,
+ -0.412500f, 0.525000f, -0.000000f, -0.148340f, 0.988936f, 0.000000f, 1.000000f, 0.500000f,
+ -0.461500f, 0.450000f, 0.461500f, -0.707107f, 0.000000f, 0.707107f, 0.500000f, 1.000000f,
+ -0.039250f, 0.600000f, 0.092250f, -0.230883f, 0.799778f, 0.554119f, 0.250000f, 0.000000f,
+ 0.000000f, 0.555469f, 0.228125f, 0.000000f, 0.978980f, 0.203954f, 0.000000f, 0.250000f,
+ -0.089539f, 0.555469f, 0.210445f, -0.078502f, 0.978949f, 0.188404f, 0.250000f, 0.250000f,
+ -0.161969f, 0.555469f, 0.161969f, -0.143654f, 0.979146f, 0.143654f, 0.500000f, 0.250000f,
+ -0.161906f, 0.525000f, 0.380531f, -0.057097f, 0.988920f, 0.137033f, 0.250000f, 0.500000f,
+ -0.020375f, 0.600000f, 0.098000f, -0.117666f, 0.800015f, 0.588329f, 0.125000f, 0.000000f,
+ 0.000000f, 0.575098f, 0.152344f, 0.000000f, 0.948259f, 0.317497f, 0.000000f, 0.125000f,
+ -0.031040f, 0.575098f, 0.149297f, -0.062263f, 0.948264f, 0.311317f, 0.125000f, 0.125000f,
+ -0.059795f, 0.575098f, 0.140537f, -0.121840f, 0.948497f, 0.292417f, 0.250000f, 0.125000f,
+ -0.046480f, 0.555469f, 0.223562f, -0.039997f, 0.978983f, 0.199984f, 0.125000f, 0.250000f,
+ -0.056250f, 0.600000f, 0.083125f, -0.333572f, 0.800807f, 0.497432f, 0.375000f, 0.000000f,
+ -0.059795f, 0.575098f, 0.140537f, -0.121840f, 0.948497f, 0.292417f, 0.250000f, 0.125000f,
+ -0.085693f, 0.575098f, 0.126636f, -0.176386f, 0.948527f, 0.263031f, 0.375000f, 0.125000f,
+ -0.108164f, 0.575098f, 0.108164f, -0.223681f, 0.948648f, 0.223681f, 0.500000f, 0.125000f,
+ -0.128320f, 0.555469f, 0.189629f, -0.113288f, 0.979094f, 0.168938f, 0.375000f, 0.250000f,
+ -0.046480f, 0.555469f, 0.223562f, -0.039997f, 0.978982f, 0.199985f, 0.125000f, 0.250000f,
+ 0.000000f, 0.539355f, 0.317969f, 0.000000f, 0.987537f, 0.157389f, 0.000000f, 0.375000f,
+ -0.064786f, 0.539355f, 0.311609f, -0.030865f, 0.987538f, 0.154325f, 0.125000f, 0.375000f,
+ -0.124803f, 0.539355f, 0.293326f, -0.060387f, 0.987598f, 0.144929f, 0.250000f, 0.375000f,
+ -0.084047f, 0.525000f, 0.404250f, -0.029090f, 0.988938f, 0.145452f, 0.125000f, 0.500000f,
+ -0.128320f, 0.555469f, 0.189629f, -0.113289f, 0.979094f, 0.168939f, 0.375000f, 0.250000f,
+ -0.124803f, 0.539355f, 0.293326f, -0.060387f, 0.987598f, 0.144929f, 0.250000f, 0.375000f,
+ -0.178857f, 0.539355f, 0.264312f, -0.087419f, 0.987605f, 0.130361f, 0.375000f, 0.375000f,
+ -0.225758f, 0.539355f, 0.225758f, -0.110849f, 0.987636f, 0.110849f, 0.500000f, 0.375000f,
+ -0.232031f, 0.525000f, 0.342891f, -0.082392f, 0.988997f, 0.122865f, 0.375000f, 0.500000f,
+ -0.092250f, 0.600000f, 0.039250f, -0.554392f, 0.799556f, 0.230997f, 0.750000f, 0.000000f,
+ -0.161969f, 0.555469f, 0.161969f, -0.143654f, 0.979146f, 0.143654f, 0.500000f, 0.250000f,
+ -0.210445f, 0.555469f, 0.089539f, -0.188544f, 0.978918f, 0.078560f, 0.750000f, 0.250000f,
+ -0.228125f, 0.555469f, -0.000000f, -0.203954f, 0.978980f, 0.000000f, 1.000000f, 0.250000f,
+ -0.380531f, 0.525000f, 0.161906f, -0.137136f, 0.988903f, 0.057140f, 0.750000f, 0.500000f,
+ -0.083125f, 0.600000f, 0.056250f, -0.497447f, 0.800793f, 0.333583f, 0.625000f, 0.000000f,
+ -0.108164f, 0.575098f, 0.108164f, -0.223681f, 0.948648f, 0.223681f, 0.500000f, 0.125000f,
+ -0.126636f, 0.575098f, 0.085693f, -0.263043f, 0.948522f, 0.176393f, 0.625000f, 0.125000f,
+ -0.140537f, 0.575098f, 0.059795f, -0.292417f, 0.948497f, 0.121840f, 0.750000f, 0.125000f,
+ -0.189629f, 0.555469f, 0.128320f, -0.168946f, 0.979092f, 0.113293f, 0.625000f, 0.250000f,
+ -0.098000f, 0.600000f, 0.020375f, -0.588382f, 0.799975f, 0.117676f, 0.875000f, 0.000000f,
+ -0.140537f, 0.575098f, 0.059795f, -0.292417f, 0.948497f, 0.121840f, 0.750000f, 0.125000f,
+ -0.149297f, 0.575098f, 0.031040f, -0.311356f, 0.948251f, 0.062271f, 0.875000f, 0.125000f,
+ -0.152344f, 0.575098f, -0.000000f, -0.317497f, 0.948259f, 0.000000f, 1.000000f, 0.125000f,
+ -0.223562f, 0.555469f, 0.046480f, -0.200010f, 0.978977f, 0.040002f, 0.875000f, 0.250000f,
+ -0.189629f, 0.555469f, 0.128320f, -0.168947f, 0.979092f, 0.113294f, 0.625000f, 0.250000f,
+ -0.225758f, 0.539355f, 0.225758f, -0.110849f, 0.987636f, 0.110849f, 0.500000f, 0.375000f,
+ -0.264312f, 0.539355f, 0.178857f, -0.130368f, 0.987604f, 0.087423f, 0.625000f, 0.375000f,
+ -0.293326f, 0.539355f, 0.124803f, -0.144929f, 0.987598f, 0.060387f, 0.750000f, 0.375000f,
+ -0.342891f, 0.525000f, 0.232031f, -0.122871f, 0.988996f, 0.082396f, 0.625000f, 0.500000f,
+ -0.223562f, 0.555469f, 0.046480f, -0.200011f, 0.978977f, 0.040002f, 0.875000f, 0.250000f,
+ -0.293326f, 0.539355f, 0.124803f, -0.144929f, 0.987598f, 0.060387f, 0.750000f, 0.375000f,
+ -0.311609f, 0.539355f, 0.064786f, -0.154346f, 0.987535f, 0.030869f, 0.875000f, 0.375000f,
+ -0.317969f, 0.539355f, -0.000000f, -0.157389f, 0.987537f, 0.000000f, 1.000000f, 0.375000f,
+ -0.404250f, 0.525000f, 0.084047f, -0.145472f, 0.988935f, 0.029094f, 0.875000f, 0.500000f,
+ -0.161906f, 0.525000f, 0.380531f, -0.057097f, 0.988920f, 0.137032f, 0.250000f, 0.500000f,
+ 0.000000f, 0.494531f, 0.578125f, 0.000000f, 0.965948f, 0.258736f, 0.000000f, 0.750000f,
+ -0.226914f, 0.494531f, 0.533320f, -0.099585f, 0.965898f, 0.239005f, 0.250000f, 0.750000f,
+ -0.410469f, 0.494531f, 0.410469f, -0.182258f, 0.966211f, 0.182258f, 0.500000f, 0.750000f,
+ -0.255125f, 0.450000f, 0.599625f, -0.384615f, 0.000000f, 0.923077f, 0.250000f, 1.000000f,
+ -0.084047f, 0.525000f, 0.404250f, -0.029090f, 0.988938f, 0.145452f, 0.125000f, 0.500000f,
+ 0.000000f, 0.510645f, 0.502344f, 0.000000f, 0.984680f, 0.174370f, 0.000000f, 0.625000f,
+ -0.102353f, 0.510645f, 0.492297f, -0.034195f, 0.984682f, 0.170975f, 0.125000f, 0.625000f,
+ -0.197170f, 0.510645f, 0.463412f, -0.066903f, 0.984755f, 0.160568f, 0.250000f, 0.625000f,
+ -0.117793f, 0.494531f, 0.566563f, -0.050740f, 0.965951f, 0.253699f, 0.125000f, 0.750000f,
+ -0.232031f, 0.525000f, 0.342891f, -0.082392f, 0.988997f, 0.122865f, 0.375000f, 0.500000f,
+ -0.197170f, 0.510645f, 0.463412f, -0.066903f, 0.984755f, 0.160568f, 0.250000f, 0.625000f,
+ -0.282568f, 0.510645f, 0.417573f, -0.096852f, 0.984764f, 0.144429f, 0.375000f, 0.625000f,
+ -0.356664f, 0.510645f, 0.356664f, -0.122811f, 0.984802f, 0.122811f, 0.500000f, 0.625000f,
+ -0.325195f, 0.494531f, 0.480566f, -0.143727f, 0.966129f, 0.214330f, 0.375000f, 0.750000f,
+ -0.117793f, 0.494531f, 0.566563f, -0.050740f, 0.965951f, 0.253699f, 0.125000f, 0.750000f,
+ 0.000000f, 0.474902f, 0.630469f, 0.000000f, 0.862799f, 0.505546f, 0.000000f, 0.875000f,
+ -0.128458f, 0.474902f, 0.617859f, -0.099142f, 0.862811f, 0.495710f, 0.125000f, 0.875000f,
+ -0.247459f, 0.474902f, 0.581607f, -0.194079f, 0.863349f, 0.465791f, 0.250000f, 0.875000f,
+ -0.132437f, 0.450000f, 0.637000f, -0.196116f, 0.000000f, 0.980581f, 0.125000f, 1.000000f,
+ -0.325195f, 0.494531f, 0.480566f, -0.143727f, 0.966129f, 0.214330f, 0.375000f, 0.750000f,
+ -0.247459f, 0.474902f, 0.581607f, -0.194080f, 0.863349f, 0.465791f, 0.250000f, 0.875000f,
+ -0.354639f, 0.474902f, 0.524077f, -0.280978f, 0.863417f, 0.419002f, 0.375000f, 0.875000f,
+ -0.447633f, 0.474902f, 0.447633f, -0.356389f, 0.863698f, 0.356389f, 0.500000f, 0.875000f,
+ -0.365625f, 0.450000f, 0.540312f, -0.556953f, 0.000000f, 0.830544f, 0.375000f, 1.000000f,
+ -0.380531f, 0.525000f, 0.161906f, -0.137136f, 0.988903f, 0.057140f, 0.750000f, 0.500000f,
+ -0.410469f, 0.494531f, 0.410469f, -0.182258f, 0.966211f, 0.182258f, 0.500000f, 0.750000f,
+ -0.533320f, 0.494531f, 0.226914f, -0.239176f, 0.965848f, 0.099657f, 0.750000f, 0.750000f,
+ -0.578125f, 0.494531f, -0.000000f, -0.258736f, 0.965948f, 0.000000f, 1.000000f, 0.750000f,
+ -0.599625f, 0.450000f, 0.255125f, -0.923077f, 0.000000f, 0.384615f, 0.750000f, 1.000000f,
+ -0.342891f, 0.525000f, 0.232031f, -0.122871f, 0.988996f, 0.082396f, 0.625000f, 0.500000f,
+ -0.356664f, 0.510645f, 0.356664f, -0.122811f, 0.984802f, 0.122811f, 0.500000f, 0.625000f,
+ -0.417573f, 0.510645f, 0.282568f, -0.144436f, 0.984762f, 0.096857f, 0.625000f, 0.625000f,
+ -0.463412f, 0.510645f, 0.197170f, -0.160568f, 0.984755f, 0.066903f, 0.750000f, 0.625000f,
+ -0.480566f, 0.494531f, 0.325195f, -0.214340f, 0.966126f, 0.143734f, 0.625000f, 0.750000f,
+ -0.404250f, 0.525000f, 0.084047f, -0.145472f, 0.988935f, 0.029094f, 0.875000f, 0.500000f,
+ -0.463412f, 0.510645f, 0.197170f, -0.160568f, 0.984755f, 0.066903f, 0.750000f, 0.625000f,
+ -0.492297f, 0.510645f, 0.102353f, -0.170999f, 0.984678f, 0.034200f, 0.875000f, 0.625000f,
+ -0.502344f, 0.510645f, -0.000000f, -0.174370f, 0.984680f, 0.000000f, 1.000000f, 0.625000f,
+ -0.566563f, 0.494531f, 0.117793f, -0.253732f, 0.965942f, 0.050746f, 0.875000f, 0.750000f,
+ -0.480566f, 0.494531f, 0.325195f, -0.214340f, 0.966126f, 0.143734f, 0.625000f, 0.750000f,
+ -0.447633f, 0.474902f, 0.447633f, -0.356389f, 0.863698f, 0.356389f, 0.500000f, 0.875000f,
+ -0.524077f, 0.474902f, 0.354639f, -0.419017f, 0.863406f, 0.280988f, 0.625000f, 0.875000f,
+ -0.581607f, 0.474902f, 0.247459f, -0.465791f, 0.863349f, 0.194080f, 0.750000f, 0.875000f,
+ -0.540312f, 0.450000f, 0.365625f, -0.830544f, 0.000000f, 0.556953f, 0.625000f, 1.000000f,
+ -0.566563f, 0.494531f, 0.117793f, -0.253732f, 0.965942f, 0.050747f, 0.875000f, 0.750000f,
+ -0.581607f, 0.474902f, 0.247459f, -0.465791f, 0.863349f, 0.194079f, 0.750000f, 0.875000f,
+ -0.617859f, 0.474902f, 0.128458f, -0.495761f, 0.862780f, 0.099152f, 0.875000f, 0.875000f,
+ -0.630469f, 0.474902f, -0.000000f, -0.505546f, 0.862799f, 0.000000f, 1.000000f, 0.875000f,
+ -0.637000f, 0.450000f, 0.132437f, -0.980581f, 0.000000f, 0.196116f, 0.875000f, 1.000000f,
+ -0.100000f, 0.600000f, -0.000000f, -0.600000f, 0.800000f, 0.000000f, 0.000000f, 0.000000f,
+ 0.000000f, 0.600000f, -0.100000f, 0.000000f, 0.800000f, -0.600000f, 1.000000f, 0.000000f,
+ -0.650000f, 0.450000f, -0.000000f, -1.000000f, -0.000000f, -0.000000f, 0.000000f, 1.000000f,
+ 0.000000f, 0.450000f, -0.650000f, 0.000000f, 0.000000f, -1.000000f, 1.000000f, 1.000000f,
+ -0.071000f, 0.600000f, -0.071000f, -0.427006f, 0.797077f, -0.427006f, 0.500000f, 0.000000f,
+ -0.412500f, 0.525000f, -0.000000f, -0.148340f, 0.988936f, 0.000000f, 0.000000f, 0.500000f,
+ -0.292875f, 0.525000f, -0.292875f, -0.105934f, 0.988714f, -0.105934f, 0.500000f, 0.500000f,
+ 0.000000f, 0.525000f, -0.412500f, 0.000000f, 0.988936f, -0.148340f, 1.000000f, 0.500000f,
+ -0.461500f, 0.450000f, -0.461500f, -0.707107f, -0.000000f, -0.707107f, 0.500000f, 1.000000f,
+ -0.092250f, 0.600000f, -0.039250f, -0.554119f, 0.799778f, -0.230883f, 0.250000f, 0.000000f,
+ -0.228125f, 0.555469f, -0.000000f, -0.203954f, 0.978980f, 0.000000f, 0.000000f, 0.250000f,
+ -0.210445f, 0.555469f, -0.089539f, -0.188404f, 0.978949f, -0.078502f, 0.250000f, 0.250000f,
+ -0.161969f, 0.555469f, -0.161969f, -0.143654f, 0.979146f, -0.143654f, 0.500000f, 0.250000f,
+ -0.380531f, 0.525000f, -0.161906f, -0.137033f, 0.988920f, -0.057097f, 0.250000f, 0.500000f,
+ -0.098000f, 0.600000f, -0.020375f, -0.588329f, 0.800015f, -0.117666f, 0.125000f, 0.000000f,
+ -0.152344f, 0.575098f, -0.000000f, -0.317497f, 0.948259f, 0.000000f, 0.000000f, 0.125000f,
+ -0.149297f, 0.575098f, -0.031040f, -0.311317f, 0.948264f, -0.062263f, 0.125000f, 0.125000f,
+ -0.140537f, 0.575098f, -0.059795f, -0.292417f, 0.948497f, -0.121840f, 0.250000f, 0.125000f,
+ -0.223562f, 0.555469f, -0.046480f, -0.199984f, 0.978983f, -0.039997f, 0.125000f, 0.250000f,
+ -0.083125f, 0.600000f, -0.056250f, -0.497432f, 0.800807f, -0.333572f, 0.375000f, 0.000000f,
+ -0.140537f, 0.575098f, -0.059795f, -0.292417f, 0.948497f, -0.121840f, 0.250000f, 0.125000f,
+ -0.126636f, 0.575098f, -0.085693f, -0.263031f, 0.948527f, -0.176386f, 0.375000f, 0.125000f,
+ -0.108164f, 0.575098f, -0.108164f, -0.223681f, 0.948648f, -0.223681f, 0.500000f, 0.125000f,
+ -0.189629f, 0.555469f, -0.128320f, -0.168938f, 0.979094f, -0.113288f, 0.375000f, 0.250000f,
+ -0.223562f, 0.555469f, -0.046480f, -0.199985f, 0.978982f, -0.039997f, 0.125000f, 0.250000f,
+ -0.317969f, 0.539355f, -0.000000f, -0.157389f, 0.987537f, 0.000000f, 0.000000f, 0.375000f,
+ -0.311609f, 0.539355f, -0.064786f, -0.154325f, 0.987538f, -0.030865f, 0.125000f, 0.375000f,
+ -0.293326f, 0.539355f, -0.124803f, -0.144929f, 0.987598f, -0.060387f, 0.250000f, 0.375000f,
+ -0.404250f, 0.525000f, -0.084047f, -0.145452f, 0.988938f, -0.029090f, 0.125000f, 0.500000f,
+ -0.189629f, 0.555469f, -0.128320f, -0.168939f, 0.979094f, -0.113289f, 0.375000f, 0.250000f,
+ -0.293326f, 0.539355f, -0.124803f, -0.144929f, 0.987598f, -0.060387f, 0.250000f, 0.375000f,
+ -0.264312f, 0.539355f, -0.178857f, -0.130361f, 0.987605f, -0.087419f, 0.375000f, 0.375000f,
+ -0.225758f, 0.539355f, -0.225758f, -0.110849f, 0.987636f, -0.110849f, 0.500000f, 0.375000f,
+ -0.342891f, 0.525000f, -0.232031f, -0.122865f, 0.988997f, -0.082392f, 0.375000f, 0.500000f,
+ -0.039250f, 0.600000f, -0.092250f, -0.230997f, 0.799556f, -0.554392f, 0.750000f, 0.000000f,
+ -0.161969f, 0.555469f, -0.161969f, -0.143654f, 0.979146f, -0.143654f, 0.500000f, 0.250000f,
+ -0.089539f, 0.555469f, -0.210445f, -0.078560f, 0.978918f, -0.188544f, 0.750000f, 0.250000f,
+ 0.000000f, 0.555469f, -0.228125f, 0.000000f, 0.978980f, -0.203954f, 1.000000f, 0.250000f,
+ -0.161906f, 0.525000f, -0.380531f, -0.057140f, 0.988903f, -0.137136f, 0.750000f, 0.500000f,
+ -0.056250f, 0.600000f, -0.083125f, -0.333583f, 0.800793f, -0.497447f, 0.625000f, 0.000000f,
+ -0.108164f, 0.575098f, -0.108164f, -0.223681f, 0.948648f, -0.223681f, 0.500000f, 0.125000f,
+ -0.085693f, 0.575098f, -0.126636f, -0.176393f, 0.948522f, -0.263043f, 0.625000f, 0.125000f,
+ -0.059795f, 0.575098f, -0.140537f, -0.121840f, 0.948497f, -0.292417f, 0.750000f, 0.125000f,
+ -0.128320f, 0.555469f, -0.189629f, -0.113293f, 0.979092f, -0.168946f, 0.625000f, 0.250000f,
+ -0.020375f, 0.600000f, -0.098000f, -0.117676f, 0.799975f, -0.588382f, 0.875000f, 0.000000f,
+ -0.059795f, 0.575098f, -0.140537f, -0.121840f, 0.948497f, -0.292417f, 0.750000f, 0.125000f,
+ -0.031040f, 0.575098f, -0.149297f, -0.062271f, 0.948251f, -0.311356f, 0.875000f, 0.125000f,
+ 0.000000f, 0.575098f, -0.152344f, 0.000000f, 0.948259f, -0.317497f, 1.000000f, 0.125000f,
+ -0.046480f, 0.555469f, -0.223562f, -0.040002f, 0.978977f, -0.200010f, 0.875000f, 0.250000f,
+ -0.128320f, 0.555469f, -0.189629f, -0.113294f, 0.979092f, -0.168947f, 0.625000f, 0.250000f,
+ -0.225758f, 0.539355f, -0.225758f, -0.110849f, 0.987636f, -0.110849f, 0.500000f, 0.375000f,
+ -0.178857f, 0.539355f, -0.264312f, -0.087423f, 0.987604f, -0.130368f, 0.625000f, 0.375000f,
+ -0.124803f, 0.539355f, -0.293326f, -0.060387f, 0.987598f, -0.144929f, 0.750000f, 0.375000f,
+ -0.232031f, 0.525000f, -0.342891f, -0.082396f, 0.988996f, -0.122871f, 0.625000f, 0.500000f,
+ -0.046480f, 0.555469f, -0.223562f, -0.040002f, 0.978977f, -0.200011f, 0.875000f, 0.250000f,
+ -0.124803f, 0.539355f, -0.293326f, -0.060387f, 0.987598f, -0.144929f, 0.750000f, 0.375000f,
+ -0.064786f, 0.539355f, -0.311609f, -0.030869f, 0.987535f, -0.154346f, 0.875000f, 0.375000f,
+ 0.000000f, 0.539355f, -0.317969f, 0.000000f, 0.987537f, -0.157389f, 1.000000f, 0.375000f,
+ -0.084047f, 0.525000f, -0.404250f, -0.029094f, 0.988935f, -0.145472f, 0.875000f, 0.500000f,
+ -0.380531f, 0.525000f, -0.161906f, -0.137032f, 0.988920f, -0.057097f, 0.250000f, 0.500000f,
+ -0.578125f, 0.494531f, -0.000000f, -0.258736f, 0.965948f, 0.000000f, 0.000000f, 0.750000f,
+ -0.533320f, 0.494531f, -0.226914f, -0.239005f, 0.965898f, -0.099585f, 0.250000f, 0.750000f,
+ -0.410469f, 0.494531f, -0.410469f, -0.182258f, 0.966211f, -0.182258f, 0.500000f, 0.750000f,
+ -0.599625f, 0.450000f, -0.255125f, -0.923077f, -0.000000f, -0.384615f, 0.250000f, 1.000000f,
+ -0.404250f, 0.525000f, -0.084047f, -0.145452f, 0.988938f, -0.029090f, 0.125000f, 0.500000f,
+ -0.502344f, 0.510645f, -0.000000f, -0.174370f, 0.984680f, 0.000000f, 0.000000f, 0.625000f,
+ -0.492297f, 0.510645f, -0.102353f, -0.170975f, 0.984682f, -0.034195f, 0.125000f, 0.625000f,
+ -0.463412f, 0.510645f, -0.197170f, -0.160568f, 0.984755f, -0.066903f, 0.250000f, 0.625000f,
+ -0.566563f, 0.494531f, -0.117793f, -0.253699f, 0.965951f, -0.050740f, 0.125000f, 0.750000f,
+ -0.342891f, 0.525000f, -0.232031f, -0.122865f, 0.988997f, -0.082392f, 0.375000f, 0.500000f,
+ -0.463412f, 0.510645f, -0.197170f, -0.160568f, 0.984755f, -0.066903f, 0.250000f, 0.625000f,
+ -0.417573f, 0.510645f, -0.282568f, -0.144429f, 0.984764f, -0.096852f, 0.375000f, 0.625000f,
+ -0.356664f, 0.510645f, -0.356664f, -0.122811f, 0.984802f, -0.122811f, 0.500000f, 0.625000f,
+ -0.480566f, 0.494531f, -0.325195f, -0.214330f, 0.966129f, -0.143727f, 0.375000f, 0.750000f,
+ -0.566563f, 0.494531f, -0.117793f, -0.253699f, 0.965951f, -0.050740f, 0.125000f, 0.750000f,
+ -0.630469f, 0.474902f, -0.000000f, -0.505546f, 0.862799f, 0.000000f, 0.000000f, 0.875000f,
+ -0.617859f, 0.474902f, -0.128458f, -0.495710f, 0.862811f, -0.099142f, 0.125000f, 0.875000f,
+ -0.581607f, 0.474902f, -0.247459f, -0.465791f, 0.863349f, -0.194079f, 0.250000f, 0.875000f,
+ -0.637000f, 0.450000f, -0.132437f, -0.980581f, -0.000000f, -0.196116f, 0.125000f, 1.000000f,
+ -0.480566f, 0.494531f, -0.325195f, -0.214330f, 0.966129f, -0.143727f, 0.375000f, 0.750000f,
+ -0.581607f, 0.474902f, -0.247459f, -0.465791f, 0.863349f, -0.194080f, 0.250000f, 0.875000f,
+ -0.524077f, 0.474902f, -0.354639f, -0.419002f, 0.863417f, -0.280978f, 0.375000f, 0.875000f,
+ -0.447633f, 0.474902f, -0.447633f, -0.356389f, 0.863698f, -0.356389f, 0.500000f, 0.875000f,
+ -0.540312f, 0.450000f, -0.365625f, -0.830544f, -0.000000f, -0.556953f, 0.375000f, 1.000000f,
+ -0.161906f, 0.525000f, -0.380531f, -0.057140f, 0.988903f, -0.137136f, 0.750000f, 0.500000f,
+ -0.410469f, 0.494531f, -0.410469f, -0.182258f, 0.966211f, -0.182258f, 0.500000f, 0.750000f,
+ -0.226914f, 0.494531f, -0.533320f, -0.099657f, 0.965848f, -0.239176f, 0.750000f, 0.750000f,
+ 0.000000f, 0.494531f, -0.578125f, 0.000000f, 0.965948f, -0.258736f, 1.000000f, 0.750000f,
+ -0.255125f, 0.450000f, -0.599625f, -0.384615f, -0.000000f, -0.923077f, 0.750000f, 1.000000f,
+ -0.232031f, 0.525000f, -0.342891f, -0.082396f, 0.988996f, -0.122871f, 0.625000f, 0.500000f,
+ -0.356664f, 0.510645f, -0.356664f, -0.122811f, 0.984802f, -0.122811f, 0.500000f, 0.625000f,
+ -0.282568f, 0.510645f, -0.417573f, -0.096857f, 0.984762f, -0.144436f, 0.625000f, 0.625000f,
+ -0.197170f, 0.510645f, -0.463412f, -0.066903f, 0.984755f, -0.160568f, 0.750000f, 0.625000f,
+ -0.325195f, 0.494531f, -0.480566f, -0.143734f, 0.966126f, -0.214340f, 0.625000f, 0.750000f,
+ -0.084047f, 0.525000f, -0.404250f, -0.029094f, 0.988935f, -0.145472f, 0.875000f, 0.500000f,
+ -0.197170f, 0.510645f, -0.463412f, -0.066903f, 0.984755f, -0.160568f, 0.750000f, 0.625000f,
+ -0.102353f, 0.510645f, -0.492297f, -0.034200f, 0.984678f, -0.170999f, 0.875000f, 0.625000f,
+ 0.000000f, 0.510645f, -0.502344f, 0.000000f, 0.984680f, -0.174370f, 1.000000f, 0.625000f,
+ -0.117793f, 0.494531f, -0.566563f, -0.050746f, 0.965942f, -0.253732f, 0.875000f, 0.750000f,
+ -0.325195f, 0.494531f, -0.480566f, -0.143734f, 0.966126f, -0.214340f, 0.625000f, 0.750000f,
+ -0.447633f, 0.474902f, -0.447633f, -0.356389f, 0.863698f, -0.356389f, 0.500000f, 0.875000f,
+ -0.354639f, 0.474902f, -0.524077f, -0.280988f, 0.863406f, -0.419017f, 0.625000f, 0.875000f,
+ -0.247459f, 0.474902f, -0.581607f, -0.194080f, 0.863349f, -0.465791f, 0.750000f, 0.875000f,
+ -0.365625f, 0.450000f, -0.540312f, -0.556953f, -0.000000f, -0.830544f, 0.625000f, 1.000000f,
+ -0.117793f, 0.494531f, -0.566563f, -0.050747f, 0.965942f, -0.253732f, 0.875000f, 0.750000f,
+ -0.247459f, 0.474902f, -0.581607f, -0.194079f, 0.863349f, -0.465791f, 0.750000f, 0.875000f,
+ -0.128458f, 0.474902f, -0.617859f, -0.099152f, 0.862780f, -0.495761f, 0.875000f, 0.875000f,
+ 0.000000f, 0.474902f, -0.630469f, 0.000000f, 0.862799f, -0.505546f, 1.000000f, 0.875000f,
+ -0.132437f, 0.450000f, -0.637000f, -0.196116f, -0.000000f, -0.980581f, 0.875000f, 1.000000f,
+ 0.000000f, 0.600000f, -0.100000f, 0.000000f, 0.800000f, -0.600000f, 0.000000f, 0.000000f,
+ 0.100000f, 0.600000f, -0.000000f, 0.600000f, 0.800000f, -0.000000f, 1.000000f, 0.000000f,
+ 0.000000f, 0.450000f, -0.650000f, 0.000000f, 0.000000f, -1.000000f, 0.000000f, 1.000000f,
+ 0.650000f, 0.450000f, -0.000000f, 1.000000f, 0.000000f, -0.000000f, 1.000000f, 1.000000f,
+ 0.071000f, 0.600000f, -0.071000f, 0.427006f, 0.797077f, -0.427006f, 0.500000f, 0.000000f,
+ 0.000000f, 0.525000f, -0.412500f, 0.000000f, 0.988936f, -0.148340f, 0.000000f, 0.500000f,
+ 0.292875f, 0.525000f, -0.292875f, 0.105934f, 0.988714f, -0.105934f, 0.500000f, 0.500000f,
+ 0.412500f, 0.525000f, -0.000000f, 0.148340f, 0.988936f, -0.000000f, 1.000000f, 0.500000f,
+ 0.461500f, 0.450000f, -0.461500f, 0.707107f, 0.000000f, -0.707107f, 0.500000f, 1.000000f,
+ 0.039250f, 0.600000f, -0.092250f, 0.230883f, 0.799778f, -0.554119f, 0.250000f, 0.000000f,
+ 0.000000f, 0.555469f, -0.228125f, 0.000000f, 0.978980f, -0.203954f, 0.000000f, 0.250000f,
+ 0.089539f, 0.555469f, -0.210445f, 0.078502f, 0.978949f, -0.188404f, 0.250000f, 0.250000f,
+ 0.161969f, 0.555469f, -0.161969f, 0.143654f, 0.979146f, -0.143654f, 0.500000f, 0.250000f,
+ 0.161906f, 0.525000f, -0.380531f, 0.057097f, 0.988920f, -0.137033f, 0.250000f, 0.500000f,
+ 0.020375f, 0.600000f, -0.098000f, 0.117666f, 0.800015f, -0.588329f, 0.125000f, 0.000000f,
+ 0.000000f, 0.575098f, -0.152344f, 0.000000f, 0.948259f, -0.317497f, 0.000000f, 0.125000f,
+ 0.031040f, 0.575098f, -0.149297f, 0.062263f, 0.948264f, -0.311317f, 0.125000f, 0.125000f,
+ 0.059795f, 0.575098f, -0.140537f, 0.121840f, 0.948497f, -0.292417f, 0.250000f, 0.125000f,
+ 0.046480f, 0.555469f, -0.223562f, 0.039997f, 0.978983f, -0.199984f, 0.125000f, 0.250000f,
+ 0.056250f, 0.600000f, -0.083125f, 0.333572f, 0.800807f, -0.497432f, 0.375000f, 0.000000f,
+ 0.059795f, 0.575098f, -0.140537f, 0.121840f, 0.948497f, -0.292417f, 0.250000f, 0.125000f,
+ 0.085693f, 0.575098f, -0.126636f, 0.176386f, 0.948527f, -0.263031f, 0.375000f, 0.125000f,
+ 0.108164f, 0.575098f, -0.108164f, 0.223681f, 0.948648f, -0.223681f, 0.500000f, 0.125000f,
+ 0.128320f, 0.555469f, -0.189629f, 0.113288f, 0.979094f, -0.168938f, 0.375000f, 0.250000f,
+ 0.046480f, 0.555469f, -0.223562f, 0.039997f, 0.978982f, -0.199985f, 0.125000f, 0.250000f,
+ 0.000000f, 0.539355f, -0.317969f, 0.000000f, 0.987537f, -0.157389f, 0.000000f, 0.375000f,
+ 0.064786f, 0.539355f, -0.311609f, 0.030865f, 0.987538f, -0.154325f, 0.125000f, 0.375000f,
+ 0.124803f, 0.539355f, -0.293326f, 0.060387f, 0.987598f, -0.144929f, 0.250000f, 0.375000f,
+ 0.084047f, 0.525000f, -0.404250f, 0.029090f, 0.988938f, -0.145452f, 0.125000f, 0.500000f,
+ 0.128320f, 0.555469f, -0.189629f, 0.113289f, 0.979094f, -0.168939f, 0.375000f, 0.250000f,
+ 0.124803f, 0.539355f, -0.293326f, 0.060387f, 0.987598f, -0.144929f, 0.250000f, 0.375000f,
+ 0.178857f, 0.539355f, -0.264312f, 0.087419f, 0.987605f, -0.130361f, 0.375000f, 0.375000f,
+ 0.225758f, 0.539355f, -0.225758f, 0.110849f, 0.987636f, -0.110849f, 0.500000f, 0.375000f,
+ 0.232031f, 0.525000f, -0.342891f, 0.082392f, 0.988997f, -0.122865f, 0.375000f, 0.500000f,
+ 0.092250f, 0.600000f, -0.039250f, 0.554392f, 0.799556f, -0.230997f, 0.750000f, 0.000000f,
+ 0.161969f, 0.555469f, -0.161969f, 0.143654f, 0.979146f, -0.143654f, 0.500000f, 0.250000f,
+ 0.210445f, 0.555469f, -0.089539f, 0.188544f, 0.978918f, -0.078560f, 0.750000f, 0.250000f,
+ 0.228125f, 0.555469f, -0.000000f, 0.203954f, 0.978980f, -0.000000f, 1.000000f, 0.250000f,
+ 0.380531f, 0.525000f, -0.161906f, 0.137136f, 0.988903f, -0.057140f, 0.750000f, 0.500000f,
+ 0.083125f, 0.600000f, -0.056250f, 0.497447f, 0.800793f, -0.333583f, 0.625000f, 0.000000f,
+ 0.108164f, 0.575098f, -0.108164f, 0.223681f, 0.948648f, -0.223681f, 0.500000f, 0.125000f,
+ 0.126636f, 0.575098f, -0.085693f, 0.263043f, 0.948522f, -0.176393f, 0.625000f, 0.125000f,
+ 0.140537f, 0.575098f, -0.059795f, 0.292417f, 0.948497f, -0.121840f, 0.750000f, 0.125000f,
+ 0.189629f, 0.555469f, -0.128320f, 0.168946f, 0.979092f, -0.113293f, 0.625000f, 0.250000f,
+ 0.098000f, 0.600000f, -0.020375f, 0.588382f, 0.799975f, -0.117676f, 0.875000f, 0.000000f,
+ 0.140537f, 0.575098f, -0.059795f, 0.292417f, 0.948497f, -0.121840f, 0.750000f, 0.125000f,
+ 0.149297f, 0.575098f, -0.031040f, 0.311356f, 0.948251f, -0.062271f, 0.875000f, 0.125000f,
+ 0.152344f, 0.575098f, -0.000000f, 0.317497f, 0.948259f, -0.000000f, 1.000000f, 0.125000f,
+ 0.223562f, 0.555469f, -0.046480f, 0.200010f, 0.978977f, -0.040002f, 0.875000f, 0.250000f,
+ 0.189629f, 0.555469f, -0.128320f, 0.168947f, 0.979092f, -0.113294f, 0.625000f, 0.250000f,
+ 0.225758f, 0.539355f, -0.225758f, 0.110849f, 0.987636f, -0.110849f, 0.500000f, 0.375000f,
+ 0.264312f, 0.539355f, -0.178857f, 0.130368f, 0.987604f, -0.087423f, 0.625000f, 0.375000f,
+ 0.293326f, 0.539355f, -0.124803f, 0.144929f, 0.987598f, -0.060387f, 0.750000f, 0.375000f,
+ 0.342891f, 0.525000f, -0.232031f, 0.122871f, 0.988996f, -0.082396f, 0.625000f, 0.500000f,
+ 0.223562f, 0.555469f, -0.046480f, 0.200011f, 0.978977f, -0.040002f, 0.875000f, 0.250000f,
+ 0.293326f, 0.539355f, -0.124803f, 0.144929f, 0.987598f, -0.060387f, 0.750000f, 0.375000f,
+ 0.311609f, 0.539355f, -0.064786f, 0.154346f, 0.987535f, -0.030869f, 0.875000f, 0.375000f,
+ 0.317969f, 0.539355f, -0.000000f, 0.157389f, 0.987537f, -0.000000f, 1.000000f, 0.375000f,
+ 0.404250f, 0.525000f, -0.084047f, 0.145472f, 0.988935f, -0.029094f, 0.875000f, 0.500000f,
+ 0.161906f, 0.525000f, -0.380531f, 0.057097f, 0.988920f, -0.137032f, 0.250000f, 0.500000f,
+ 0.000000f, 0.494531f, -0.578125f, 0.000000f, 0.965948f, -0.258736f, 0.000000f, 0.750000f,
+ 0.226914f, 0.494531f, -0.533320f, 0.099585f, 0.965898f, -0.239005f, 0.250000f, 0.750000f,
+ 0.410469f, 0.494531f, -0.410469f, 0.182258f, 0.966211f, -0.182258f, 0.500000f, 0.750000f,
+ 0.255125f, 0.450000f, -0.599625f, 0.384615f, 0.000000f, -0.923077f, 0.250000f, 1.000000f,
+ 0.084047f, 0.525000f, -0.404250f, 0.029090f, 0.988938f, -0.145452f, 0.125000f, 0.500000f,
+ 0.000000f, 0.510645f, -0.502344f, 0.000000f, 0.984680f, -0.174370f, 0.000000f, 0.625000f,
+ 0.102353f, 0.510645f, -0.492297f, 0.034195f, 0.984682f, -0.170975f, 0.125000f, 0.625000f,
+ 0.197170f, 0.510645f, -0.463412f, 0.066903f, 0.984755f, -0.160568f, 0.250000f, 0.625000f,
+ 0.117793f, 0.494531f, -0.566563f, 0.050740f, 0.965951f, -0.253699f, 0.125000f, 0.750000f,
+ 0.232031f, 0.525000f, -0.342891f, 0.082392f, 0.988997f, -0.122865f, 0.375000f, 0.500000f,
+ 0.197170f, 0.510645f, -0.463412f, 0.066903f, 0.984755f, -0.160568f, 0.250000f, 0.625000f,
+ 0.282568f, 0.510645f, -0.417573f, 0.096852f, 0.984764f, -0.144429f, 0.375000f, 0.625000f,
+ 0.356664f, 0.510645f, -0.356664f, 0.122811f, 0.984802f, -0.122811f, 0.500000f, 0.625000f,
+ 0.325195f, 0.494531f, -0.480566f, 0.143727f, 0.966129f, -0.214330f, 0.375000f, 0.750000f,
+ 0.117793f, 0.494531f, -0.566563f, 0.050740f, 0.965951f, -0.253699f, 0.125000f, 0.750000f,
+ 0.000000f, 0.474902f, -0.630469f, 0.000000f, 0.862799f, -0.505546f, 0.000000f, 0.875000f,
+ 0.128458f, 0.474902f, -0.617859f, 0.099142f, 0.862811f, -0.495710f, 0.125000f, 0.875000f,
+ 0.247459f, 0.474902f, -0.581607f, 0.194079f, 0.863349f, -0.465791f, 0.250000f, 0.875000f,
+ 0.132437f, 0.450000f, -0.637000f, 0.196116f, 0.000000f, -0.980581f, 0.125000f, 1.000000f,
+ 0.325195f, 0.494531f, -0.480566f, 0.143727f, 0.966129f, -0.214330f, 0.375000f, 0.750000f,
+ 0.247459f, 0.474902f, -0.581607f, 0.194080f, 0.863349f, -0.465791f, 0.250000f, 0.875000f,
+ 0.354639f, 0.474902f, -0.524077f, 0.280978f, 0.863417f, -0.419002f, 0.375000f, 0.875000f,
+ 0.447633f, 0.474902f, -0.447633f, 0.356389f, 0.863698f, -0.356389f, 0.500000f, 0.875000f,
+ 0.365625f, 0.450000f, -0.540312f, 0.556953f, 0.000000f, -0.830544f, 0.375000f, 1.000000f,
+ 0.380531f, 0.525000f, -0.161906f, 0.137136f, 0.988903f, -0.057140f, 0.750000f, 0.500000f,
+ 0.410469f, 0.494531f, -0.410469f, 0.182258f, 0.966211f, -0.182258f, 0.500000f, 0.750000f,
+ 0.533320f, 0.494531f, -0.226914f, 0.239176f, 0.965848f, -0.099657f, 0.750000f, 0.750000f,
+ 0.578125f, 0.494531f, -0.000000f, 0.258736f, 0.965948f, -0.000000f, 1.000000f, 0.750000f,
+ 0.599625f, 0.450000f, -0.255125f, 0.923077f, 0.000000f, -0.384615f, 0.750000f, 1.000000f,
+ 0.342891f, 0.525000f, -0.232031f, 0.122871f, 0.988996f, -0.082396f, 0.625000f, 0.500000f,
+ 0.356664f, 0.510645f, -0.356664f, 0.122811f, 0.984802f, -0.122811f, 0.500000f, 0.625000f,
+ 0.417573f, 0.510645f, -0.282568f, 0.144436f, 0.984762f, -0.096857f, 0.625000f, 0.625000f,
+ 0.463412f, 0.510645f, -0.197170f, 0.160568f, 0.984755f, -0.066903f, 0.750000f, 0.625000f,
+ 0.480566f, 0.494531f, -0.325195f, 0.214340f, 0.966126f, -0.143734f, 0.625000f, 0.750000f,
+ 0.404250f, 0.525000f, -0.084047f, 0.145472f, 0.988935f, -0.029094f, 0.875000f, 0.500000f,
+ 0.463412f, 0.510645f, -0.197170f, 0.160568f, 0.984755f, -0.066903f, 0.750000f, 0.625000f,
+ 0.492297f, 0.510645f, -0.102353f, 0.170999f, 0.984678f, -0.034200f, 0.875000f, 0.625000f,
+ 0.502344f, 0.510645f, -0.000000f, 0.174370f, 0.984680f, -0.000000f, 1.000000f, 0.625000f,
+ 0.566563f, 0.494531f, -0.117793f, 0.253732f, 0.965942f, -0.050746f, 0.875000f, 0.750000f,
+ 0.480566f, 0.494531f, -0.325195f, 0.214340f, 0.966126f, -0.143734f, 0.625000f, 0.750000f,
+ 0.447633f, 0.474902f, -0.447633f, 0.356389f, 0.863698f, -0.356389f, 0.500000f, 0.875000f,
+ 0.524077f, 0.474902f, -0.354639f, 0.419017f, 0.863406f, -0.280988f, 0.625000f, 0.875000f,
+ 0.581607f, 0.474902f, -0.247459f, 0.465791f, 0.863349f, -0.194080f, 0.750000f, 0.875000f,
+ 0.540312f, 0.450000f, -0.365625f, 0.830544f, 0.000000f, -0.556953f, 0.625000f, 1.000000f,
+ 0.566563f, 0.494531f, -0.117793f, 0.253732f, 0.965942f, -0.050747f, 0.875000f, 0.750000f,
+ 0.581607f, 0.474902f, -0.247459f, 0.465791f, 0.863349f, -0.194079f, 0.750000f, 0.875000f,
+ 0.617859f, 0.474902f, -0.128458f, 0.495761f, 0.862780f, -0.099152f, 0.875000f, 0.875000f,
+ 0.630469f, 0.474902f, -0.000000f, 0.505546f, 0.862799f, -0.000000f, 1.000000f, 0.875000f,
+ 0.637000f, 0.450000f, -0.132437f, 0.980581f, 0.000000f, -0.196116f, 0.875000f, 1.000000f,
+ 0.000000f, -0.750000f, -0.000000f, 0.099015f, -0.990148f, -0.099015f, 0.000000f, 0.000000f,
+ 0.000000f, -0.750000f, -0.000000f, 0.099015f, -0.990148f, -0.099015f, 1.000000f, 0.000000f,
+ 0.750000f, -0.675000f, -0.000000f, 1.000000f, -0.000000f, 0.000000f, 0.000000f, 1.000000f,
+ 0.000000f, -0.675000f, -0.750000f, 0.000000f, 0.000000f, -1.000000f, 1.000000f, 1.000000f,
+ 0.000000f, -0.750000f, -0.000000f, 0.099015f, -0.990148f, -0.099015f, 0.500000f, 0.000000f,
+ 0.642187f, -0.726562f, -0.000000f, 0.141421f, -0.989949f, 0.000000f, 0.000000f, 0.500000f,
+ 0.455953f, -0.726562f, -0.455953f, 0.100995f, -0.989748f, -0.100995f, 0.500000f, 0.500000f,
+ 0.000000f, -0.726562f, -0.642187f, -0.000000f, -0.989949f, -0.141421f, 1.000000f, 0.500000f,
+ 0.532500f, -0.675000f, -0.532500f, 0.707107f, 0.000000f, -0.707107f, 0.500000f, 1.000000f,
+ 0.000000f, -0.750000f, -0.000000f, 0.036468f, -0.999224f, -0.014895f, 0.250000f, 0.000000f,
+ 0.417773f, -0.743555f, -0.000000f, 0.039517f, -0.999219f, 0.000000f, 0.000000f, 0.250000f,
+ 0.385396f, -0.743555f, -0.163976f, 0.036505f, -0.999218f, -0.015211f, 0.250000f, 0.250000f,
+ 0.296619f, -0.743555f, -0.296619f, 0.027829f, -0.999225f, -0.027829f, 0.500000f, 0.250000f,
+ 0.592418f, -0.726562f, -0.252059f, 0.130641f, -0.989934f, -0.054434f, 0.250000f, 0.500000f,
+ 0.000000f, -0.750000f, -0.000000f, 0.015426f, -0.999876f, -0.003046f, 0.125000f, 0.000000f,
+ 0.236792f, -0.748315f, -0.000000f, 0.015871f, -0.999874f, 0.000000f, 0.000000f, 0.125000f,
+ 0.232056f, -0.748315f, -0.048246f, 0.015562f, -0.999874f, -0.003112f, 0.125000f, 0.125000f,
+ 0.218441f, -0.748315f, -0.092941f, 0.014614f, -0.999875f, -0.006089f, 0.250000f, 0.125000f,
+ 0.409418f, -0.743555f, -0.085121f, 0.038747f, -0.999219f, -0.007749f, 0.125000f, 0.250000f,
+ 0.000000f, -0.750000f, -0.000000f, 0.013015f, -0.999877f, -0.008711f, 0.375000f, 0.000000f,
+ 0.218441f, -0.748315f, -0.092941f, 0.014614f, -0.999875f, -0.006089f, 0.250000f, 0.125000f,
+ 0.196833f, -0.748315f, -0.133195f, 0.013145f, -0.999875f, -0.008815f, 0.375000f, 0.125000f,
+ 0.168122f, -0.748315f, -0.168122f, 0.011177f, -0.999875f, -0.011177f, 0.500000f, 0.125000f,
+ 0.347274f, -0.743555f, -0.234998f, 0.032729f, -0.999223f, -0.021947f, 0.375000f, 0.250000f,
+ 0.409418f, -0.743555f, -0.085121f, 0.038748f, -0.999219f, -0.007750f, 0.125000f, 0.250000f,
+ 0.550415f, -0.736157f, -0.000000f, 0.076999f, -0.997031f, 0.000000f, 0.000000f, 0.375000f,
+ 0.539407f, -0.736157f, -0.112147f, 0.075499f, -0.997032f, -0.015100f, 0.125000f, 0.375000f,
+ 0.507758f, -0.736157f, -0.216038f, 0.070899f, -0.997046f, -0.029541f, 0.250000f, 0.375000f,
+ 0.629344f, -0.726562f, -0.130846f, 0.138668f, -0.989950f, -0.027734f, 0.125000f, 0.500000f,
+ 0.347274f, -0.743555f, -0.234998f, 0.032729f, -0.999223f, -0.021948f, 0.375000f, 0.250000f,
+ 0.507758f, -0.736157f, -0.216038f, 0.070899f, -0.997046f, -0.029541f, 0.250000f, 0.375000f,
+ 0.457533f, -0.736157f, -0.309608f, 0.063773f, -0.997048f, -0.042765f, 0.375000f, 0.375000f,
+ 0.390795f, -0.736157f, -0.390795f, 0.054226f, -0.997055f, -0.054226f, 0.500000f, 0.375000f,
+ 0.533818f, -0.726562f, -0.361230f, 0.117134f, -0.990005f, -0.078549f, 0.375000f, 0.500000f,
+ 0.000000f, -0.750000f, -0.000000f, 0.014895f, -0.999224f, -0.036468f, 0.750000f, 0.000000f,
+ 0.296619f, -0.743555f, -0.296619f, 0.027829f, -0.999225f, -0.027829f, 0.500000f, 0.250000f,
+ 0.163976f, -0.743555f, -0.385396f, 0.015222f, -0.999216f, -0.036533f, 0.750000f, 0.250000f,
+ 0.000000f, -0.743555f, -0.417773f, -0.000000f, -0.999219f, -0.039517f, 1.000000f, 0.250000f,
+ 0.252059f, -0.726562f, -0.592418f, 0.054475f, -0.989919f, -0.130740f, 0.750000f, 0.500000f,
+ 0.000000f, -0.750000f, -0.000000f, 0.008711f, -0.999877f, -0.013015f, 0.625000f, 0.000000f,
+ 0.168122f, -0.748315f, -0.168122f, 0.011177f, -0.999875f, -0.011177f, 0.500000f, 0.125000f,
+ 0.133195f, -0.748315f, -0.196833f, 0.008815f, -0.999875f, -0.013145f, 0.625000f, 0.125000f,
+ 0.092941f, -0.748315f, -0.218441f, 0.006089f, -0.999875f, -0.014614f, 0.750000f, 0.125000f,
+ 0.234998f, -0.743555f, -0.347274f, 0.021948f, -0.999223f, -0.032730f, 0.625000f, 0.250000f,
+ 0.000000f, -0.750000f, -0.000000f, 0.003046f, -0.999876f, -0.015426f, 0.875000f, 0.000000f,
+ 0.092941f, -0.748315f, -0.218441f, 0.006089f, -0.999875f, -0.014614f, 0.750000f, 0.125000f,
+ 0.048246f, -0.748315f, -0.232056f, 0.003113f, -0.999874f, -0.015564f, 0.875000f, 0.125000f,
+ 0.000000f, -0.748315f, -0.236792f, -0.000000f, -0.999874f, -0.015871f, 1.000000f, 0.125000f,
+ 0.085121f, -0.743555f, -0.409418f, 0.007751f, -0.999219f, -0.038753f, 0.875000f, 0.250000f,
+ 0.234998f, -0.743555f, -0.347274f, 0.021949f, -0.999223f, -0.032731f, 0.625000f, 0.250000f,
+ 0.390795f, -0.736157f, -0.390795f, 0.054226f, -0.997055f, -0.054226f, 0.500000f, 0.375000f,
+ 0.309608f, -0.736157f, -0.457533f, 0.042767f, -0.997047f, -0.063776f, 0.625000f, 0.375000f,
+ 0.216038f, -0.736157f, -0.507758f, 0.029541f, -0.997046f, -0.070899f, 0.750000f, 0.375000f,
+ 0.361230f, -0.726562f, -0.533818f, 0.078553f, -0.990004f, -0.117140f, 0.625000f, 0.500000f,
+ 0.085121f, -0.743555f, -0.409418f, 0.007751f, -0.999219f, -0.038753f, 0.875000f, 0.250000f,
+ 0.216038f, -0.736157f, -0.507758f, 0.029541f, -0.997046f, -0.070899f, 0.750000f, 0.375000f,
+ 0.112147f, -0.736157f, -0.539407f, 0.015102f, -0.997031f, -0.075510f, 0.875000f, 0.375000f,
+ 0.000000f, -0.736157f, -0.550415f, -0.000000f, -0.997031f, -0.076999f, 1.000000f, 0.375000f,
+ 0.130846f, -0.726562f, -0.629344f, 0.027737f, -0.989948f, -0.138687f, 0.875000f, 0.500000f,
+ 0.592418f, -0.726562f, -0.252059f, 0.130641f, -0.989934f, -0.054434f, 0.250000f, 0.500000f,
+ 0.733008f, -0.702539f, -0.000000f, 0.514495f, -0.857493f, 0.000000f, 0.000000f, 0.750000f,
+ 0.676200f, -0.702539f, -0.287706f, 0.475188f, -0.857318f, -0.197995f, 0.250000f, 0.750000f,
+ 0.520436f, -0.702539f, -0.520436f, 0.362711f, -0.858418f, -0.362711f, 0.500000f, 0.750000f,
+ 0.691875f, -0.675000f, -0.294375f, 0.923077f, 0.000000f, -0.384615f, 0.250000f, 1.000000f,
+ 0.629344f, -0.726562f, -0.130846f, 0.138668f, -0.989950f, -0.027734f, 0.125000f, 0.500000f,
+ 0.700562f, -0.715210f, -0.000000f, 0.263929f, -0.964542f, 0.000000f, 0.000000f, 0.625000f,
+ 0.686550f, -0.715210f, -0.142739f, 0.258791f, -0.964546f, -0.051758f, 0.125000f, 0.625000f,
+ 0.646268f, -0.715210f, -0.274970f, 0.243061f, -0.964709f, -0.101276f, 0.250000f, 0.625000f,
+ 0.718348f, -0.702539f, -0.149350f, 0.504486f, -0.857505f, -0.100897f, 0.125000f, 0.750000f,
+ 0.533818f, -0.726562f, -0.361230f, 0.117134f, -0.990005f, -0.078549f, 0.375000f, 0.500000f,
+ 0.646268f, -0.715210f, -0.274970f, 0.243061f, -0.964709f, -0.101276f, 0.250000f, 0.625000f,
+ 0.582342f, -0.715210f, -0.394066f, 0.218633f, -0.964730f, -0.146613f, 0.375000f, 0.625000f,
+ 0.497399f, -0.715210f, -0.497399f, 0.185918f, -0.964815f, -0.185918f, 0.500000f, 0.625000f,
+ 0.609313f, -0.702539f, -0.412317f, 0.426431f, -0.858128f, -0.285959f, 0.375000f, 0.750000f,
+ 0.718348f, -0.702539f, -0.149350f, 0.504485f, -0.857505f, -0.100897f, 0.125000f, 0.750000f,
+ 0.746997f, -0.688989f, -0.000000f, 0.885831f, -0.464008f, 0.000000f, 0.000000f, 0.875000f,
+ 0.732057f, -0.688989f, -0.152201f, 0.868619f, -0.464027f, -0.173724f, 0.125000f, 0.875000f,
+ 0.689105f, -0.688989f, -0.293196f, 0.817250f, -0.464917f, -0.340521f, 0.250000f, 0.875000f,
+ 0.735000f, -0.675000f, -0.152812f, 0.980581f, 0.000000f, -0.196116f, 0.125000f, 1.000000f,
+ 0.609313f, -0.702539f, -0.412317f, 0.426430f, -0.858129f, -0.285959f, 0.375000f, 0.750000f,
+ 0.689105f, -0.688989f, -0.293196f, 0.817250f, -0.464917f, -0.340521f, 0.250000f, 0.875000f,
+ 0.620941f, -0.688989f, -0.420186f, 0.735277f, -0.465030f, -0.493068f, 0.375000f, 0.875000f,
+ 0.530368f, -0.688989f, -0.530368f, 0.625826f, -0.465494f, -0.625825f, 0.500000f, 0.875000f,
+ 0.623438f, -0.675000f, -0.421875f, 0.830544f, 0.000000f, -0.556953f, 0.375000f, 1.000000f,
+ 0.252059f, -0.726562f, -0.592418f, 0.054475f, -0.989919f, -0.130740f, 0.750000f, 0.500000f,
+ 0.520436f, -0.702539f, -0.520436f, 0.362711f, -0.858418f, -0.362711f, 0.500000f, 0.750000f,
+ 0.287706f, -0.702539f, -0.676200f, 0.198107f, -0.857143f, -0.475457f, 0.750000f, 0.750000f,
+ 0.000000f, -0.702539f, -0.733008f, -0.000000f, -0.857493f, -0.514495f, 1.000000f, 0.750000f,
+ 0.294375f, -0.675000f, -0.691875f, 0.384615f, 0.000000f, -0.923077f, 0.750000f, 1.000000f,
+ 0.361230f, -0.726562f, -0.533818f, 0.078553f, -0.990004f, -0.117140f, 0.625000f, 0.500000f,
+ 0.497399f, -0.715210f, -0.497399f, 0.185918f, -0.964815f, -0.185918f, 0.500000f, 0.625000f,
+ 0.394066f, -0.715210f, -0.582342f, 0.146620f, -0.964727f, -0.218643f, 0.625000f, 0.625000f,
+ 0.274970f, -0.715210f, -0.646268f, 0.101276f, -0.964709f, -0.243061f, 0.750000f, 0.625000f,
+ 0.412317f, -0.702539f, -0.609313f, 0.285969f, -0.858117f, -0.426446f, 0.625000f, 0.750000f,
+ 0.130846f, -0.726562f, -0.629344f, 0.027737f, -0.989948f, -0.138687f, 0.875000f, 0.500000f,
+ 0.274970f, -0.715210f, -0.646268f, 0.101276f, -0.964709f, -0.243061f, 0.750000f, 0.625000f,
+ 0.142739f, -0.715210f, -0.686550f, 0.051765f, -0.964536f, -0.258825f, 0.875000f, 0.625000f,
+ 0.000000f, -0.715210f, -0.700562f, -0.000000f, -0.964542f, -0.263929f, 1.000000f, 0.625000f,
+ 0.149350f, -0.702539f, -0.718348f, 0.100908f, -0.857473f, -0.504538f, 0.875000f, 0.750000f,
+ 0.412317f, -0.702539f, -0.609313f, 0.285969f, -0.858118f, -0.426445f, 0.625000f, 0.750000f,
+ 0.530368f, -0.688989f, -0.530368f, 0.625825f, -0.465494f, -0.625826f, 0.500000f, 0.875000f,
+ 0.420186f, -0.688989f, -0.620941f, 0.493073f, -0.465012f, -0.735284f, 0.625000f, 0.875000f,
+ 0.293196f, -0.688989f, -0.689105f, 0.340521f, -0.464917f, -0.817250f, 0.750000f, 0.875000f,
+ 0.421875f, -0.675000f, -0.623438f, 0.556953f, 0.000000f, -0.830544f, 0.625000f, 1.000000f,
+ 0.149350f, -0.702539f, -0.718348f, 0.100907f, -0.857473f, -0.504537f, 0.875000f, 0.750000f,
+ 0.293196f, -0.688989f, -0.689105f, 0.340521f, -0.464917f, -0.817250f, 0.750000f, 0.875000f,
+ 0.152201f, -0.688989f, -0.732057f, 0.173729f, -0.463975f, -0.868645f, 0.875000f, 0.875000f,
+ 0.000000f, -0.688989f, -0.746997f, -0.000000f, -0.464008f, -0.885831f, 1.000000f, 0.875000f,
+ 0.152812f, -0.675000f, -0.735000f, 0.196116f, 0.000000f, -0.980581f, 0.875000f, 1.000000f,
+ 0.000000f, -0.750000f, -0.000000f, -0.099015f, -0.990148f, -0.099015f, 0.000000f, 0.000000f,
+ 0.000000f, -0.750000f, -0.000000f, -0.099015f, -0.990148f, -0.099015f, 1.000000f, 0.000000f,
+ 0.000000f, -0.675000f, -0.750000f, 0.000000f, 0.000000f, -1.000000f, 0.000000f, 1.000000f,
+ -0.750000f, -0.675000f, -0.000000f, -1.000000f, 0.000000f, 0.000000f, 1.000000f, 1.000000f,
+ 0.000000f, -0.750000f, -0.000000f, -0.099015f, -0.990148f, -0.099015f, 0.500000f, 0.000000f,
+ 0.000000f, -0.726562f, -0.642187f, -0.000000f, -0.989949f, -0.141421f, 0.000000f, 0.500000f,
+ -0.455953f, -0.726562f, -0.455953f, -0.100995f, -0.989748f, -0.100995f, 0.500000f, 0.500000f,
+ -0.642187f, -0.726562f, -0.000000f, -0.141421f, -0.989949f, 0.000000f, 1.000000f, 0.500000f,
+ -0.532500f, -0.675000f, -0.532500f, -0.707107f, 0.000000f, -0.707107f, 0.500000f, 1.000000f,
+ 0.000000f, -0.750000f, -0.000000f, -0.014895f, -0.999224f, -0.036468f, 0.250000f, 0.000000f,
+ 0.000000f, -0.743555f, -0.417773f, -0.000000f, -0.999219f, -0.039517f, 0.000000f, 0.250000f,
+ -0.163976f, -0.743555f, -0.385396f, -0.015211f, -0.999218f, -0.036505f, 0.250000f, 0.250000f,
+ -0.296619f, -0.743555f, -0.296619f, -0.027829f, -0.999225f, -0.027829f, 0.500000f, 0.250000f,
+ -0.252059f, -0.726562f, -0.592418f, -0.054434f, -0.989934f, -0.130641f, 0.250000f, 0.500000f,
+ 0.000000f, -0.750000f, -0.000000f, -0.003046f, -0.999876f, -0.015426f, 0.125000f, 0.000000f,
+ 0.000000f, -0.748315f, -0.236792f, -0.000000f, -0.999874f, -0.015871f, 0.000000f, 0.125000f,
+ -0.048246f, -0.748315f, -0.232056f, -0.003112f, -0.999874f, -0.015562f, 0.125000f, 0.125000f,
+ -0.092941f, -0.748315f, -0.218441f, -0.006089f, -0.999875f, -0.014614f, 0.250000f, 0.125000f,
+ -0.085121f, -0.743555f, -0.409418f, -0.007749f, -0.999219f, -0.038747f, 0.125000f, 0.250000f,
+ 0.000000f, -0.750000f, -0.000000f, -0.008711f, -0.999877f, -0.013015f, 0.375000f, 0.000000f,
+ -0.092941f, -0.748315f, -0.218441f, -0.006089f, -0.999875f, -0.014614f, 0.250000f, 0.125000f,
+ -0.133195f, -0.748315f, -0.196833f, -0.008815f, -0.999875f, -0.013145f, 0.375000f, 0.125000f,
+ -0.168122f, -0.748315f, -0.168122f, -0.011177f, -0.999875f, -0.011177f, 0.500000f, 0.125000f,
+ -0.234998f, -0.743555f, -0.347274f, -0.021947f, -0.999223f, -0.032729f, 0.375000f, 0.250000f,
+ -0.085121f, -0.743555f, -0.409418f, -0.007750f, -0.999219f, -0.038748f, 0.125000f, 0.250000f,
+ 0.000000f, -0.736157f, -0.550415f, -0.000000f, -0.997031f, -0.076999f, 0.000000f, 0.375000f,
+ -0.112147f, -0.736157f, -0.539407f, -0.015100f, -0.997032f, -0.075499f, 0.125000f, 0.375000f,
+ -0.216038f, -0.736157f, -0.507758f, -0.029541f, -0.997046f, -0.070899f, 0.250000f, 0.375000f,
+ -0.130846f, -0.726562f, -0.629344f, -0.027734f, -0.989950f, -0.138668f, 0.125000f, 0.500000f,
+ -0.234998f, -0.743555f, -0.347274f, -0.021948f, -0.999223f, -0.032729f, 0.375000f, 0.250000f,
+ -0.216038f, -0.736157f, -0.507758f, -0.029541f, -0.997046f, -0.070899f, 0.250000f, 0.375000f,
+ -0.309608f, -0.736157f, -0.457533f, -0.042765f, -0.997048f, -0.063773f, 0.375000f, 0.375000f,
+ -0.390795f, -0.736157f, -0.390795f, -0.054226f, -0.997055f, -0.054226f, 0.500000f, 0.375000f,
+ -0.361230f, -0.726562f, -0.533818f, -0.078549f, -0.990005f, -0.117134f, 0.375000f, 0.500000f,
+ 0.000000f, -0.750000f, -0.000000f, -0.036468f, -0.999224f, -0.014895f, 0.750000f, 0.000000f,
+ -0.296619f, -0.743555f, -0.296619f, -0.027829f, -0.999225f, -0.027829f, 0.500000f, 0.250000f,
+ -0.385396f, -0.743555f, -0.163976f, -0.036533f, -0.999216f, -0.015222f, 0.750000f, 0.250000f,
+ -0.417773f, -0.743555f, -0.000000f, -0.039517f, -0.999219f, 0.000000f, 1.000000f, 0.250000f,
+ -0.592418f, -0.726562f, -0.252059f, -0.130740f, -0.989919f, -0.054475f, 0.750000f, 0.500000f,
+ 0.000000f, -0.750000f, -0.000000f, -0.013015f, -0.999877f, -0.008711f, 0.625000f, 0.000000f,
+ -0.168122f, -0.748315f, -0.168122f, -0.011177f, -0.999875f, -0.011177f, 0.500000f, 0.125000f,
+ -0.196833f, -0.748315f, -0.133195f, -0.013145f, -0.999875f, -0.008815f, 0.625000f, 0.125000f,
+ -0.218441f, -0.748315f, -0.092941f, -0.014614f, -0.999875f, -0.006089f, 0.750000f, 0.125000f,
+ -0.347274f, -0.743555f, -0.234998f, -0.032730f, -0.999223f, -0.021948f, 0.625000f, 0.250000f,
+ 0.000000f, -0.750000f, -0.000000f, -0.015426f, -0.999876f, -0.003046f, 0.875000f, 0.000000f,
+ -0.218441f, -0.748315f, -0.092941f, -0.014614f, -0.999875f, -0.006089f, 0.750000f, 0.125000f,
+ -0.232056f, -0.748315f, -0.048246f, -0.015564f, -0.999874f, -0.003113f, 0.875000f, 0.125000f,
+ -0.236792f, -0.748315f, -0.000000f, -0.015871f, -0.999874f, 0.000000f, 1.000000f, 0.125000f,
+ -0.409418f, -0.743555f, -0.085121f, -0.038753f, -0.999219f, -0.007751f, 0.875000f, 0.250000f,
+ -0.347274f, -0.743555f, -0.234998f, -0.032731f, -0.999223f, -0.021949f, 0.625000f, 0.250000f,
+ -0.390795f, -0.736157f, -0.390795f, -0.054226f, -0.997055f, -0.054226f, 0.500000f, 0.375000f,
+ -0.457533f, -0.736157f, -0.309608f, -0.063776f, -0.997047f, -0.042767f, 0.625000f, 0.375000f,
+ -0.507758f, -0.736157f, -0.216038f, -0.070899f, -0.997046f, -0.029541f, 0.750000f, 0.375000f,
+ -0.533818f, -0.726562f, -0.361230f, -0.117140f, -0.990004f, -0.078553f, 0.625000f, 0.500000f,
+ -0.409418f, -0.743555f, -0.085121f, -0.038753f, -0.999219f, -0.007751f, 0.875000f, 0.250000f,
+ -0.507758f, -0.736157f, -0.216038f, -0.070899f, -0.997046f, -0.029541f, 0.750000f, 0.375000f,
+ -0.539407f, -0.736157f, -0.112147f, -0.075510f, -0.997031f, -0.015102f, 0.875000f, 0.375000f,
+ -0.550415f, -0.736157f, -0.000000f, -0.076999f, -0.997031f, 0.000000f, 1.000000f, 0.375000f,
+ -0.629344f, -0.726562f, -0.130846f, -0.138687f, -0.989948f, -0.027737f, 0.875000f, 0.500000f,
+ -0.252059f, -0.726562f, -0.592418f, -0.054434f, -0.989934f, -0.130641f, 0.250000f, 0.500000f,
+ 0.000000f, -0.702539f, -0.733008f, -0.000000f, -0.857493f, -0.514495f, 0.000000f, 0.750000f,
+ -0.287706f, -0.702539f, -0.676200f, -0.197995f, -0.857318f, -0.475188f, 0.250000f, 0.750000f,
+ -0.520436f, -0.702539f, -0.520436f, -0.362711f, -0.858418f, -0.362711f, 0.500000f, 0.750000f,
+ -0.294375f, -0.675000f, -0.691875f, -0.384615f, 0.000000f, -0.923077f, 0.250000f, 1.000000f,
+ -0.130846f, -0.726562f, -0.629344f, -0.027734f, -0.989950f, -0.138668f, 0.125000f, 0.500000f,
+ 0.000000f, -0.715210f, -0.700562f, -0.000000f, -0.964542f, -0.263929f, 0.000000f, 0.625000f,
+ -0.142739f, -0.715210f, -0.686550f, -0.051758f, -0.964546f, -0.258791f, 0.125000f, 0.625000f,
+ -0.274970f, -0.715210f, -0.646268f, -0.101276f, -0.964709f, -0.243061f, 0.250000f, 0.625000f,
+ -0.149350f, -0.702539f, -0.718348f, -0.100897f, -0.857505f, -0.504486f, 0.125000f, 0.750000f,
+ -0.361230f, -0.726562f, -0.533818f, -0.078549f, -0.990005f, -0.117134f, 0.375000f, 0.500000f,
+ -0.274970f, -0.715210f, -0.646268f, -0.101276f, -0.964709f, -0.243061f, 0.250000f, 0.625000f,
+ -0.394066f, -0.715210f, -0.582342f, -0.146613f, -0.964730f, -0.218633f, 0.375000f, 0.625000f,
+ -0.497399f, -0.715210f, -0.497399f, -0.185918f, -0.964815f, -0.185918f, 0.500000f, 0.625000f,
+ -0.412317f, -0.702539f, -0.609313f, -0.285959f, -0.858128f, -0.426431f, 0.375000f, 0.750000f,
+ -0.149350f, -0.702539f, -0.718348f, -0.100897f, -0.857505f, -0.504485f, 0.125000f, 0.750000f,
+ 0.000000f, -0.688989f, -0.746997f, -0.000000f, -0.464008f, -0.885831f, 0.000000f, 0.875000f,
+ -0.152201f, -0.688989f, -0.732057f, -0.173724f, -0.464027f, -0.868619f, 0.125000f, 0.875000f,
+ -0.293196f, -0.688989f, -0.689105f, -0.340521f, -0.464917f, -0.817250f, 0.250000f, 0.875000f,
+ -0.152812f, -0.675000f, -0.735000f, -0.196116f, 0.000000f, -0.980581f, 0.125000f, 1.000000f,
+ -0.412317f, -0.702539f, -0.609313f, -0.285959f, -0.858129f, -0.426430f, 0.375000f, 0.750000f,
+ -0.293196f, -0.688989f, -0.689105f, -0.340521f, -0.464917f, -0.817250f, 0.250000f, 0.875000f,
+ -0.420186f, -0.688989f, -0.620941f, -0.493068f, -0.465030f, -0.735277f, 0.375000f, 0.875000f,
+ -0.530368f, -0.688989f, -0.530368f, -0.625825f, -0.465494f, -0.625826f, 0.500000f, 0.875000f,
+ -0.421875f, -0.675000f, -0.623438f, -0.556953f, 0.000000f, -0.830544f, 0.375000f, 1.000000f,
+ -0.592418f, -0.726562f, -0.252059f, -0.130740f, -0.989919f, -0.054475f, 0.750000f, 0.500000f,
+ -0.520436f, -0.702539f, -0.520436f, -0.362711f, -0.858418f, -0.362711f, 0.500000f, 0.750000f,
+ -0.676200f, -0.702539f, -0.287706f, -0.475457f, -0.857143f, -0.198107f, 0.750000f, 0.750000f,
+ -0.733008f, -0.702539f, -0.000000f, -0.514495f, -0.857493f, 0.000000f, 1.000000f, 0.750000f,
+ -0.691875f, -0.675000f, -0.294375f, -0.923077f, 0.000000f, -0.384615f, 0.750000f, 1.000000f,
+ -0.533818f, -0.726562f, -0.361230f, -0.117140f, -0.990004f, -0.078553f, 0.625000f, 0.500000f,
+ -0.497399f, -0.715210f, -0.497399f, -0.185918f, -0.964815f, -0.185918f, 0.500000f, 0.625000f,
+ -0.582342f, -0.715210f, -0.394066f, -0.218643f, -0.964727f, -0.146620f, 0.625000f, 0.625000f,
+ -0.646268f, -0.715210f, -0.274970f, -0.243061f, -0.964709f, -0.101276f, 0.750000f, 0.625000f,
+ -0.609313f, -0.702539f, -0.412317f, -0.426446f, -0.858117f, -0.285969f, 0.625000f, 0.750000f,
+ -0.629344f, -0.726562f, -0.130846f, -0.138687f, -0.989948f, -0.027737f, 0.875000f, 0.500000f,
+ -0.646268f, -0.715210f, -0.274970f, -0.243061f, -0.964709f, -0.101276f, 0.750000f, 0.625000f,
+ -0.686550f, -0.715210f, -0.142739f, -0.258825f, -0.964536f, -0.051765f, 0.875000f, 0.625000f,
+ -0.700562f, -0.715210f, -0.000000f, -0.263929f, -0.964542f, 0.000000f, 1.000000f, 0.625000f,
+ -0.718348f, -0.702539f, -0.149350f, -0.504538f, -0.857473f, -0.100908f, 0.875000f, 0.750000f,
+ -0.609313f, -0.702539f, -0.412317f, -0.426445f, -0.858118f, -0.285969f, 0.625000f, 0.750000f,
+ -0.530368f, -0.688989f, -0.530368f, -0.625826f, -0.465494f, -0.625825f, 0.500000f, 0.875000f,
+ -0.620941f, -0.688989f, -0.420186f, -0.735284f, -0.465012f, -0.493073f, 0.625000f, 0.875000f,
+ -0.689105f, -0.688989f, -0.293196f, -0.817250f, -0.464917f, -0.340521f, 0.750000f, 0.875000f,
+ -0.623438f, -0.675000f, -0.421875f, -0.830544f, 0.000000f, -0.556953f, 0.625000f, 1.000000f,
+ -0.718348f, -0.702539f, -0.149350f, -0.504537f, -0.857473f, -0.100907f, 0.875000f, 0.750000f,
+ -0.689105f, -0.688989f, -0.293196f, -0.817250f, -0.464917f, -0.340521f, 0.750000f, 0.875000f,
+ -0.732057f, -0.688989f, -0.152201f, -0.868645f, -0.463975f, -0.173729f, 0.875000f, 0.875000f,
+ -0.746997f, -0.688989f, -0.000000f, -0.885831f, -0.464008f, 0.000000f, 1.000000f, 0.875000f,
+ -0.735000f, -0.675000f, -0.152812f, -0.980581f, 0.000000f, -0.196116f, 0.875000f, 1.000000f,
+ 0.000000f, -0.750000f, -0.000000f, -0.099015f, -0.990148f, 0.099015f, 0.000000f, 0.000000f,
+ 0.000000f, -0.750000f, -0.000000f, -0.099015f, -0.990148f, 0.099015f, 1.000000f, 0.000000f,
+ -0.750000f, -0.675000f, -0.000000f, -1.000000f, 0.000000f, 0.000000f, 0.000000f, 1.000000f,
+ 0.000000f, -0.675000f, 0.750000f, 0.000000f, 0.000000f, 1.000000f, 1.000000f, 1.000000f,
+ 0.000000f, -0.750000f, -0.000000f, -0.099015f, -0.990148f, 0.099015f, 0.500000f, 0.000000f,
+ -0.642187f, -0.726562f, -0.000000f, -0.141421f, -0.989949f, 0.000000f, 0.000000f, 0.500000f,
+ -0.455953f, -0.726562f, 0.455953f, -0.100995f, -0.989748f, 0.100995f, 0.500000f, 0.500000f,
+ 0.000000f, -0.726562f, 0.642187f, 0.000000f, -0.989949f, 0.141421f, 1.000000f, 0.500000f,
+ -0.532500f, -0.675000f, 0.532500f, -0.707107f, 0.000000f, 0.707107f, 0.500000f, 1.000000f,
+ 0.000000f, -0.750000f, -0.000000f, -0.036468f, -0.999224f, 0.014895f, 0.250000f, 0.000000f,
+ -0.417773f, -0.743555f, -0.000000f, -0.039517f, -0.999219f, 0.000000f, 0.000000f, 0.250000f,
+ -0.385396f, -0.743555f, 0.163976f, -0.036505f, -0.999218f, 0.015211f, 0.250000f, 0.250000f,
+ -0.296619f, -0.743555f, 0.296619f, -0.027829f, -0.999225f, 0.027829f, 0.500000f, 0.250000f,
+ -0.592418f, -0.726562f, 0.252059f, -0.130641f, -0.989934f, 0.054434f, 0.250000f, 0.500000f,
+ 0.000000f, -0.750000f, -0.000000f, -0.015426f, -0.999876f, 0.003046f, 0.125000f, 0.000000f,
+ -0.236792f, -0.748315f, -0.000000f, -0.015871f, -0.999874f, 0.000000f, 0.000000f, 0.125000f,
+ -0.232056f, -0.748315f, 0.048246f, -0.015562f, -0.999874f, 0.003112f, 0.125000f, 0.125000f,
+ -0.218441f, -0.748315f, 0.092941f, -0.014614f, -0.999875f, 0.006089f, 0.250000f, 0.125000f,
+ -0.409418f, -0.743555f, 0.085121f, -0.038747f, -0.999219f, 0.007749f, 0.125000f, 0.250000f,
+ 0.000000f, -0.750000f, -0.000000f, -0.013015f, -0.999877f, 0.008711f, 0.375000f, 0.000000f,
+ -0.218441f, -0.748315f, 0.092941f, -0.014614f, -0.999875f, 0.006089f, 0.250000f, 0.125000f,
+ -0.196833f, -0.748315f, 0.133195f, -0.013145f, -0.999875f, 0.008815f, 0.375000f, 0.125000f,
+ -0.168122f, -0.748315f, 0.168122f, -0.011177f, -0.999875f, 0.011177f, 0.500000f, 0.125000f,
+ -0.347274f, -0.743555f, 0.234998f, -0.032729f, -0.999223f, 0.021947f, 0.375000f, 0.250000f,
+ -0.409418f, -0.743555f, 0.085121f, -0.038748f, -0.999219f, 0.007750f, 0.125000f, 0.250000f,
+ -0.550415f, -0.736157f, -0.000000f, -0.076999f, -0.997031f, 0.000000f, 0.000000f, 0.375000f,
+ -0.539407f, -0.736157f, 0.112147f, -0.075499f, -0.997032f, 0.015100f, 0.125000f, 0.375000f,
+ -0.507758f, -0.736157f, 0.216038f, -0.070899f, -0.997046f, 0.029541f, 0.250000f, 0.375000f,
+ -0.629344f, -0.726562f, 0.130846f, -0.138668f, -0.989950f, 0.027734f, 0.125000f, 0.500000f,
+ -0.347274f, -0.743555f, 0.234998f, -0.032729f, -0.999223f, 0.021948f, 0.375000f, 0.250000f,
+ -0.507758f, -0.736157f, 0.216038f, -0.070899f, -0.997046f, 0.029541f, 0.250000f, 0.375000f,
+ -0.457533f, -0.736157f, 0.309608f, -0.063773f, -0.997048f, 0.042765f, 0.375000f, 0.375000f,
+ -0.390795f, -0.736157f, 0.390795f, -0.054226f, -0.997055f, 0.054226f, 0.500000f, 0.375000f,
+ -0.533818f, -0.726562f, 0.361230f, -0.117134f, -0.990005f, 0.078549f, 0.375000f, 0.500000f,
+ 0.000000f, -0.750000f, -0.000000f, -0.014895f, -0.999224f, 0.036468f, 0.750000f, 0.000000f,
+ -0.296619f, -0.743555f, 0.296619f, -0.027829f, -0.999225f, 0.027829f, 0.500000f, 0.250000f,
+ -0.163976f, -0.743555f, 0.385396f, -0.015222f, -0.999216f, 0.036533f, 0.750000f, 0.250000f,
+ 0.000000f, -0.743555f, 0.417773f, 0.000000f, -0.999219f, 0.039517f, 1.000000f, 0.250000f,
+ -0.252059f, -0.726562f, 0.592418f, -0.054475f, -0.989919f, 0.130740f, 0.750000f, 0.500000f,
+ 0.000000f, -0.750000f, -0.000000f, -0.008711f, -0.999877f, 0.013015f, 0.625000f, 0.000000f,
+ -0.168122f, -0.748315f, 0.168122f, -0.011177f, -0.999875f, 0.011177f, 0.500000f, 0.125000f,
+ -0.133195f, -0.748315f, 0.196833f, -0.008815f, -0.999875f, 0.013145f, 0.625000f, 0.125000f,
+ -0.092941f, -0.748315f, 0.218441f, -0.006089f, -0.999875f, 0.014614f, 0.750000f, 0.125000f,
+ -0.234998f, -0.743555f, 0.347274f, -0.021948f, -0.999223f, 0.032730f, 0.625000f, 0.250000f,
+ 0.000000f, -0.750000f, -0.000000f, -0.003046f, -0.999876f, 0.015426f, 0.875000f, 0.000000f,
+ -0.092941f, -0.748315f, 0.218441f, -0.006089f, -0.999875f, 0.014614f, 0.750000f, 0.125000f,
+ -0.048246f, -0.748315f, 0.232056f, -0.003113f, -0.999874f, 0.015564f, 0.875000f, 0.125000f,
+ 0.000000f, -0.748315f, 0.236792f, 0.000000f, -0.999874f, 0.015871f, 1.000000f, 0.125000f,
+ -0.085121f, -0.743555f, 0.409418f, -0.007751f, -0.999219f, 0.038753f, 0.875000f, 0.250000f,
+ -0.234998f, -0.743555f, 0.347274f, -0.021949f, -0.999223f, 0.032731f, 0.625000f, 0.250000f,
+ -0.390795f, -0.736157f, 0.390795f, -0.054226f, -0.997055f, 0.054226f, 0.500000f, 0.375000f,
+ -0.309608f, -0.736157f, 0.457533f, -0.042767f, -0.997047f, 0.063776f, 0.625000f, 0.375000f,
+ -0.216038f, -0.736157f, 0.507758f, -0.029541f, -0.997046f, 0.070899f, 0.750000f, 0.375000f,
+ -0.361230f, -0.726562f, 0.533818f, -0.078553f, -0.990004f, 0.117140f, 0.625000f, 0.500000f,
+ -0.085121f, -0.743555f, 0.409418f, -0.007751f, -0.999219f, 0.038753f, 0.875000f, 0.250000f,
+ -0.216038f, -0.736157f, 0.507758f, -0.029541f, -0.997046f, 0.070899f, 0.750000f, 0.375000f,
+ -0.112147f, -0.736157f, 0.539407f, -0.015102f, -0.997031f, 0.075510f, 0.875000f, 0.375000f,
+ 0.000000f, -0.736157f, 0.550415f, 0.000000f, -0.997031f, 0.076999f, 1.000000f, 0.375000f,
+ -0.130846f, -0.726562f, 0.629344f, -0.027737f, -0.989948f, 0.138687f, 0.875000f, 0.500000f,
+ -0.592418f, -0.726562f, 0.252059f, -0.130641f, -0.989934f, 0.054434f, 0.250000f, 0.500000f,
+ -0.733008f, -0.702539f, -0.000000f, -0.514495f, -0.857493f, 0.000000f, 0.000000f, 0.750000f,
+ -0.676200f, -0.702539f, 0.287706f, -0.475188f, -0.857318f, 0.197995f, 0.250000f, 0.750000f,
+ -0.520436f, -0.702539f, 0.520436f, -0.362711f, -0.858418f, 0.362711f, 0.500000f, 0.750000f,
+ -0.691875f, -0.675000f, 0.294375f, -0.923077f, 0.000000f, 0.384615f, 0.250000f, 1.000000f,
+ -0.629344f, -0.726562f, 0.130846f, -0.138668f, -0.989950f, 0.027734f, 0.125000f, 0.500000f,
+ -0.700562f, -0.715210f, -0.000000f, -0.263929f, -0.964542f, 0.000000f, 0.000000f, 0.625000f,
+ -0.686550f, -0.715210f, 0.142739f, -0.258791f, -0.964546f, 0.051758f, 0.125000f, 0.625000f,
+ -0.646268f, -0.715210f, 0.274970f, -0.243061f, -0.964709f, 0.101276f, 0.250000f, 0.625000f,
+ -0.718348f, -0.702539f, 0.149350f, -0.504486f, -0.857505f, 0.100897f, 0.125000f, 0.750000f,
+ -0.533818f, -0.726562f, 0.361230f, -0.117134f, -0.990005f, 0.078549f, 0.375000f, 0.500000f,
+ -0.646268f, -0.715210f, 0.274970f, -0.243061f, -0.964709f, 0.101276f, 0.250000f, 0.625000f,
+ -0.582342f, -0.715210f, 0.394066f, -0.218633f, -0.964730f, 0.146613f, 0.375000f, 0.625000f,
+ -0.497399f, -0.715210f, 0.497399f, -0.185918f, -0.964815f, 0.185918f, 0.500000f, 0.625000f,
+ -0.609313f, -0.702539f, 0.412317f, -0.426431f, -0.858128f, 0.285959f, 0.375000f, 0.750000f,
+ -0.718348f, -0.702539f, 0.149350f, -0.504485f, -0.857505f, 0.100897f, 0.125000f, 0.750000f,
+ -0.746997f, -0.688989f, -0.000000f, -0.885831f, -0.464008f, 0.000000f, 0.000000f, 0.875000f,
+ -0.732057f, -0.688989f, 0.152201f, -0.868619f, -0.464027f, 0.173724f, 0.125000f, 0.875000f,
+ -0.689105f, -0.688989f, 0.293196f, -0.817250f, -0.464917f, 0.340521f, 0.250000f, 0.875000f,
+ -0.735000f, -0.675000f, 0.152812f, -0.980581f, 0.000000f, 0.196116f, 0.125000f, 1.000000f,
+ -0.609313f, -0.702539f, 0.412317f, -0.426430f, -0.858129f, 0.285959f, 0.375000f, 0.750000f,
+ -0.689105f, -0.688989f, 0.293196f, -0.817250f, -0.464917f, 0.340521f, 0.250000f, 0.875000f,
+ -0.620941f, -0.688989f, 0.420186f, -0.735277f, -0.465030f, 0.493068f, 0.375000f, 0.875000f,
+ -0.530368f, -0.688989f, 0.530368f, -0.625826f, -0.465494f, 0.625825f, 0.500000f, 0.875000f,
+ -0.623438f, -0.675000f, 0.421875f, -0.830544f, 0.000000f, 0.556953f, 0.375000f, 1.000000f,
+ -0.252059f, -0.726562f, 0.592418f, -0.054475f, -0.989919f, 0.130740f, 0.750000f, 0.500000f,
+ -0.520436f, -0.702539f, 0.520436f, -0.362711f, -0.858418f, 0.362711f, 0.500000f, 0.750000f,
+ -0.287706f, -0.702539f, 0.676200f, -0.198107f, -0.857143f, 0.475457f, 0.750000f, 0.750000f,
+ 0.000000f, -0.702539f, 0.733008f, 0.000000f, -0.857493f, 0.514495f, 1.000000f, 0.750000f,
+ -0.294375f, -0.675000f, 0.691875f, -0.384615f, 0.000000f, 0.923077f, 0.750000f, 1.000000f,
+ -0.361230f, -0.726562f, 0.533818f, -0.078553f, -0.990004f, 0.117140f, 0.625000f, 0.500000f,
+ -0.497399f, -0.715210f, 0.497399f, -0.185918f, -0.964815f, 0.185918f, 0.500000f, 0.625000f,
+ -0.394066f, -0.715210f, 0.582342f, -0.146620f, -0.964727f, 0.218643f, 0.625000f, 0.625000f,
+ -0.274970f, -0.715210f, 0.646268f, -0.101276f, -0.964709f, 0.243061f, 0.750000f, 0.625000f,
+ -0.412317f, -0.702539f, 0.609313f, -0.285969f, -0.858117f, 0.426446f, 0.625000f, 0.750000f,
+ -0.130846f, -0.726562f, 0.629344f, -0.027737f, -0.989948f, 0.138687f, 0.875000f, 0.500000f,
+ -0.274970f, -0.715210f, 0.646268f, -0.101276f, -0.964709f, 0.243061f, 0.750000f, 0.625000f,
+ -0.142739f, -0.715210f, 0.686550f, -0.051765f, -0.964536f, 0.258825f, 0.875000f, 0.625000f,
+ 0.000000f, -0.715210f, 0.700562f, 0.000000f, -0.964542f, 0.263929f, 1.000000f, 0.625000f,
+ -0.149350f, -0.702539f, 0.718348f, -0.100908f, -0.857473f, 0.504538f, 0.875000f, 0.750000f,
+ -0.412317f, -0.702539f, 0.609313f, -0.285969f, -0.858118f, 0.426445f, 0.625000f, 0.750000f,
+ -0.530368f, -0.688989f, 0.530368f, -0.625825f, -0.465494f, 0.625826f, 0.500000f, 0.875000f,
+ -0.420186f, -0.688989f, 0.620941f, -0.493073f, -0.465012f, 0.735284f, 0.625000f, 0.875000f,
+ -0.293196f, -0.688989f, 0.689105f, -0.340521f, -0.464917f, 0.817250f, 0.750000f, 0.875000f,
+ -0.421875f, -0.675000f, 0.623438f, -0.556953f, 0.000000f, 0.830544f, 0.625000f, 1.000000f,
+ -0.149350f, -0.702539f, 0.718348f, -0.100907f, -0.857473f, 0.504537f, 0.875000f, 0.750000f,
+ -0.293196f, -0.688989f, 0.689105f, -0.340521f, -0.464917f, 0.817250f, 0.750000f, 0.875000f,
+ -0.152201f, -0.688989f, 0.732057f, -0.173729f, -0.463975f, 0.868645f, 0.875000f, 0.875000f,
+ 0.000000f, -0.688989f, 0.746997f, 0.000000f, -0.464008f, 0.885831f, 1.000000f, 0.875000f,
+ -0.152812f, -0.675000f, 0.735000f, -0.196116f, 0.000000f, 0.980581f, 0.875000f, 1.000000f,
+ 0.000000f, -0.750000f, -0.000000f, 0.099015f, -0.990148f, 0.099015f, 0.000000f, 0.000000f,
+ 0.000000f, -0.750000f, -0.000000f, 0.099015f, -0.990148f, 0.099015f, 1.000000f, 0.000000f,
+ 0.000000f, -0.675000f, 0.750000f, 0.000000f, 0.000000f, 1.000000f, 0.000000f, 1.000000f,
+ 0.750000f, -0.675000f, -0.000000f, 1.000000f, -0.000000f, 0.000000f, 1.000000f, 1.000000f,
+ 0.000000f, -0.750000f, -0.000000f, 0.099015f, -0.990148f, 0.099015f, 0.500000f, 0.000000f,
+ 0.000000f, -0.726562f, 0.642187f, 0.000000f, -0.989949f, 0.141421f, 0.000000f, 0.500000f,
+ 0.455953f, -0.726562f, 0.455953f, 0.100995f, -0.989748f, 0.100995f, 0.500000f, 0.500000f,
+ 0.642187f, -0.726562f, -0.000000f, 0.141421f, -0.989949f, 0.000000f, 1.000000f, 0.500000f,
+ 0.532500f, -0.675000f, 0.532500f, 0.707107f, -0.000000f, 0.707107f, 0.500000f, 1.000000f,
+ 0.000000f, -0.750000f, -0.000000f, 0.014895f, -0.999224f, 0.036468f, 0.250000f, 0.000000f,
+ 0.000000f, -0.743555f, 0.417773f, 0.000000f, -0.999219f, 0.039517f, 0.000000f, 0.250000f,
+ 0.163976f, -0.743555f, 0.385396f, 0.015211f, -0.999218f, 0.036505f, 0.250000f, 0.250000f,
+ 0.296619f, -0.743555f, 0.296619f, 0.027829f, -0.999225f, 0.027829f, 0.500000f, 0.250000f,
+ 0.252059f, -0.726562f, 0.592418f, 0.054434f, -0.989934f, 0.130641f, 0.250000f, 0.500000f,
+ 0.000000f, -0.750000f, -0.000000f, 0.003046f, -0.999876f, 0.015426f, 0.125000f, 0.000000f,
+ 0.000000f, -0.748315f, 0.236792f, 0.000000f, -0.999874f, 0.015871f, 0.000000f, 0.125000f,
+ 0.048246f, -0.748315f, 0.232056f, 0.003112f, -0.999874f, 0.015562f, 0.125000f, 0.125000f,
+ 0.092941f, -0.748315f, 0.218441f, 0.006089f, -0.999875f, 0.014614f, 0.250000f, 0.125000f,
+ 0.085121f, -0.743555f, 0.409418f, 0.007749f, -0.999219f, 0.038747f, 0.125000f, 0.250000f,
+ 0.000000f, -0.750000f, -0.000000f, 0.008711f, -0.999877f, 0.013015f, 0.375000f, 0.000000f,
+ 0.092941f, -0.748315f, 0.218441f, 0.006089f, -0.999875f, 0.014614f, 0.250000f, 0.125000f,
+ 0.133195f, -0.748315f, 0.196833f, 0.008815f, -0.999875f, 0.013145f, 0.375000f, 0.125000f,
+ 0.168122f, -0.748315f, 0.168122f, 0.011177f, -0.999875f, 0.011177f, 0.500000f, 0.125000f,
+ 0.234998f, -0.743555f, 0.347274f, 0.021947f, -0.999223f, 0.032729f, 0.375000f, 0.250000f,
+ 0.085121f, -0.743555f, 0.409418f, 0.007750f, -0.999219f, 0.038748f, 0.125000f, 0.250000f,
+ 0.000000f, -0.736157f, 0.550415f, 0.000000f, -0.997031f, 0.076999f, 0.000000f, 0.375000f,
+ 0.112147f, -0.736157f, 0.539407f, 0.015100f, -0.997032f, 0.075499f, 0.125000f, 0.375000f,
+ 0.216038f, -0.736157f, 0.507758f, 0.029541f, -0.997046f, 0.070899f, 0.250000f, 0.375000f,
+ 0.130846f, -0.726562f, 0.629344f, 0.027734f, -0.989950f, 0.138668f, 0.125000f, 0.500000f,
+ 0.234998f, -0.743555f, 0.347274f, 0.021948f, -0.999223f, 0.032729f, 0.375000f, 0.250000f,
+ 0.216038f, -0.736157f, 0.507758f, 0.029541f, -0.997046f, 0.070899f, 0.250000f, 0.375000f,
+ 0.309608f, -0.736157f, 0.457533f, 0.042765f, -0.997048f, 0.063773f, 0.375000f, 0.375000f,
+ 0.390795f, -0.736157f, 0.390795f, 0.054226f, -0.997055f, 0.054226f, 0.500000f, 0.375000f,
+ 0.361230f, -0.726562f, 0.533818f, 0.078549f, -0.990005f, 0.117134f, 0.375000f, 0.500000f,
+ 0.000000f, -0.750000f, -0.000000f, 0.036468f, -0.999224f, 0.014895f, 0.750000f, 0.000000f,
+ 0.296619f, -0.743555f, 0.296619f, 0.027829f, -0.999225f, 0.027829f, 0.500000f, 0.250000f,
+ 0.385396f, -0.743555f, 0.163976f, 0.036533f, -0.999216f, 0.015222f, 0.750000f, 0.250000f,
+ 0.417773f, -0.743555f, -0.000000f, 0.039517f, -0.999219f, 0.000000f, 1.000000f, 0.250000f,
+ 0.592418f, -0.726562f, 0.252059f, 0.130740f, -0.989919f, 0.054475f, 0.750000f, 0.500000f,
+ 0.000000f, -0.750000f, -0.000000f, 0.013015f, -0.999877f, 0.008711f, 0.625000f, 0.000000f,
+ 0.168122f, -0.748315f, 0.168122f, 0.011177f, -0.999875f, 0.011177f, 0.500000f, 0.125000f,
+ 0.196833f, -0.748315f, 0.133195f, 0.013145f, -0.999875f, 0.008815f, 0.625000f, 0.125000f,
+ 0.218441f, -0.748315f, 0.092941f, 0.014614f, -0.999875f, 0.006089f, 0.750000f, 0.125000f,
+ 0.347274f, -0.743555f, 0.234998f, 0.032730f, -0.999223f, 0.021948f, 0.625000f, 0.250000f,
+ 0.000000f, -0.750000f, -0.000000f, 0.015426f, -0.999876f, 0.003046f, 0.875000f, 0.000000f,
+ 0.218441f, -0.748315f, 0.092941f, 0.014614f, -0.999875f, 0.006089f, 0.750000f, 0.125000f,
+ 0.232056f, -0.748315f, 0.048246f, 0.015564f, -0.999874f, 0.003113f, 0.875000f, 0.125000f,
+ 0.236792f, -0.748315f, -0.000000f, 0.015871f, -0.999874f, 0.000000f, 1.000000f, 0.125000f,
+ 0.409418f, -0.743555f, 0.085121f, 0.038753f, -0.999219f, 0.007751f, 0.875000f, 0.250000f,
+ 0.347274f, -0.743555f, 0.234998f, 0.032731f, -0.999223f, 0.021949f, 0.625000f, 0.250000f,
+ 0.390795f, -0.736157f, 0.390795f, 0.054226f, -0.997055f, 0.054226f, 0.500000f, 0.375000f,
+ 0.457533f, -0.736157f, 0.309608f, 0.063776f, -0.997047f, 0.042767f, 0.625000f, 0.375000f,
+ 0.507758f, -0.736157f, 0.216038f, 0.070899f, -0.997046f, 0.029541f, 0.750000f, 0.375000f,
+ 0.533818f, -0.726562f, 0.361230f, 0.117140f, -0.990004f, 0.078553f, 0.625000f, 0.500000f,
+ 0.409418f, -0.743555f, 0.085121f, 0.038753f, -0.999219f, 0.007751f, 0.875000f, 0.250000f,
+ 0.507758f, -0.736157f, 0.216038f, 0.070899f, -0.997046f, 0.029541f, 0.750000f, 0.375000f,
+ 0.539407f, -0.736157f, 0.112147f, 0.075510f, -0.997031f, 0.015102f, 0.875000f, 0.375000f,
+ 0.550415f, -0.736157f, -0.000000f, 0.076999f, -0.997031f, 0.000000f, 1.000000f, 0.375000f,
+ 0.629344f, -0.726562f, 0.130846f, 0.138687f, -0.989948f, 0.027737f, 0.875000f, 0.500000f,
+ 0.252059f, -0.726562f, 0.592418f, 0.054434f, -0.989934f, 0.130641f, 0.250000f, 0.500000f,
+ 0.000000f, -0.702539f, 0.733008f, 0.000000f, -0.857493f, 0.514495f, 0.000000f, 0.750000f,
+ 0.287706f, -0.702539f, 0.676200f, 0.197995f, -0.857318f, 0.475188f, 0.250000f, 0.750000f,
+ 0.520436f, -0.702539f, 0.520436f, 0.362711f, -0.858418f, 0.362711f, 0.500000f, 0.750000f,
+ 0.294375f, -0.675000f, 0.691875f, 0.384615f, -0.000000f, 0.923077f, 0.250000f, 1.000000f,
+ 0.130846f, -0.726562f, 0.629344f, 0.027734f, -0.989950f, 0.138668f, 0.125000f, 0.500000f,
+ 0.000000f, -0.715210f, 0.700562f, 0.000000f, -0.964542f, 0.263929f, 0.000000f, 0.625000f,
+ 0.142739f, -0.715210f, 0.686550f, 0.051758f, -0.964546f, 0.258791f, 0.125000f, 0.625000f,
+ 0.274970f, -0.715210f, 0.646268f, 0.101276f, -0.964709f, 0.243061f, 0.250000f, 0.625000f,
+ 0.149350f, -0.702539f, 0.718348f, 0.100897f, -0.857505f, 0.504486f, 0.125000f, 0.750000f,
+ 0.361230f, -0.726562f, 0.533818f, 0.078549f, -0.990005f, 0.117134f, 0.375000f, 0.500000f,
+ 0.274970f, -0.715210f, 0.646268f, 0.101276f, -0.964709f, 0.243061f, 0.250000f, 0.625000f,
+ 0.394066f, -0.715210f, 0.582342f, 0.146613f, -0.964730f, 0.218633f, 0.375000f, 0.625000f,
+ 0.497399f, -0.715210f, 0.497399f, 0.185918f, -0.964815f, 0.185918f, 0.500000f, 0.625000f,
+ 0.412317f, -0.702539f, 0.609313f, 0.285959f, -0.858128f, 0.426431f, 0.375000f, 0.750000f,
+ 0.149350f, -0.702539f, 0.718348f, 0.100897f, -0.857505f, 0.504485f, 0.125000f, 0.750000f,
+ 0.000000f, -0.688989f, 0.746997f, 0.000000f, -0.464008f, 0.885831f, 0.000000f, 0.875000f,
+ 0.152201f, -0.688989f, 0.732057f, 0.173724f, -0.464027f, 0.868619f, 0.125000f, 0.875000f,
+ 0.293196f, -0.688989f, 0.689105f, 0.340521f, -0.464917f, 0.817250f, 0.250000f, 0.875000f,
+ 0.152812f, -0.675000f, 0.735000f, 0.196116f, -0.000000f, 0.980581f, 0.125000f, 1.000000f,
+ 0.412317f, -0.702539f, 0.609313f, 0.285959f, -0.858129f, 0.426430f, 0.375000f, 0.750000f,
+ 0.293196f, -0.688989f, 0.689105f, 0.340521f, -0.464917f, 0.817250f, 0.250000f, 0.875000f,
+ 0.420186f, -0.688989f, 0.620941f, 0.493068f, -0.465030f, 0.735277f, 0.375000f, 0.875000f,
+ 0.530368f, -0.688989f, 0.530368f, 0.625825f, -0.465494f, 0.625826f, 0.500000f, 0.875000f,
+ 0.421875f, -0.675000f, 0.623438f, 0.556953f, -0.000000f, 0.830544f, 0.375000f, 1.000000f,
+ 0.592418f, -0.726562f, 0.252059f, 0.130740f, -0.989919f, 0.054475f, 0.750000f, 0.500000f,
+ 0.520436f, -0.702539f, 0.520436f, 0.362711f, -0.858418f, 0.362711f, 0.500000f, 0.750000f,
+ 0.676200f, -0.702539f, 0.287706f, 0.475457f, -0.857143f, 0.198107f, 0.750000f, 0.750000f,
+ 0.733008f, -0.702539f, -0.000000f, 0.514495f, -0.857493f, 0.000000f, 1.000000f, 0.750000f,
+ 0.691875f, -0.675000f, 0.294375f, 0.923077f, -0.000000f, 0.384615f, 0.750000f, 1.000000f,
+ 0.533818f, -0.726562f, 0.361230f, 0.117140f, -0.990004f, 0.078553f, 0.625000f, 0.500000f,
+ 0.497399f, -0.715210f, 0.497399f, 0.185918f, -0.964815f, 0.185918f, 0.500000f, 0.625000f,
+ 0.582342f, -0.715210f, 0.394066f, 0.218643f, -0.964727f, 0.146620f, 0.625000f, 0.625000f,
+ 0.646268f, -0.715210f, 0.274970f, 0.243061f, -0.964709f, 0.101276f, 0.750000f, 0.625000f,
+ 0.609313f, -0.702539f, 0.412317f, 0.426446f, -0.858117f, 0.285969f, 0.625000f, 0.750000f,
+ 0.629344f, -0.726562f, 0.130846f, 0.138687f, -0.989948f, 0.027737f, 0.875000f, 0.500000f,
+ 0.646268f, -0.715210f, 0.274970f, 0.243061f, -0.964709f, 0.101276f, 0.750000f, 0.625000f,
+ 0.686550f, -0.715210f, 0.142739f, 0.258825f, -0.964536f, 0.051765f, 0.875000f, 0.625000f,
+ 0.700562f, -0.715210f, -0.000000f, 0.263929f, -0.964542f, 0.000000f, 1.000000f, 0.625000f,
+ 0.718348f, -0.702539f, 0.149350f, 0.504538f, -0.857473f, 0.100908f, 0.875000f, 0.750000f,
+ 0.609313f, -0.702539f, 0.412317f, 0.426445f, -0.858118f, 0.285969f, 0.625000f, 0.750000f,
+ 0.530368f, -0.688989f, 0.530368f, 0.625826f, -0.465494f, 0.625825f, 0.500000f, 0.875000f,
+ 0.620941f, -0.688989f, 0.420186f, 0.735284f, -0.465012f, 0.493073f, 0.625000f, 0.875000f,
+ 0.689105f, -0.688989f, 0.293196f, 0.817250f, -0.464917f, 0.340521f, 0.750000f, 0.875000f,
+ 0.623438f, -0.675000f, 0.421875f, 0.830544f, -0.000000f, 0.556953f, 0.625000f, 1.000000f,
+ 0.718348f, -0.702539f, 0.149350f, 0.504537f, -0.857473f, 0.100907f, 0.875000f, 0.750000f,
+ 0.689105f, -0.688989f, 0.293196f, 0.817250f, -0.464917f, 0.340521f, 0.750000f, 0.875000f,
+ 0.732057f, -0.688989f, 0.152201f, 0.868645f, -0.463975f, 0.173729f, 0.875000f, 0.875000f,
+ 0.746997f, -0.688989f, -0.000000f, 0.885831f, -0.464008f, 0.000000f, 1.000000f, 0.875000f,
+ 0.735000f, -0.675000f, 0.152812f, 0.980581f, -0.000000f, 0.196116f, 0.875000f, 1.000000f
+};
+
+static ushort const teapotTriangleData[] = {
+ 0, 14, 15, 14, 16, 15, 14, 9, 16, 9, 17, 16,
+ 15, 16, 10, 16, 18, 10, 16, 17, 18, 17, 11, 18,
+ 9, 19, 20, 19, 21, 20, 19, 4, 21, 4, 22, 21,
+ 20, 21, 11, 21, 23, 11, 21, 22, 23, 22, 12, 23,
+ 10, 24, 25, 24, 26, 25, 24, 11, 26, 11, 27, 26,
+ 25, 26, 5, 26, 28, 5, 26, 27, 28, 27, 13, 28,
+ 11, 29, 30, 29, 31, 30, 29, 12, 31, 12, 32, 31,
+ 30, 31, 13, 31, 33, 13, 31, 32, 33, 32, 6, 33,
+ 4, 39, 40, 39, 41, 40, 39, 34, 41, 34, 42, 41,
+ 40, 41, 35, 41, 43, 35, 41, 42, 43, 42, 36, 43,
+ 34, 44, 45, 44, 46, 45, 44, 1, 46, 1, 47, 46,
+ 45, 46, 36, 46, 48, 36, 46, 47, 48, 47, 37, 48,
+ 35, 49, 50, 49, 51, 50, 49, 36, 51, 36, 52, 51,
+ 50, 51, 6, 51, 53, 6, 51, 52, 53, 52, 38, 53,
+ 36, 54, 55, 54, 56, 55, 54, 37, 56, 37, 57, 56,
+ 55, 56, 38, 56, 58, 38, 56, 57, 58, 57, 7, 58,
+ 5, 64, 65, 64, 66, 65, 64, 59, 66, 59, 67, 66,
+ 65, 66, 60, 66, 68, 60, 66, 67, 68, 67, 61, 68,
+ 59, 69, 70, 69, 71, 70, 69, 6, 71, 6, 72, 71,
+ 70, 71, 61, 71, 73, 61, 71, 72, 73, 72, 62, 73,
+ 60, 74, 75, 74, 76, 75, 74, 61, 76, 61, 77, 76,
+ 75, 76, 2, 76, 78, 2, 76, 77, 78, 77, 63, 78,
+ 61, 79, 80, 79, 81, 80, 79, 62, 81, 62, 82, 81,
+ 80, 81, 63, 81, 83, 63, 81, 82, 83, 82, 8, 83,
+ 6, 89, 90, 89, 91, 90, 89, 84, 91, 84, 92, 91,
+ 90, 91, 85, 91, 93, 85, 91, 92, 93, 92, 86, 93,
+ 84, 94, 95, 94, 96, 95, 94, 7, 96, 7, 97, 96,
+ 95, 96, 86, 96, 98, 86, 96, 97, 98, 97, 87, 98,
+ 85, 99, 100, 99, 101, 100, 99, 86, 101, 86, 102, 101,
+ 100, 101, 8, 101, 103, 8, 101, 102, 103, 102, 88, 103,
+ 86, 104, 105, 104, 106, 105, 104, 87, 106, 87, 107, 106,
+ 105, 106, 88, 106, 108, 88, 106, 107, 108, 107, 3, 108,
+ 109, 123, 124, 123, 125, 124, 123, 118, 125, 118, 126, 125,
+ 124, 125, 119, 125, 127, 119, 125, 126, 127, 126, 120, 127,
+ 118, 128, 129, 128, 130, 129, 128, 113, 130, 113, 131, 130,
+ 129, 130, 120, 130, 132, 120, 130, 131, 132, 131, 121, 132,
+ 119, 133, 134, 133, 135, 134, 133, 120, 135, 120, 136, 135,
+ 134, 135, 114, 135, 137, 114, 135, 136, 137, 136, 122, 137,
+ 120, 138, 139, 138, 140, 139, 138, 121, 140, 121, 141, 140,
+ 139, 140, 122, 140, 142, 122, 140, 141, 142, 141, 115, 142,
+ 113, 148, 149, 148, 150, 149, 148, 143, 150, 143, 151, 150,
+ 149, 150, 144, 150, 152, 144, 150, 151, 152, 151, 145, 152,
+ 143, 153, 154, 153, 155, 154, 153, 110, 155, 110, 156, 155,
+ 154, 155, 145, 155, 157, 145, 155, 156, 157, 156, 146, 157,
+ 144, 158, 159, 158, 160, 159, 158, 145, 160, 145, 161, 160,
+ 159, 160, 115, 160, 162, 115, 160, 161, 162, 161, 147, 162,
+ 145, 163, 164, 163, 165, 164, 163, 146, 165, 146, 166, 165,
+ 164, 165, 147, 165, 167, 147, 165, 166, 167, 166, 116, 167,
+ 114, 173, 174, 173, 175, 174, 173, 168, 175, 168, 176, 175,
+ 174, 175, 169, 175, 177, 169, 175, 176, 177, 176, 170, 177,
+ 168, 178, 179, 178, 180, 179, 178, 115, 180, 115, 181, 180,
+ 179, 180, 170, 180, 182, 170, 180, 181, 182, 181, 171, 182,
+ 169, 183, 184, 183, 185, 184, 183, 170, 185, 170, 186, 185,
+ 184, 185, 111, 185, 187, 111, 185, 186, 187, 186, 172, 187,
+ 170, 188, 189, 188, 190, 189, 188, 171, 190, 171, 191, 190,
+ 189, 190, 172, 190, 192, 172, 190, 191, 192, 191, 117, 192,
+ 115, 198, 199, 198, 200, 199, 198, 193, 200, 193, 201, 200,
+ 199, 200, 194, 200, 202, 194, 200, 201, 202, 201, 195, 202,
+ 193, 203, 204, 203, 205, 204, 203, 116, 205, 116, 206, 205,
+ 204, 205, 195, 205, 207, 195, 205, 206, 207, 206, 196, 207,
+ 194, 208, 209, 208, 210, 209, 208, 195, 210, 195, 211, 210,
+ 209, 210, 117, 210, 212, 117, 210, 211, 212, 211, 197, 212,
+ 195, 213, 214, 213, 215, 214, 213, 196, 215, 196, 216, 215,
+ 214, 215, 197, 215, 217, 197, 215, 216, 217, 216, 112, 217,
+ 218, 232, 233, 232, 234, 233, 232, 227, 234, 227, 235, 234,
+ 233, 234, 228, 234, 236, 228, 234, 235, 236, 235, 229, 236,
+ 227, 237, 238, 237, 239, 238, 237, 222, 239, 222, 240, 239,
+ 238, 239, 229, 239, 241, 229, 239, 240, 241, 240, 230, 241,
+ 228, 242, 243, 242, 244, 243, 242, 229, 244, 229, 245, 244,
+ 243, 244, 223, 244, 246, 223, 244, 245, 246, 245, 231, 246,
+ 229, 247, 248, 247, 249, 248, 247, 230, 249, 230, 250, 249,
+ 248, 249, 231, 249, 251, 231, 249, 250, 251, 250, 224, 251,
+ 222, 257, 258, 257, 259, 258, 257, 252, 259, 252, 260, 259,
+ 258, 259, 253, 259, 261, 253, 259, 260, 261, 260, 254, 261,
+ 252, 262, 263, 262, 264, 263, 262, 219, 264, 219, 265, 264,
+ 263, 264, 254, 264, 266, 254, 264, 265, 266, 265, 255, 266,
+ 253, 267, 268, 267, 269, 268, 267, 254, 269, 254, 270, 269,
+ 268, 269, 224, 269, 271, 224, 269, 270, 271, 270, 256, 271,
+ 254, 272, 273, 272, 274, 273, 272, 255, 274, 255, 275, 274,
+ 273, 274, 256, 274, 276, 256, 274, 275, 276, 275, 225, 276,
+ 223, 282, 283, 282, 284, 283, 282, 277, 284, 277, 285, 284,
+ 283, 284, 278, 284, 286, 278, 284, 285, 286, 285, 279, 286,
+ 277, 287, 288, 287, 289, 288, 287, 224, 289, 224, 290, 289,
+ 288, 289, 279, 289, 291, 279, 289, 290, 291, 290, 280, 291,
+ 278, 292, 293, 292, 294, 293, 292, 279, 294, 279, 295, 294,
+ 293, 294, 220, 294, 296, 220, 294, 295, 296, 295, 281, 296,
+ 279, 297, 298, 297, 299, 298, 297, 280, 299, 280, 300, 299,
+ 298, 299, 281, 299, 301, 281, 299, 300, 301, 300, 226, 301,
+ 224, 307, 308, 307, 309, 308, 307, 302, 309, 302, 310, 309,
+ 308, 309, 303, 309, 311, 303, 309, 310, 311, 310, 304, 311,
+ 302, 312, 313, 312, 314, 313, 312, 225, 314, 225, 315, 314,
+ 313, 314, 304, 314, 316, 304, 314, 315, 316, 315, 305, 316,
+ 303, 317, 318, 317, 319, 318, 317, 304, 319, 304, 320, 319,
+ 318, 319, 226, 319, 321, 226, 319, 320, 321, 320, 306, 321,
+ 304, 322, 323, 322, 324, 323, 322, 305, 324, 305, 325, 324,
+ 323, 324, 306, 324, 326, 306, 324, 325, 326, 325, 221, 326,
+ 327, 341, 342, 341, 343, 342, 341, 336, 343, 336, 344, 343,
+ 342, 343, 337, 343, 345, 337, 343, 344, 345, 344, 338, 345,
+ 336, 346, 347, 346, 348, 347, 346, 331, 348, 331, 349, 348,
+ 347, 348, 338, 348, 350, 338, 348, 349, 350, 349, 339, 350,
+ 337, 351, 352, 351, 353, 352, 351, 338, 353, 338, 354, 353,
+ 352, 353, 332, 353, 355, 332, 353, 354, 355, 354, 340, 355,
+ 338, 356, 357, 356, 358, 357, 356, 339, 358, 339, 359, 358,
+ 357, 358, 340, 358, 360, 340, 358, 359, 360, 359, 333, 360,
+ 331, 366, 367, 366, 368, 367, 366, 361, 368, 361, 369, 368,
+ 367, 368, 362, 368, 370, 362, 368, 369, 370, 369, 363, 370,
+ 361, 371, 372, 371, 373, 372, 371, 328, 373, 328, 374, 373,
+ 372, 373, 363, 373, 375, 363, 373, 374, 375, 374, 364, 375,
+ 362, 376, 377, 376, 378, 377, 376, 363, 378, 363, 379, 378,
+ 377, 378, 333, 378, 380, 333, 378, 379, 380, 379, 365, 380,
+ 363, 381, 382, 381, 383, 382, 381, 364, 383, 364, 384, 383,
+ 382, 383, 365, 383, 385, 365, 383, 384, 385, 384, 334, 385,
+ 332, 391, 392, 391, 393, 392, 391, 386, 393, 386, 394, 393,
+ 392, 393, 387, 393, 395, 387, 393, 394, 395, 394, 388, 395,
+ 386, 396, 397, 396, 398, 397, 396, 333, 398, 333, 399, 398,
+ 397, 398, 388, 398, 400, 388, 398, 399, 400, 399, 389, 400,
+ 387, 401, 402, 401, 403, 402, 401, 388, 403, 388, 404, 403,
+ 402, 403, 329, 403, 405, 329, 403, 404, 405, 404, 390, 405,
+ 388, 406, 407, 406, 408, 407, 406, 389, 408, 389, 409, 408,
+ 407, 408, 390, 408, 410, 390, 408, 409, 410, 409, 335, 410,
+ 333, 416, 417, 416, 418, 417, 416, 411, 418, 411, 419, 418,
+ 417, 418, 412, 418, 420, 412, 418, 419, 420, 419, 413, 420,
+ 411, 421, 422, 421, 423, 422, 421, 334, 423, 334, 424, 423,
+ 422, 423, 413, 423, 425, 413, 423, 424, 425, 424, 414, 425,
+ 412, 426, 427, 426, 428, 427, 426, 413, 428, 413, 429, 428,
+ 427, 428, 335, 428, 430, 335, 428, 429, 430, 429, 415, 430,
+ 413, 431, 432, 431, 433, 432, 431, 414, 433, 414, 434, 433,
+ 432, 433, 415, 433, 435, 415, 433, 434, 435, 434, 330, 435,
+ 436, 450, 451, 450, 452, 451, 450, 445, 452, 445, 453, 452,
+ 451, 452, 446, 452, 454, 446, 452, 453, 454, 453, 447, 454,
+ 445, 455, 456, 455, 457, 456, 455, 440, 457, 440, 458, 457,
+ 456, 457, 447, 457, 459, 447, 457, 458, 459, 458, 448, 459,
+ 446, 460, 461, 460, 462, 461, 460, 447, 462, 447, 463, 462,
+ 461, 462, 441, 462, 464, 441, 462, 463, 464, 463, 449, 464,
+ 447, 465, 466, 465, 467, 466, 465, 448, 467, 448, 468, 467,
+ 466, 467, 449, 467, 469, 449, 467, 468, 469, 468, 442, 469,
+ 440, 475, 476, 475, 477, 476, 475, 470, 477, 470, 478, 477,
+ 476, 477, 471, 477, 479, 471, 477, 478, 479, 478, 472, 479,
+ 470, 480, 481, 480, 482, 481, 480, 437, 482, 437, 483, 482,
+ 481, 482, 472, 482, 484, 472, 482, 483, 484, 483, 473, 484,
+ 471, 485, 486, 485, 487, 486, 485, 472, 487, 472, 488, 487,
+ 486, 487, 442, 487, 489, 442, 487, 488, 489, 488, 474, 489,
+ 472, 490, 491, 490, 492, 491, 490, 473, 492, 473, 493, 492,
+ 491, 492, 474, 492, 494, 474, 492, 493, 494, 493, 443, 494,
+ 441, 500, 501, 500, 502, 501, 500, 495, 502, 495, 503, 502,
+ 501, 502, 496, 502, 504, 496, 502, 503, 504, 503, 497, 504,
+ 495, 505, 506, 505, 507, 506, 505, 442, 507, 442, 508, 507,
+ 506, 507, 497, 507, 509, 497, 507, 508, 509, 508, 498, 509,
+ 496, 510, 511, 510, 512, 511, 510, 497, 512, 497, 513, 512,
+ 511, 512, 438, 512, 514, 438, 512, 513, 514, 513, 499, 514,
+ 497, 515, 516, 515, 517, 516, 515, 498, 517, 498, 518, 517,
+ 516, 517, 499, 517, 519, 499, 517, 518, 519, 518, 444, 519,
+ 442, 525, 526, 525, 527, 526, 525, 520, 527, 520, 528, 527,
+ 526, 527, 521, 527, 529, 521, 527, 528, 529, 528, 522, 529,
+ 520, 530, 531, 530, 532, 531, 530, 443, 532, 443, 533, 532,
+ 531, 532, 522, 532, 534, 522, 532, 533, 534, 533, 523, 534,
+ 521, 535, 536, 535, 537, 536, 535, 522, 537, 522, 538, 537,
+ 536, 537, 444, 537, 539, 444, 537, 538, 539, 538, 524, 539,
+ 522, 540, 541, 540, 542, 541, 540, 523, 542, 523, 543, 542,
+ 541, 542, 524, 542, 544, 524, 542, 543, 544, 543, 439, 544,
+ 545, 559, 560, 559, 561, 560, 559, 554, 561, 554, 562, 561,
+ 560, 561, 555, 561, 563, 555, 561, 562, 563, 562, 556, 563,
+ 554, 564, 565, 564, 566, 565, 564, 549, 566, 549, 567, 566,
+ 565, 566, 556, 566, 568, 556, 566, 567, 568, 567, 557, 568,
+ 555, 569, 570, 569, 571, 570, 569, 556, 571, 556, 572, 571,
+ 570, 571, 550, 571, 573, 550, 571, 572, 573, 572, 558, 573,
+ 556, 574, 575, 574, 576, 575, 574, 557, 576, 557, 577, 576,
+ 575, 576, 558, 576, 578, 558, 576, 577, 578, 577, 551, 578,
+ 549, 584, 585, 584, 586, 585, 584, 579, 586, 579, 587, 586,
+ 585, 586, 580, 586, 588, 580, 586, 587, 588, 587, 581, 588,
+ 579, 589, 590, 589, 591, 590, 589, 546, 591, 546, 592, 591,
+ 590, 591, 581, 591, 593, 581, 591, 592, 593, 592, 582, 593,
+ 580, 594, 595, 594, 596, 595, 594, 581, 596, 581, 597, 596,
+ 595, 596, 551, 596, 598, 551, 596, 597, 598, 597, 583, 598,
+ 581, 599, 600, 599, 601, 600, 599, 582, 601, 582, 602, 601,
+ 600, 601, 583, 601, 603, 583, 601, 602, 603, 602, 552, 603,
+ 550, 609, 610, 609, 611, 610, 609, 604, 611, 604, 612, 611,
+ 610, 611, 605, 611, 613, 605, 611, 612, 613, 612, 606, 613,
+ 604, 614, 615, 614, 616, 615, 614, 551, 616, 551, 617, 616,
+ 615, 616, 606, 616, 618, 606, 616, 617, 618, 617, 607, 618,
+ 605, 619, 620, 619, 621, 620, 619, 606, 621, 606, 622, 621,
+ 620, 621, 547, 621, 623, 547, 621, 622, 623, 622, 608, 623,
+ 606, 624, 625, 624, 626, 625, 624, 607, 626, 607, 627, 626,
+ 625, 626, 608, 626, 628, 608, 626, 627, 628, 627, 553, 628,
+ 551, 634, 635, 634, 636, 635, 634, 629, 636, 629, 637, 636,
+ 635, 636, 630, 636, 638, 630, 636, 637, 638, 637, 631, 638,
+ 629, 639, 640, 639, 641, 640, 639, 552, 641, 552, 642, 641,
+ 640, 641, 631, 641, 643, 631, 641, 642, 643, 642, 632, 643,
+ 630, 644, 645, 644, 646, 645, 644, 631, 646, 631, 647, 646,
+ 645, 646, 553, 646, 648, 553, 646, 647, 648, 647, 633, 648,
+ 631, 649, 650, 649, 651, 650, 649, 632, 651, 632, 652, 651,
+ 650, 651, 633, 651, 653, 633, 651, 652, 653, 652, 548, 653,
+ 654, 668, 669, 668, 670, 669, 668, 663, 670, 663, 671, 670,
+ 669, 670, 664, 670, 672, 664, 670, 671, 672, 671, 665, 672,
+ 663, 673, 674, 673, 675, 674, 673, 658, 675, 658, 676, 675,
+ 674, 675, 665, 675, 677, 665, 675, 676, 677, 676, 666, 677,
+ 664, 678, 679, 678, 680, 679, 678, 665, 680, 665, 681, 680,
+ 679, 680, 659, 680, 682, 659, 680, 681, 682, 681, 667, 682,
+ 665, 683, 684, 683, 685, 684, 683, 666, 685, 666, 686, 685,
+ 684, 685, 667, 685, 687, 667, 685, 686, 687, 686, 660, 687,
+ 658, 693, 694, 693, 695, 694, 693, 688, 695, 688, 696, 695,
+ 694, 695, 689, 695, 697, 689, 695, 696, 697, 696, 690, 697,
+ 688, 698, 699, 698, 700, 699, 698, 655, 700, 655, 701, 700,
+ 699, 700, 690, 700, 702, 690, 700, 701, 702, 701, 691, 702,
+ 689, 703, 704, 703, 705, 704, 703, 690, 705, 690, 706, 705,
+ 704, 705, 660, 705, 707, 660, 705, 706, 707, 706, 692, 707,
+ 690, 708, 709, 708, 710, 709, 708, 691, 710, 691, 711, 710,
+ 709, 710, 692, 710, 712, 692, 710, 711, 712, 711, 661, 712,
+ 659, 718, 719, 718, 720, 719, 718, 713, 720, 713, 721, 720,
+ 719, 720, 714, 720, 722, 714, 720, 721, 722, 721, 715, 722,
+ 713, 723, 724, 723, 725, 724, 723, 660, 725, 660, 726, 725,
+ 724, 725, 715, 725, 727, 715, 725, 726, 727, 726, 716, 727,
+ 714, 728, 729, 728, 730, 729, 728, 715, 730, 715, 731, 730,
+ 729, 730, 656, 730, 732, 656, 730, 731, 732, 731, 717, 732,
+ 715, 733, 734, 733, 735, 734, 733, 716, 735, 716, 736, 735,
+ 734, 735, 717, 735, 737, 717, 735, 736, 737, 736, 662, 737,
+ 660, 743, 744, 743, 745, 744, 743, 738, 745, 738, 746, 745,
+ 744, 745, 739, 745, 747, 739, 745, 746, 747, 746, 740, 747,
+ 738, 748, 749, 748, 750, 749, 748, 661, 750, 661, 751, 750,
+ 749, 750, 740, 750, 752, 740, 750, 751, 752, 751, 741, 752,
+ 739, 753, 754, 753, 755, 754, 753, 740, 755, 740, 756, 755,
+ 754, 755, 662, 755, 757, 662, 755, 756, 757, 756, 742, 757,
+ 740, 758, 759, 758, 760, 759, 758, 741, 760, 741, 761, 760,
+ 759, 760, 742, 760, 762, 742, 760, 761, 762, 761, 657, 762,
+ 763, 777, 778, 777, 779, 778, 777, 772, 779, 772, 780, 779,
+ 778, 779, 773, 779, 781, 773, 779, 780, 781, 780, 774, 781,
+ 772, 782, 783, 782, 784, 783, 782, 767, 784, 767, 785, 784,
+ 783, 784, 774, 784, 786, 774, 784, 785, 786, 785, 775, 786,
+ 773, 787, 788, 787, 789, 788, 787, 774, 789, 774, 790, 789,
+ 788, 789, 768, 789, 791, 768, 789, 790, 791, 790, 776, 791,
+ 774, 792, 793, 792, 794, 793, 792, 775, 794, 775, 795, 794,
+ 793, 794, 776, 794, 796, 776, 794, 795, 796, 795, 769, 796,
+ 767, 802, 803, 802, 804, 803, 802, 797, 804, 797, 805, 804,
+ 803, 804, 798, 804, 806, 798, 804, 805, 806, 805, 799, 806,
+ 797, 807, 808, 807, 809, 808, 807, 764, 809, 764, 810, 809,
+ 808, 809, 799, 809, 811, 799, 809, 810, 811, 810, 800, 811,
+ 798, 812, 813, 812, 814, 813, 812, 799, 814, 799, 815, 814,
+ 813, 814, 769, 814, 816, 769, 814, 815, 816, 815, 801, 816,
+ 799, 817, 818, 817, 819, 818, 817, 800, 819, 800, 820, 819,
+ 818, 819, 801, 819, 821, 801, 819, 820, 821, 820, 770, 821,
+ 768, 827, 828, 827, 829, 828, 827, 822, 829, 822, 830, 829,
+ 828, 829, 823, 829, 831, 823, 829, 830, 831, 830, 824, 831,
+ 822, 832, 833, 832, 834, 833, 832, 769, 834, 769, 835, 834,
+ 833, 834, 824, 834, 836, 824, 834, 835, 836, 835, 825, 836,
+ 823, 837, 838, 837, 839, 838, 837, 824, 839, 824, 840, 839,
+ 838, 839, 765, 839, 841, 765, 839, 840, 841, 840, 826, 841,
+ 824, 842, 843, 842, 844, 843, 842, 825, 844, 825, 845, 844,
+ 843, 844, 826, 844, 846, 826, 844, 845, 846, 845, 771, 846,
+ 769, 852, 853, 852, 854, 853, 852, 847, 854, 847, 855, 854,
+ 853, 854, 848, 854, 856, 848, 854, 855, 856, 855, 849, 856,
+ 847, 857, 858, 857, 859, 858, 857, 770, 859, 770, 860, 859,
+ 858, 859, 849, 859, 861, 849, 859, 860, 861, 860, 850, 861,
+ 848, 862, 863, 862, 864, 863, 862, 849, 864, 849, 865, 864,
+ 863, 864, 771, 864, 866, 771, 864, 865, 866, 865, 851, 866,
+ 849, 867, 868, 867, 869, 868, 867, 850, 869, 850, 870, 869,
+ 868, 869, 851, 869, 871, 851, 869, 870, 871, 870, 766, 871,
+ 872, 886, 887, 886, 888, 887, 886, 881, 888, 881, 889, 888,
+ 887, 888, 882, 888, 890, 882, 888, 889, 890, 889, 883, 890,
+ 881, 891, 892, 891, 893, 892, 891, 876, 893, 876, 894, 893,
+ 892, 893, 883, 893, 895, 883, 893, 894, 895, 894, 884, 895,
+ 882, 896, 897, 896, 898, 897, 896, 883, 898, 883, 899, 898,
+ 897, 898, 877, 898, 900, 877, 898, 899, 900, 899, 885, 900,
+ 883, 901, 902, 901, 903, 902, 901, 884, 903, 884, 904, 903,
+ 902, 903, 885, 903, 905, 885, 903, 904, 905, 904, 878, 905,
+ 876, 911, 912, 911, 913, 912, 911, 906, 913, 906, 914, 913,
+ 912, 913, 907, 913, 915, 907, 913, 914, 915, 914, 908, 915,
+ 906, 916, 917, 916, 918, 917, 916, 873, 918, 873, 919, 918,
+ 917, 918, 908, 918, 920, 908, 918, 919, 920, 919, 909, 920,
+ 907, 921, 922, 921, 923, 922, 921, 908, 923, 908, 924, 923,
+ 922, 923, 878, 923, 925, 878, 923, 924, 925, 924, 910, 925,
+ 908, 926, 927, 926, 928, 927, 926, 909, 928, 909, 929, 928,
+ 927, 928, 910, 928, 930, 910, 928, 929, 930, 929, 879, 930,
+ 877, 936, 937, 936, 938, 937, 936, 931, 938, 931, 939, 938,
+ 937, 938, 932, 938, 940, 932, 938, 939, 940, 939, 933, 940,
+ 931, 941, 942, 941, 943, 942, 941, 878, 943, 878, 944, 943,
+ 942, 943, 933, 943, 945, 933, 943, 944, 945, 944, 934, 945,
+ 932, 946, 947, 946, 948, 947, 946, 933, 948, 933, 949, 948,
+ 947, 948, 874, 948, 950, 874, 948, 949, 950, 949, 935, 950,
+ 933, 951, 952, 951, 953, 952, 951, 934, 953, 934, 954, 953,
+ 952, 953, 935, 953, 955, 935, 953, 954, 955, 954, 880, 955,
+ 878, 961, 962, 961, 963, 962, 961, 956, 963, 956, 964, 963,
+ 962, 963, 957, 963, 965, 957, 963, 964, 965, 964, 958, 965,
+ 956, 966, 967, 966, 968, 967, 966, 879, 968, 879, 969, 968,
+ 967, 968, 958, 968, 970, 958, 968, 969, 970, 969, 959, 970,
+ 957, 971, 972, 971, 973, 972, 971, 958, 973, 958, 974, 973,
+ 972, 973, 880, 973, 975, 880, 973, 974, 975, 974, 960, 975,
+ 958, 976, 977, 976, 978, 977, 976, 959, 978, 959, 979, 978,
+ 977, 978, 960, 978, 980, 960, 978, 979, 980, 979, 875, 980,
+ 981, 995, 996, 995, 997, 996, 995, 990, 997, 990, 998, 997,
+ 996, 997, 991, 997, 999, 991, 997, 998, 999, 998, 992, 999,
+ 990, 1000, 1001, 1000, 1002, 1001, 1000, 985, 1002, 985, 1003, 1002,
+ 1001, 1002, 992, 1002, 1004, 992, 1002, 1003, 1004, 1003, 993, 1004,
+ 991, 1005, 1006, 1005, 1007, 1006, 1005, 992, 1007, 992, 1008, 1007,
+ 1006, 1007, 986, 1007, 1009, 986, 1007, 1008, 1009, 1008, 994, 1009,
+ 992, 1010, 1011, 1010, 1012, 1011, 1010, 993, 1012, 993, 1013, 1012,
+ 1011, 1012, 994, 1012, 1014, 994, 1012, 1013, 1014, 1013, 987, 1014,
+ 985, 1020, 1021, 1020, 1022, 1021, 1020, 1015, 1022, 1015, 1023, 1022,
+ 1021, 1022, 1016, 1022, 1024, 1016, 1022, 1023, 1024, 1023, 1017, 1024,
+ 1015, 1025, 1026, 1025, 1027, 1026, 1025, 982, 1027, 982, 1028, 1027,
+ 1026, 1027, 1017, 1027, 1029, 1017, 1027, 1028, 1029, 1028, 1018, 1029,
+ 1016, 1030, 1031, 1030, 1032, 1031, 1030, 1017, 1032, 1017, 1033, 1032,
+ 1031, 1032, 987, 1032, 1034, 987, 1032, 1033, 1034, 1033, 1019, 1034,
+ 1017, 1035, 1036, 1035, 1037, 1036, 1035, 1018, 1037, 1018, 1038, 1037,
+ 1036, 1037, 1019, 1037, 1039, 1019, 1037, 1038, 1039, 1038, 988, 1039,
+ 986, 1045, 1046, 1045, 1047, 1046, 1045, 1040, 1047, 1040, 1048, 1047,
+ 1046, 1047, 1041, 1047, 1049, 1041, 1047, 1048, 1049, 1048, 1042, 1049,
+ 1040, 1050, 1051, 1050, 1052, 1051, 1050, 987, 1052, 987, 1053, 1052,
+ 1051, 1052, 1042, 1052, 1054, 1042, 1052, 1053, 1054, 1053, 1043, 1054,
+ 1041, 1055, 1056, 1055, 1057, 1056, 1055, 1042, 1057, 1042, 1058, 1057,
+ 1056, 1057, 983, 1057, 1059, 983, 1057, 1058, 1059, 1058, 1044, 1059,
+ 1042, 1060, 1061, 1060, 1062, 1061, 1060, 1043, 1062, 1043, 1063, 1062,
+ 1061, 1062, 1044, 1062, 1064, 1044, 1062, 1063, 1064, 1063, 989, 1064,
+ 987, 1070, 1071, 1070, 1072, 1071, 1070, 1065, 1072, 1065, 1073, 1072,
+ 1071, 1072, 1066, 1072, 1074, 1066, 1072, 1073, 1074, 1073, 1067, 1074,
+ 1065, 1075, 1076, 1075, 1077, 1076, 1075, 988, 1077, 988, 1078, 1077,
+ 1076, 1077, 1067, 1077, 1079, 1067, 1077, 1078, 1079, 1078, 1068, 1079,
+ 1066, 1080, 1081, 1080, 1082, 1081, 1080, 1067, 1082, 1067, 1083, 1082,
+ 1081, 1082, 989, 1082, 1084, 989, 1082, 1083, 1084, 1083, 1069, 1084,
+ 1067, 1085, 1086, 1085, 1087, 1086, 1085, 1068, 1087, 1068, 1088, 1087,
+ 1086, 1087, 1069, 1087, 1089, 1069, 1087, 1088, 1089, 1088, 984, 1089,
+ 1090, 1104, 1105, 1104, 1106, 1105, 1104, 1099, 1106, 1099, 1107, 1106,
+ 1105, 1106, 1100, 1106, 1108, 1100, 1106, 1107, 1108, 1107, 1101, 1108,
+ 1099, 1109, 1110, 1109, 1111, 1110, 1109, 1094, 1111, 1094, 1112, 1111,
+ 1110, 1111, 1101, 1111, 1113, 1101, 1111, 1112, 1113, 1112, 1102, 1113,
+ 1100, 1114, 1115, 1114, 1116, 1115, 1114, 1101, 1116, 1101, 1117, 1116,
+ 1115, 1116, 1095, 1116, 1118, 1095, 1116, 1117, 1118, 1117, 1103, 1118,
+ 1101, 1119, 1120, 1119, 1121, 1120, 1119, 1102, 1121, 1102, 1122, 1121,
+ 1120, 1121, 1103, 1121, 1123, 1103, 1121, 1122, 1123, 1122, 1096, 1123,
+ 1094, 1129, 1130, 1129, 1131, 1130, 1129, 1124, 1131, 1124, 1132, 1131,
+ 1130, 1131, 1125, 1131, 1133, 1125, 1131, 1132, 1133, 1132, 1126, 1133,
+ 1124, 1134, 1135, 1134, 1136, 1135, 1134, 1091, 1136, 1091, 1137, 1136,
+ 1135, 1136, 1126, 1136, 1138, 1126, 1136, 1137, 1138, 1137, 1127, 1138,
+ 1125, 1139, 1140, 1139, 1141, 1140, 1139, 1126, 1141, 1126, 1142, 1141,
+ 1140, 1141, 1096, 1141, 1143, 1096, 1141, 1142, 1143, 1142, 1128, 1143,
+ 1126, 1144, 1145, 1144, 1146, 1145, 1144, 1127, 1146, 1127, 1147, 1146,
+ 1145, 1146, 1128, 1146, 1148, 1128, 1146, 1147, 1148, 1147, 1097, 1148,
+ 1095, 1154, 1155, 1154, 1156, 1155, 1154, 1149, 1156, 1149, 1157, 1156,
+ 1155, 1156, 1150, 1156, 1158, 1150, 1156, 1157, 1158, 1157, 1151, 1158,
+ 1149, 1159, 1160, 1159, 1161, 1160, 1159, 1096, 1161, 1096, 1162, 1161,
+ 1160, 1161, 1151, 1161, 1163, 1151, 1161, 1162, 1163, 1162, 1152, 1163,
+ 1150, 1164, 1165, 1164, 1166, 1165, 1164, 1151, 1166, 1151, 1167, 1166,
+ 1165, 1166, 1092, 1166, 1168, 1092, 1166, 1167, 1168, 1167, 1153, 1168,
+ 1151, 1169, 1170, 1169, 1171, 1170, 1169, 1152, 1171, 1152, 1172, 1171,
+ 1170, 1171, 1153, 1171, 1173, 1153, 1171, 1172, 1173, 1172, 1098, 1173,
+ 1096, 1179, 1180, 1179, 1181, 1180, 1179, 1174, 1181, 1174, 1182, 1181,
+ 1180, 1181, 1175, 1181, 1183, 1175, 1181, 1182, 1183, 1182, 1176, 1183,
+ 1174, 1184, 1185, 1184, 1186, 1185, 1184, 1097, 1186, 1097, 1187, 1186,
+ 1185, 1186, 1176, 1186, 1188, 1176, 1186, 1187, 1188, 1187, 1177, 1188,
+ 1175, 1189, 1190, 1189, 1191, 1190, 1189, 1176, 1191, 1176, 1192, 1191,
+ 1190, 1191, 1098, 1191, 1193, 1098, 1191, 1192, 1193, 1192, 1178, 1193,
+ 1176, 1194, 1195, 1194, 1196, 1195, 1194, 1177, 1196, 1177, 1197, 1196,
+ 1195, 1196, 1178, 1196, 1198, 1178, 1196, 1197, 1198, 1197, 1093, 1198,
+ 1199, 1213, 1214, 1213, 1215, 1214, 1213, 1208, 1215, 1208, 1216, 1215,
+ 1214, 1215, 1209, 1215, 1217, 1209, 1215, 1216, 1217, 1216, 1210, 1217,
+ 1208, 1218, 1219, 1218, 1220, 1219, 1218, 1203, 1220, 1203, 1221, 1220,
+ 1219, 1220, 1210, 1220, 1222, 1210, 1220, 1221, 1222, 1221, 1211, 1222,
+ 1209, 1223, 1224, 1223, 1225, 1224, 1223, 1210, 1225, 1210, 1226, 1225,
+ 1224, 1225, 1204, 1225, 1227, 1204, 1225, 1226, 1227, 1226, 1212, 1227,
+ 1210, 1228, 1229, 1228, 1230, 1229, 1228, 1211, 1230, 1211, 1231, 1230,
+ 1229, 1230, 1212, 1230, 1232, 1212, 1230, 1231, 1232, 1231, 1205, 1232,
+ 1203, 1238, 1239, 1238, 1240, 1239, 1238, 1233, 1240, 1233, 1241, 1240,
+ 1239, 1240, 1234, 1240, 1242, 1234, 1240, 1241, 1242, 1241, 1235, 1242,
+ 1233, 1243, 1244, 1243, 1245, 1244, 1243, 1200, 1245, 1200, 1246, 1245,
+ 1244, 1245, 1235, 1245, 1247, 1235, 1245, 1246, 1247, 1246, 1236, 1247,
+ 1234, 1248, 1249, 1248, 1250, 1249, 1248, 1235, 1250, 1235, 1251, 1250,
+ 1249, 1250, 1205, 1250, 1252, 1205, 1250, 1251, 1252, 1251, 1237, 1252,
+ 1235, 1253, 1254, 1253, 1255, 1254, 1253, 1236, 1255, 1236, 1256, 1255,
+ 1254, 1255, 1237, 1255, 1257, 1237, 1255, 1256, 1257, 1256, 1206, 1257,
+ 1204, 1263, 1264, 1263, 1265, 1264, 1263, 1258, 1265, 1258, 1266, 1265,
+ 1264, 1265, 1259, 1265, 1267, 1259, 1265, 1266, 1267, 1266, 1260, 1267,
+ 1258, 1268, 1269, 1268, 1270, 1269, 1268, 1205, 1270, 1205, 1271, 1270,
+ 1269, 1270, 1260, 1270, 1272, 1260, 1270, 1271, 1272, 1271, 1261, 1272,
+ 1259, 1273, 1274, 1273, 1275, 1274, 1273, 1260, 1275, 1260, 1276, 1275,
+ 1274, 1275, 1201, 1275, 1277, 1201, 1275, 1276, 1277, 1276, 1262, 1277,
+ 1260, 1278, 1279, 1278, 1280, 1279, 1278, 1261, 1280, 1261, 1281, 1280,
+ 1279, 1280, 1262, 1280, 1282, 1262, 1280, 1281, 1282, 1281, 1207, 1282,
+ 1205, 1288, 1289, 1288, 1290, 1289, 1288, 1283, 1290, 1283, 1291, 1290,
+ 1289, 1290, 1284, 1290, 1292, 1284, 1290, 1291, 1292, 1291, 1285, 1292,
+ 1283, 1293, 1294, 1293, 1295, 1294, 1293, 1206, 1295, 1206, 1296, 1295,
+ 1294, 1295, 1285, 1295, 1297, 1285, 1295, 1296, 1297, 1296, 1286, 1297,
+ 1284, 1298, 1299, 1298, 1300, 1299, 1298, 1285, 1300, 1285, 1301, 1300,
+ 1299, 1300, 1207, 1300, 1302, 1207, 1300, 1301, 1302, 1301, 1287, 1302,
+ 1285, 1303, 1304, 1303, 1305, 1304, 1303, 1286, 1305, 1286, 1306, 1305,
+ 1304, 1305, 1287, 1305, 1307, 1287, 1305, 1306, 1307, 1306, 1202, 1307,
+ 1308, 1322, 1323, 1322, 1324, 1323, 1322, 1317, 1324, 1317, 1325, 1324,
+ 1323, 1324, 1318, 1324, 1326, 1318, 1324, 1325, 1326, 1325, 1319, 1326,
+ 1317, 1327, 1328, 1327, 1329, 1328, 1327, 1312, 1329, 1312, 1330, 1329,
+ 1328, 1329, 1319, 1329, 1331, 1319, 1329, 1330, 1331, 1330, 1320, 1331,
+ 1318, 1332, 1333, 1332, 1334, 1333, 1332, 1319, 1334, 1319, 1335, 1334,
+ 1333, 1334, 1313, 1334, 1336, 1313, 1334, 1335, 1336, 1335, 1321, 1336,
+ 1319, 1337, 1338, 1337, 1339, 1338, 1337, 1320, 1339, 1320, 1340, 1339,
+ 1338, 1339, 1321, 1339, 1341, 1321, 1339, 1340, 1341, 1340, 1314, 1341,
+ 1312, 1347, 1348, 1347, 1349, 1348, 1347, 1342, 1349, 1342, 1350, 1349,
+ 1348, 1349, 1343, 1349, 1351, 1343, 1349, 1350, 1351, 1350, 1344, 1351,
+ 1342, 1352, 1353, 1352, 1354, 1353, 1352, 1309, 1354, 1309, 1355, 1354,
+ 1353, 1354, 1344, 1354, 1356, 1344, 1354, 1355, 1356, 1355, 1345, 1356,
+ 1343, 1357, 1358, 1357, 1359, 1358, 1357, 1344, 1359, 1344, 1360, 1359,
+ 1358, 1359, 1314, 1359, 1361, 1314, 1359, 1360, 1361, 1360, 1346, 1361,
+ 1344, 1362, 1363, 1362, 1364, 1363, 1362, 1345, 1364, 1345, 1365, 1364,
+ 1363, 1364, 1346, 1364, 1366, 1346, 1364, 1365, 1366, 1365, 1315, 1366,
+ 1313, 1372, 1373, 1372, 1374, 1373, 1372, 1367, 1374, 1367, 1375, 1374,
+ 1373, 1374, 1368, 1374, 1376, 1368, 1374, 1375, 1376, 1375, 1369, 1376,
+ 1367, 1377, 1378, 1377, 1379, 1378, 1377, 1314, 1379, 1314, 1380, 1379,
+ 1378, 1379, 1369, 1379, 1381, 1369, 1379, 1380, 1381, 1380, 1370, 1381,
+ 1368, 1382, 1383, 1382, 1384, 1383, 1382, 1369, 1384, 1369, 1385, 1384,
+ 1383, 1384, 1310, 1384, 1386, 1310, 1384, 1385, 1386, 1385, 1371, 1386,
+ 1369, 1387, 1388, 1387, 1389, 1388, 1387, 1370, 1389, 1370, 1390, 1389,
+ 1388, 1389, 1371, 1389, 1391, 1371, 1389, 1390, 1391, 1390, 1316, 1391,
+ 1314, 1397, 1398, 1397, 1399, 1398, 1397, 1392, 1399, 1392, 1400, 1399,
+ 1398, 1399, 1393, 1399, 1401, 1393, 1399, 1400, 1401, 1400, 1394, 1401,
+ 1392, 1402, 1403, 1402, 1404, 1403, 1402, 1315, 1404, 1315, 1405, 1404,
+ 1403, 1404, 1394, 1404, 1406, 1394, 1404, 1405, 1406, 1405, 1395, 1406,
+ 1393, 1407, 1408, 1407, 1409, 1408, 1407, 1394, 1409, 1394, 1410, 1409,
+ 1408, 1409, 1316, 1409, 1411, 1316, 1409, 1410, 1411, 1410, 1396, 1411,
+ 1394, 1412, 1413, 1412, 1414, 1413, 1412, 1395, 1414, 1395, 1415, 1414,
+ 1413, 1414, 1396, 1414, 1416, 1396, 1414, 1415, 1416, 1415, 1311, 1416,
+ 1417, 1431, 1432, 1431, 1433, 1432, 1431, 1426, 1433, 1426, 1434, 1433,
+ 1432, 1433, 1427, 1433, 1435, 1427, 1433, 1434, 1435, 1434, 1428, 1435,
+ 1426, 1436, 1437, 1436, 1438, 1437, 1436, 1421, 1438, 1421, 1439, 1438,
+ 1437, 1438, 1428, 1438, 1440, 1428, 1438, 1439, 1440, 1439, 1429, 1440,
+ 1427, 1441, 1442, 1441, 1443, 1442, 1441, 1428, 1443, 1428, 1444, 1443,
+ 1442, 1443, 1422, 1443, 1445, 1422, 1443, 1444, 1445, 1444, 1430, 1445,
+ 1428, 1446, 1447, 1446, 1448, 1447, 1446, 1429, 1448, 1429, 1449, 1448,
+ 1447, 1448, 1430, 1448, 1450, 1430, 1448, 1449, 1450, 1449, 1423, 1450,
+ 1421, 1456, 1457, 1456, 1458, 1457, 1456, 1451, 1458, 1451, 1459, 1458,
+ 1457, 1458, 1452, 1458, 1460, 1452, 1458, 1459, 1460, 1459, 1453, 1460,
+ 1451, 1461, 1462, 1461, 1463, 1462, 1461, 1418, 1463, 1418, 1464, 1463,
+ 1462, 1463, 1453, 1463, 1465, 1453, 1463, 1464, 1465, 1464, 1454, 1465,
+ 1452, 1466, 1467, 1466, 1468, 1467, 1466, 1453, 1468, 1453, 1469, 1468,
+ 1467, 1468, 1423, 1468, 1470, 1423, 1468, 1469, 1470, 1469, 1455, 1470,
+ 1453, 1471, 1472, 1471, 1473, 1472, 1471, 1454, 1473, 1454, 1474, 1473,
+ 1472, 1473, 1455, 1473, 1475, 1455, 1473, 1474, 1475, 1474, 1424, 1475,
+ 1422, 1481, 1482, 1481, 1483, 1482, 1481, 1476, 1483, 1476, 1484, 1483,
+ 1482, 1483, 1477, 1483, 1485, 1477, 1483, 1484, 1485, 1484, 1478, 1485,
+ 1476, 1486, 1487, 1486, 1488, 1487, 1486, 1423, 1488, 1423, 1489, 1488,
+ 1487, 1488, 1478, 1488, 1490, 1478, 1488, 1489, 1490, 1489, 1479, 1490,
+ 1477, 1491, 1492, 1491, 1493, 1492, 1491, 1478, 1493, 1478, 1494, 1493,
+ 1492, 1493, 1419, 1493, 1495, 1419, 1493, 1494, 1495, 1494, 1480, 1495,
+ 1478, 1496, 1497, 1496, 1498, 1497, 1496, 1479, 1498, 1479, 1499, 1498,
+ 1497, 1498, 1480, 1498, 1500, 1480, 1498, 1499, 1500, 1499, 1425, 1500,
+ 1423, 1506, 1507, 1506, 1508, 1507, 1506, 1501, 1508, 1501, 1509, 1508,
+ 1507, 1508, 1502, 1508, 1510, 1502, 1508, 1509, 1510, 1509, 1503, 1510,
+ 1501, 1511, 1512, 1511, 1513, 1512, 1511, 1424, 1513, 1424, 1514, 1513,
+ 1512, 1513, 1503, 1513, 1515, 1503, 1513, 1514, 1515, 1514, 1504, 1515,
+ 1502, 1516, 1517, 1516, 1518, 1517, 1516, 1503, 1518, 1503, 1519, 1518,
+ 1517, 1518, 1425, 1518, 1520, 1425, 1518, 1519, 1520, 1519, 1505, 1520,
+ 1503, 1521, 1522, 1521, 1523, 1522, 1521, 1504, 1523, 1504, 1524, 1523,
+ 1522, 1523, 1505, 1523, 1525, 1505, 1523, 1524, 1525, 1524, 1420, 1525,
+ 1526, 1540, 1541, 1540, 1542, 1541, 1540, 1535, 1542, 1535, 1543, 1542,
+ 1541, 1542, 1536, 1542, 1544, 1536, 1542, 1543, 1544, 1543, 1537, 1544,
+ 1535, 1545, 1546, 1545, 1547, 1546, 1545, 1530, 1547, 1530, 1548, 1547,
+ 1546, 1547, 1537, 1547, 1549, 1537, 1547, 1548, 1549, 1548, 1538, 1549,
+ 1536, 1550, 1551, 1550, 1552, 1551, 1550, 1537, 1552, 1537, 1553, 1552,
+ 1551, 1552, 1531, 1552, 1554, 1531, 1552, 1553, 1554, 1553, 1539, 1554,
+ 1537, 1555, 1556, 1555, 1557, 1556, 1555, 1538, 1557, 1538, 1558, 1557,
+ 1556, 1557, 1539, 1557, 1559, 1539, 1557, 1558, 1559, 1558, 1532, 1559,
+ 1530, 1565, 1566, 1565, 1567, 1566, 1565, 1560, 1567, 1560, 1568, 1567,
+ 1566, 1567, 1561, 1567, 1569, 1561, 1567, 1568, 1569, 1568, 1562, 1569,
+ 1560, 1570, 1571, 1570, 1572, 1571, 1570, 1527, 1572, 1527, 1573, 1572,
+ 1571, 1572, 1562, 1572, 1574, 1562, 1572, 1573, 1574, 1573, 1563, 1574,
+ 1561, 1575, 1576, 1575, 1577, 1576, 1575, 1562, 1577, 1562, 1578, 1577,
+ 1576, 1577, 1532, 1577, 1579, 1532, 1577, 1578, 1579, 1578, 1564, 1579,
+ 1562, 1580, 1581, 1580, 1582, 1581, 1580, 1563, 1582, 1563, 1583, 1582,
+ 1581, 1582, 1564, 1582, 1584, 1564, 1582, 1583, 1584, 1583, 1533, 1584,
+ 1531, 1590, 1591, 1590, 1592, 1591, 1590, 1585, 1592, 1585, 1593, 1592,
+ 1591, 1592, 1586, 1592, 1594, 1586, 1592, 1593, 1594, 1593, 1587, 1594,
+ 1585, 1595, 1596, 1595, 1597, 1596, 1595, 1532, 1597, 1532, 1598, 1597,
+ 1596, 1597, 1587, 1597, 1599, 1587, 1597, 1598, 1599, 1598, 1588, 1599,
+ 1586, 1600, 1601, 1600, 1602, 1601, 1600, 1587, 1602, 1587, 1603, 1602,
+ 1601, 1602, 1528, 1602, 1604, 1528, 1602, 1603, 1604, 1603, 1589, 1604,
+ 1587, 1605, 1606, 1605, 1607, 1606, 1605, 1588, 1607, 1588, 1608, 1607,
+ 1606, 1607, 1589, 1607, 1609, 1589, 1607, 1608, 1609, 1608, 1534, 1609,
+ 1532, 1615, 1616, 1615, 1617, 1616, 1615, 1610, 1617, 1610, 1618, 1617,
+ 1616, 1617, 1611, 1617, 1619, 1611, 1617, 1618, 1619, 1618, 1612, 1619,
+ 1610, 1620, 1621, 1620, 1622, 1621, 1620, 1533, 1622, 1533, 1623, 1622,
+ 1621, 1622, 1612, 1622, 1624, 1612, 1622, 1623, 1624, 1623, 1613, 1624,
+ 1611, 1625, 1626, 1625, 1627, 1626, 1625, 1612, 1627, 1612, 1628, 1627,
+ 1626, 1627, 1534, 1627, 1629, 1534, 1627, 1628, 1629, 1628, 1614, 1629,
+ 1612, 1630, 1631, 1630, 1632, 1631, 1630, 1613, 1632, 1613, 1633, 1632,
+ 1631, 1632, 1614, 1632, 1634, 1614, 1632, 1633, 1634, 1633, 1529, 1634,
+ 1635, 1649, 1650, 1649, 1651, 1650, 1649, 1644, 1651, 1644, 1652, 1651,
+ 1650, 1651, 1645, 1651, 1653, 1645, 1651, 1652, 1653, 1652, 1646, 1653,
+ 1644, 1654, 1655, 1654, 1656, 1655, 1654, 1639, 1656, 1639, 1657, 1656,
+ 1655, 1656, 1646, 1656, 1658, 1646, 1656, 1657, 1658, 1657, 1647, 1658,
+ 1645, 1659, 1660, 1659, 1661, 1660, 1659, 1646, 1661, 1646, 1662, 1661,
+ 1660, 1661, 1640, 1661, 1663, 1640, 1661, 1662, 1663, 1662, 1648, 1663,
+ 1646, 1664, 1665, 1664, 1666, 1665, 1664, 1647, 1666, 1647, 1667, 1666,
+ 1665, 1666, 1648, 1666, 1668, 1648, 1666, 1667, 1668, 1667, 1641, 1668,
+ 1639, 1674, 1675, 1674, 1676, 1675, 1674, 1669, 1676, 1669, 1677, 1676,
+ 1675, 1676, 1670, 1676, 1678, 1670, 1676, 1677, 1678, 1677, 1671, 1678,
+ 1669, 1679, 1680, 1679, 1681, 1680, 1679, 1636, 1681, 1636, 1682, 1681,
+ 1680, 1681, 1671, 1681, 1683, 1671, 1681, 1682, 1683, 1682, 1672, 1683,
+ 1670, 1684, 1685, 1684, 1686, 1685, 1684, 1671, 1686, 1671, 1687, 1686,
+ 1685, 1686, 1641, 1686, 1688, 1641, 1686, 1687, 1688, 1687, 1673, 1688,
+ 1671, 1689, 1690, 1689, 1691, 1690, 1689, 1672, 1691, 1672, 1692, 1691,
+ 1690, 1691, 1673, 1691, 1693, 1673, 1691, 1692, 1693, 1692, 1642, 1693,
+ 1640, 1699, 1700, 1699, 1701, 1700, 1699, 1694, 1701, 1694, 1702, 1701,
+ 1700, 1701, 1695, 1701, 1703, 1695, 1701, 1702, 1703, 1702, 1696, 1703,
+ 1694, 1704, 1705, 1704, 1706, 1705, 1704, 1641, 1706, 1641, 1707, 1706,
+ 1705, 1706, 1696, 1706, 1708, 1696, 1706, 1707, 1708, 1707, 1697, 1708,
+ 1695, 1709, 1710, 1709, 1711, 1710, 1709, 1696, 1711, 1696, 1712, 1711,
+ 1710, 1711, 1637, 1711, 1713, 1637, 1711, 1712, 1713, 1712, 1698, 1713,
+ 1696, 1714, 1715, 1714, 1716, 1715, 1714, 1697, 1716, 1697, 1717, 1716,
+ 1715, 1716, 1698, 1716, 1718, 1698, 1716, 1717, 1718, 1717, 1643, 1718,
+ 1641, 1724, 1725, 1724, 1726, 1725, 1724, 1719, 1726, 1719, 1727, 1726,
+ 1725, 1726, 1720, 1726, 1728, 1720, 1726, 1727, 1728, 1727, 1721, 1728,
+ 1719, 1729, 1730, 1729, 1731, 1730, 1729, 1642, 1731, 1642, 1732, 1731,
+ 1730, 1731, 1721, 1731, 1733, 1721, 1731, 1732, 1733, 1732, 1722, 1733,
+ 1720, 1734, 1735, 1734, 1736, 1735, 1734, 1721, 1736, 1721, 1737, 1736,
+ 1735, 1736, 1643, 1736, 1738, 1643, 1736, 1737, 1738, 1737, 1723, 1738,
+ 1721, 1739, 1740, 1739, 1741, 1740, 1739, 1722, 1741, 1722, 1742, 1741,
+ 1740, 1741, 1723, 1741, 1743, 1723, 1741, 1742, 1743, 1742, 1638, 1743,
+ 1744, 1758, 1759, 1758, 1760, 1759, 1758, 1753, 1760, 1753, 1761, 1760,
+ 1759, 1760, 1754, 1760, 1762, 1754, 1760, 1761, 1762, 1761, 1755, 1762,
+ 1753, 1763, 1764, 1763, 1765, 1764, 1763, 1748, 1765, 1748, 1766, 1765,
+ 1764, 1765, 1755, 1765, 1767, 1755, 1765, 1766, 1767, 1766, 1756, 1767,
+ 1754, 1768, 1769, 1768, 1770, 1769, 1768, 1755, 1770, 1755, 1771, 1770,
+ 1769, 1770, 1749, 1770, 1772, 1749, 1770, 1771, 1772, 1771, 1757, 1772,
+ 1755, 1773, 1774, 1773, 1775, 1774, 1773, 1756, 1775, 1756, 1776, 1775,
+ 1774, 1775, 1757, 1775, 1777, 1757, 1775, 1776, 1777, 1776, 1750, 1777,
+ 1748, 1783, 1784, 1783, 1785, 1784, 1783, 1778, 1785, 1778, 1786, 1785,
+ 1784, 1785, 1779, 1785, 1787, 1779, 1785, 1786, 1787, 1786, 1780, 1787,
+ 1778, 1788, 1789, 1788, 1790, 1789, 1788, 1745, 1790, 1745, 1791, 1790,
+ 1789, 1790, 1780, 1790, 1792, 1780, 1790, 1791, 1792, 1791, 1781, 1792,
+ 1779, 1793, 1794, 1793, 1795, 1794, 1793, 1780, 1795, 1780, 1796, 1795,
+ 1794, 1795, 1750, 1795, 1797, 1750, 1795, 1796, 1797, 1796, 1782, 1797,
+ 1780, 1798, 1799, 1798, 1800, 1799, 1798, 1781, 1800, 1781, 1801, 1800,
+ 1799, 1800, 1782, 1800, 1802, 1782, 1800, 1801, 1802, 1801, 1751, 1802,
+ 1749, 1808, 1809, 1808, 1810, 1809, 1808, 1803, 1810, 1803, 1811, 1810,
+ 1809, 1810, 1804, 1810, 1812, 1804, 1810, 1811, 1812, 1811, 1805, 1812,
+ 1803, 1813, 1814, 1813, 1815, 1814, 1813, 1750, 1815, 1750, 1816, 1815,
+ 1814, 1815, 1805, 1815, 1817, 1805, 1815, 1816, 1817, 1816, 1806, 1817,
+ 1804, 1818, 1819, 1818, 1820, 1819, 1818, 1805, 1820, 1805, 1821, 1820,
+ 1819, 1820, 1746, 1820, 1822, 1746, 1820, 1821, 1822, 1821, 1807, 1822,
+ 1805, 1823, 1824, 1823, 1825, 1824, 1823, 1806, 1825, 1806, 1826, 1825,
+ 1824, 1825, 1807, 1825, 1827, 1807, 1825, 1826, 1827, 1826, 1752, 1827,
+ 1750, 1833, 1834, 1833, 1835, 1834, 1833, 1828, 1835, 1828, 1836, 1835,
+ 1834, 1835, 1829, 1835, 1837, 1829, 1835, 1836, 1837, 1836, 1830, 1837,
+ 1828, 1838, 1839, 1838, 1840, 1839, 1838, 1751, 1840, 1751, 1841, 1840,
+ 1839, 1840, 1830, 1840, 1842, 1830, 1840, 1841, 1842, 1841, 1831, 1842,
+ 1829, 1843, 1844, 1843, 1845, 1844, 1843, 1830, 1845, 1830, 1846, 1845,
+ 1844, 1845, 1752, 1845, 1847, 1752, 1845, 1846, 1847, 1846, 1832, 1847,
+ 1830, 1848, 1849, 1848, 1850, 1849, 1848, 1831, 1850, 1831, 1851, 1850,
+ 1849, 1850, 1832, 1850, 1852, 1832, 1850, 1851, 1852, 1851, 1747, 1852,
+ 1853, 1867, 1868, 1867, 1869, 1868, 1867, 1862, 1869, 1862, 1870, 1869,
+ 1868, 1869, 1863, 1869, 1871, 1863, 1869, 1870, 1871, 1870, 1864, 1871,
+ 1862, 1872, 1873, 1872, 1874, 1873, 1872, 1857, 1874, 1857, 1875, 1874,
+ 1873, 1874, 1864, 1874, 1876, 1864, 1874, 1875, 1876, 1875, 1865, 1876,
+ 1863, 1877, 1878, 1877, 1879, 1878, 1877, 1864, 1879, 1864, 1880, 1879,
+ 1878, 1879, 1858, 1879, 1881, 1858, 1879, 1880, 1881, 1880, 1866, 1881,
+ 1864, 1882, 1883, 1882, 1884, 1883, 1882, 1865, 1884, 1865, 1885, 1884,
+ 1883, 1884, 1866, 1884, 1886, 1866, 1884, 1885, 1886, 1885, 1859, 1886,
+ 1857, 1892, 1893, 1892, 1894, 1893, 1892, 1887, 1894, 1887, 1895, 1894,
+ 1893, 1894, 1888, 1894, 1896, 1888, 1894, 1895, 1896, 1895, 1889, 1896,
+ 1887, 1897, 1898, 1897, 1899, 1898, 1897, 1854, 1899, 1854, 1900, 1899,
+ 1898, 1899, 1889, 1899, 1901, 1889, 1899, 1900, 1901, 1900, 1890, 1901,
+ 1888, 1902, 1903, 1902, 1904, 1903, 1902, 1889, 1904, 1889, 1905, 1904,
+ 1903, 1904, 1859, 1904, 1906, 1859, 1904, 1905, 1906, 1905, 1891, 1906,
+ 1889, 1907, 1908, 1907, 1909, 1908, 1907, 1890, 1909, 1890, 1910, 1909,
+ 1908, 1909, 1891, 1909, 1911, 1891, 1909, 1910, 1911, 1910, 1860, 1911,
+ 1858, 1917, 1918, 1917, 1919, 1918, 1917, 1912, 1919, 1912, 1920, 1919,
+ 1918, 1919, 1913, 1919, 1921, 1913, 1919, 1920, 1921, 1920, 1914, 1921,
+ 1912, 1922, 1923, 1922, 1924, 1923, 1922, 1859, 1924, 1859, 1925, 1924,
+ 1923, 1924, 1914, 1924, 1926, 1914, 1924, 1925, 1926, 1925, 1915, 1926,
+ 1913, 1927, 1928, 1927, 1929, 1928, 1927, 1914, 1929, 1914, 1930, 1929,
+ 1928, 1929, 1855, 1929, 1931, 1855, 1929, 1930, 1931, 1930, 1916, 1931,
+ 1914, 1932, 1933, 1932, 1934, 1933, 1932, 1915, 1934, 1915, 1935, 1934,
+ 1933, 1934, 1916, 1934, 1936, 1916, 1934, 1935, 1936, 1935, 1861, 1936,
+ 1859, 1942, 1943, 1942, 1944, 1943, 1942, 1937, 1944, 1937, 1945, 1944,
+ 1943, 1944, 1938, 1944, 1946, 1938, 1944, 1945, 1946, 1945, 1939, 1946,
+ 1937, 1947, 1948, 1947, 1949, 1948, 1947, 1860, 1949, 1860, 1950, 1949,
+ 1948, 1949, 1939, 1949, 1951, 1939, 1949, 1950, 1951, 1950, 1940, 1951,
+ 1938, 1952, 1953, 1952, 1954, 1953, 1952, 1939, 1954, 1939, 1955, 1954,
+ 1953, 1954, 1861, 1954, 1956, 1861, 1954, 1955, 1956, 1955, 1941, 1956,
+ 1939, 1957, 1958, 1957, 1959, 1958, 1957, 1940, 1959, 1940, 1960, 1959,
+ 1958, 1959, 1941, 1959, 1961, 1941, 1959, 1960, 1961, 1960, 1856, 1961,
+ 1962, 1976, 1977, 1976, 1978, 1977, 1976, 1971, 1978, 1971, 1979, 1978,
+ 1977, 1978, 1972, 1978, 1980, 1972, 1978, 1979, 1980, 1979, 1973, 1980,
+ 1971, 1981, 1982, 1981, 1983, 1982, 1981, 1966, 1983, 1966, 1984, 1983,
+ 1982, 1983, 1973, 1983, 1985, 1973, 1983, 1984, 1985, 1984, 1974, 1985,
+ 1972, 1986, 1987, 1986, 1988, 1987, 1986, 1973, 1988, 1973, 1989, 1988,
+ 1987, 1988, 1967, 1988, 1990, 1967, 1988, 1989, 1990, 1989, 1975, 1990,
+ 1973, 1991, 1992, 1991, 1993, 1992, 1991, 1974, 1993, 1974, 1994, 1993,
+ 1992, 1993, 1975, 1993, 1995, 1975, 1993, 1994, 1995, 1994, 1968, 1995,
+ 1966, 2001, 2002, 2001, 2003, 2002, 2001, 1996, 2003, 1996, 2004, 2003,
+ 2002, 2003, 1997, 2003, 2005, 1997, 2003, 2004, 2005, 2004, 1998, 2005,
+ 1996, 2006, 2007, 2006, 2008, 2007, 2006, 1963, 2008, 1963, 2009, 2008,
+ 2007, 2008, 1998, 2008, 2010, 1998, 2008, 2009, 2010, 2009, 1999, 2010,
+ 1997, 2011, 2012, 2011, 2013, 2012, 2011, 1998, 2013, 1998, 2014, 2013,
+ 2012, 2013, 1968, 2013, 2015, 1968, 2013, 2014, 2015, 2014, 2000, 2015,
+ 1998, 2016, 2017, 2016, 2018, 2017, 2016, 1999, 2018, 1999, 2019, 2018,
+ 2017, 2018, 2000, 2018, 2020, 2000, 2018, 2019, 2020, 2019, 1969, 2020,
+ 1967, 2026, 2027, 2026, 2028, 2027, 2026, 2021, 2028, 2021, 2029, 2028,
+ 2027, 2028, 2022, 2028, 2030, 2022, 2028, 2029, 2030, 2029, 2023, 2030,
+ 2021, 2031, 2032, 2031, 2033, 2032, 2031, 1968, 2033, 1968, 2034, 2033,
+ 2032, 2033, 2023, 2033, 2035, 2023, 2033, 2034, 2035, 2034, 2024, 2035,
+ 2022, 2036, 2037, 2036, 2038, 2037, 2036, 2023, 2038, 2023, 2039, 2038,
+ 2037, 2038, 1964, 2038, 2040, 1964, 2038, 2039, 2040, 2039, 2025, 2040,
+ 2023, 2041, 2042, 2041, 2043, 2042, 2041, 2024, 2043, 2024, 2044, 2043,
+ 2042, 2043, 2025, 2043, 2045, 2025, 2043, 2044, 2045, 2044, 1970, 2045,
+ 1968, 2051, 2052, 2051, 2053, 2052, 2051, 2046, 2053, 2046, 2054, 2053,
+ 2052, 2053, 2047, 2053, 2055, 2047, 2053, 2054, 2055, 2054, 2048, 2055,
+ 2046, 2056, 2057, 2056, 2058, 2057, 2056, 1969, 2058, 1969, 2059, 2058,
+ 2057, 2058, 2048, 2058, 2060, 2048, 2058, 2059, 2060, 2059, 2049, 2060,
+ 2047, 2061, 2062, 2061, 2063, 2062, 2061, 2048, 2063, 2048, 2064, 2063,
+ 2062, 2063, 1970, 2063, 2065, 1970, 2063, 2064, 2065, 2064, 2050, 2065,
+ 2048, 2066, 2067, 2066, 2068, 2067, 2066, 2049, 2068, 2049, 2069, 2068,
+ 2067, 2068, 2050, 2068, 2070, 2050, 2068, 2069, 2070, 2069, 1965, 2070,
+ 2071, 2085, 2086, 2085, 2087, 2086, 2085, 2080, 2087, 2080, 2088, 2087,
+ 2086, 2087, 2081, 2087, 2089, 2081, 2087, 2088, 2089, 2088, 2082, 2089,
+ 2080, 2090, 2091, 2090, 2092, 2091, 2090, 2075, 2092, 2075, 2093, 2092,
+ 2091, 2092, 2082, 2092, 2094, 2082, 2092, 2093, 2094, 2093, 2083, 2094,
+ 2081, 2095, 2096, 2095, 2097, 2096, 2095, 2082, 2097, 2082, 2098, 2097,
+ 2096, 2097, 2076, 2097, 2099, 2076, 2097, 2098, 2099, 2098, 2084, 2099,
+ 2082, 2100, 2101, 2100, 2102, 2101, 2100, 2083, 2102, 2083, 2103, 2102,
+ 2101, 2102, 2084, 2102, 2104, 2084, 2102, 2103, 2104, 2103, 2077, 2104,
+ 2075, 2110, 2111, 2110, 2112, 2111, 2110, 2105, 2112, 2105, 2113, 2112,
+ 2111, 2112, 2106, 2112, 2114, 2106, 2112, 2113, 2114, 2113, 2107, 2114,
+ 2105, 2115, 2116, 2115, 2117, 2116, 2115, 2072, 2117, 2072, 2118, 2117,
+ 2116, 2117, 2107, 2117, 2119, 2107, 2117, 2118, 2119, 2118, 2108, 2119,
+ 2106, 2120, 2121, 2120, 2122, 2121, 2120, 2107, 2122, 2107, 2123, 2122,
+ 2121, 2122, 2077, 2122, 2124, 2077, 2122, 2123, 2124, 2123, 2109, 2124,
+ 2107, 2125, 2126, 2125, 2127, 2126, 2125, 2108, 2127, 2108, 2128, 2127,
+ 2126, 2127, 2109, 2127, 2129, 2109, 2127, 2128, 2129, 2128, 2078, 2129,
+ 2076, 2135, 2136, 2135, 2137, 2136, 2135, 2130, 2137, 2130, 2138, 2137,
+ 2136, 2137, 2131, 2137, 2139, 2131, 2137, 2138, 2139, 2138, 2132, 2139,
+ 2130, 2140, 2141, 2140, 2142, 2141, 2140, 2077, 2142, 2077, 2143, 2142,
+ 2141, 2142, 2132, 2142, 2144, 2132, 2142, 2143, 2144, 2143, 2133, 2144,
+ 2131, 2145, 2146, 2145, 2147, 2146, 2145, 2132, 2147, 2132, 2148, 2147,
+ 2146, 2147, 2073, 2147, 2149, 2073, 2147, 2148, 2149, 2148, 2134, 2149,
+ 2132, 2150, 2151, 2150, 2152, 2151, 2150, 2133, 2152, 2133, 2153, 2152,
+ 2151, 2152, 2134, 2152, 2154, 2134, 2152, 2153, 2154, 2153, 2079, 2154,
+ 2077, 2160, 2161, 2160, 2162, 2161, 2160, 2155, 2162, 2155, 2163, 2162,
+ 2161, 2162, 2156, 2162, 2164, 2156, 2162, 2163, 2164, 2163, 2157, 2164,
+ 2155, 2165, 2166, 2165, 2167, 2166, 2165, 2078, 2167, 2078, 2168, 2167,
+ 2166, 2167, 2157, 2167, 2169, 2157, 2167, 2168, 2169, 2168, 2158, 2169,
+ 2156, 2170, 2171, 2170, 2172, 2171, 2170, 2157, 2172, 2157, 2173, 2172,
+ 2171, 2172, 2079, 2172, 2174, 2079, 2172, 2173, 2174, 2173, 2159, 2174,
+ 2157, 2175, 2176, 2175, 2177, 2176, 2175, 2158, 2177, 2158, 2178, 2177,
+ 2176, 2177, 2159, 2177, 2179, 2159, 2177, 2178, 2179, 2178, 2074, 2179,
+ 2194, 2196, 2195, 2189, 2197, 2196, 2195, 2196, 2190, 2196, 2198, 2190,
+ 2196, 2197, 2198, 2197, 2191, 2198, 2199, 2201, 2200, 2184, 2202, 2201,
+ 2200, 2201, 2191, 2201, 2203, 2191, 2201, 2202, 2203, 2202, 2192, 2203,
+ 2190, 2204, 2205, 2204, 2206, 2205, 2204, 2191, 2206, 2191, 2207, 2206,
+ 2205, 2206, 2185, 2206, 2208, 2185, 2206, 2207, 2208, 2207, 2193, 2208,
+ 2191, 2209, 2210, 2209, 2211, 2210, 2209, 2192, 2211, 2192, 2212, 2211,
+ 2210, 2211, 2193, 2211, 2213, 2193, 2211, 2212, 2213, 2212, 2186, 2213,
+ 2219, 2221, 2220, 2214, 2222, 2221, 2220, 2221, 2215, 2221, 2223, 2215,
+ 2221, 2222, 2223, 2222, 2216, 2223, 2224, 2226, 2225, 2181, 2227, 2226,
+ 2225, 2226, 2216, 2226, 2228, 2216, 2226, 2227, 2228, 2227, 2217, 2228,
+ 2215, 2229, 2230, 2229, 2231, 2230, 2229, 2216, 2231, 2216, 2232, 2231,
+ 2230, 2231, 2186, 2231, 2233, 2186, 2231, 2232, 2233, 2232, 2218, 2233,
+ 2216, 2234, 2235, 2234, 2236, 2235, 2234, 2217, 2236, 2217, 2237, 2236,
+ 2235, 2236, 2218, 2236, 2238, 2218, 2236, 2237, 2238, 2237, 2187, 2238,
+ 2185, 2244, 2245, 2244, 2246, 2245, 2244, 2239, 2246, 2239, 2247, 2246,
+ 2245, 2246, 2240, 2246, 2248, 2240, 2246, 2247, 2248, 2247, 2241, 2248,
+ 2239, 2249, 2250, 2249, 2251, 2250, 2249, 2186, 2251, 2186, 2252, 2251,
+ 2250, 2251, 2241, 2251, 2253, 2241, 2251, 2252, 2253, 2252, 2242, 2253,
+ 2240, 2254, 2255, 2254, 2256, 2255, 2254, 2241, 2256, 2241, 2257, 2256,
+ 2255, 2256, 2182, 2256, 2258, 2182, 2256, 2257, 2258, 2257, 2243, 2258,
+ 2241, 2259, 2260, 2259, 2261, 2260, 2259, 2242, 2261, 2242, 2262, 2261,
+ 2260, 2261, 2243, 2261, 2263, 2243, 2261, 2262, 2263, 2262, 2188, 2263,
+ 2186, 2269, 2270, 2269, 2271, 2270, 2269, 2264, 2271, 2264, 2272, 2271,
+ 2270, 2271, 2265, 2271, 2273, 2265, 2271, 2272, 2273, 2272, 2266, 2273,
+ 2264, 2274, 2275, 2274, 2276, 2275, 2274, 2187, 2276, 2187, 2277, 2276,
+ 2275, 2276, 2266, 2276, 2278, 2266, 2276, 2277, 2278, 2277, 2267, 2278,
+ 2265, 2279, 2280, 2279, 2281, 2280, 2279, 2266, 2281, 2266, 2282, 2281,
+ 2280, 2281, 2188, 2281, 2283, 2188, 2281, 2282, 2283, 2282, 2268, 2283,
+ 2266, 2284, 2285, 2284, 2286, 2285, 2284, 2267, 2286, 2267, 2287, 2286,
+ 2285, 2286, 2268, 2286, 2288, 2268, 2286, 2287, 2288, 2287, 2183, 2288,
+ 2303, 2305, 2304, 2298, 2306, 2305, 2304, 2305, 2299, 2305, 2307, 2299,
+ 2305, 2306, 2307, 2306, 2300, 2307, 2308, 2310, 2309, 2293, 2311, 2310,
+ 2309, 2310, 2300, 2310, 2312, 2300, 2310, 2311, 2312, 2311, 2301, 2312,
+ 2299, 2313, 2314, 2313, 2315, 2314, 2313, 2300, 2315, 2300, 2316, 2315,
+ 2314, 2315, 2294, 2315, 2317, 2294, 2315, 2316, 2317, 2316, 2302, 2317,
+ 2300, 2318, 2319, 2318, 2320, 2319, 2318, 2301, 2320, 2301, 2321, 2320,
+ 2319, 2320, 2302, 2320, 2322, 2302, 2320, 2321, 2322, 2321, 2295, 2322,
+ 2328, 2330, 2329, 2323, 2331, 2330, 2329, 2330, 2324, 2330, 2332, 2324,
+ 2330, 2331, 2332, 2331, 2325, 2332, 2333, 2335, 2334, 2290, 2336, 2335,
+ 2334, 2335, 2325, 2335, 2337, 2325, 2335, 2336, 2337, 2336, 2326, 2337,
+ 2324, 2338, 2339, 2338, 2340, 2339, 2338, 2325, 2340, 2325, 2341, 2340,
+ 2339, 2340, 2295, 2340, 2342, 2295, 2340, 2341, 2342, 2341, 2327, 2342,
+ 2325, 2343, 2344, 2343, 2345, 2344, 2343, 2326, 2345, 2326, 2346, 2345,
+ 2344, 2345, 2327, 2345, 2347, 2327, 2345, 2346, 2347, 2346, 2296, 2347,
+ 2294, 2353, 2354, 2353, 2355, 2354, 2353, 2348, 2355, 2348, 2356, 2355,
+ 2354, 2355, 2349, 2355, 2357, 2349, 2355, 2356, 2357, 2356, 2350, 2357,
+ 2348, 2358, 2359, 2358, 2360, 2359, 2358, 2295, 2360, 2295, 2361, 2360,
+ 2359, 2360, 2350, 2360, 2362, 2350, 2360, 2361, 2362, 2361, 2351, 2362,
+ 2349, 2363, 2364, 2363, 2365, 2364, 2363, 2350, 2365, 2350, 2366, 2365,
+ 2364, 2365, 2291, 2365, 2367, 2291, 2365, 2366, 2367, 2366, 2352, 2367,
+ 2350, 2368, 2369, 2368, 2370, 2369, 2368, 2351, 2370, 2351, 2371, 2370,
+ 2369, 2370, 2352, 2370, 2372, 2352, 2370, 2371, 2372, 2371, 2297, 2372,
+ 2295, 2378, 2379, 2378, 2380, 2379, 2378, 2373, 2380, 2373, 2381, 2380,
+ 2379, 2380, 2374, 2380, 2382, 2374, 2380, 2381, 2382, 2381, 2375, 2382,
+ 2373, 2383, 2384, 2383, 2385, 2384, 2383, 2296, 2385, 2296, 2386, 2385,
+ 2384, 2385, 2375, 2385, 2387, 2375, 2385, 2386, 2387, 2386, 2376, 2387,
+ 2374, 2388, 2389, 2388, 2390, 2389, 2388, 2375, 2390, 2375, 2391, 2390,
+ 2389, 2390, 2297, 2390, 2392, 2297, 2390, 2391, 2392, 2391, 2377, 2392,
+ 2375, 2393, 2394, 2393, 2395, 2394, 2393, 2376, 2395, 2376, 2396, 2395,
+ 2394, 2395, 2377, 2395, 2397, 2377, 2395, 2396, 2397, 2396, 2292, 2397,
+ 2412, 2414, 2413, 2407, 2415, 2414, 2413, 2414, 2408, 2414, 2416, 2408,
+ 2414, 2415, 2416, 2415, 2409, 2416, 2417, 2419, 2418, 2402, 2420, 2419,
+ 2418, 2419, 2409, 2419, 2421, 2409, 2419, 2420, 2421, 2420, 2410, 2421,
+ 2408, 2422, 2423, 2422, 2424, 2423, 2422, 2409, 2424, 2409, 2425, 2424,
+ 2423, 2424, 2403, 2424, 2426, 2403, 2424, 2425, 2426, 2425, 2411, 2426,
+ 2409, 2427, 2428, 2427, 2429, 2428, 2427, 2410, 2429, 2410, 2430, 2429,
+ 2428, 2429, 2411, 2429, 2431, 2411, 2429, 2430, 2431, 2430, 2404, 2431,
+ 2437, 2439, 2438, 2432, 2440, 2439, 2438, 2439, 2433, 2439, 2441, 2433,
+ 2439, 2440, 2441, 2440, 2434, 2441, 2442, 2444, 2443, 2399, 2445, 2444,
+ 2443, 2444, 2434, 2444, 2446, 2434, 2444, 2445, 2446, 2445, 2435, 2446,
+ 2433, 2447, 2448, 2447, 2449, 2448, 2447, 2434, 2449, 2434, 2450, 2449,
+ 2448, 2449, 2404, 2449, 2451, 2404, 2449, 2450, 2451, 2450, 2436, 2451,
+ 2434, 2452, 2453, 2452, 2454, 2453, 2452, 2435, 2454, 2435, 2455, 2454,
+ 2453, 2454, 2436, 2454, 2456, 2436, 2454, 2455, 2456, 2455, 2405, 2456,
+ 2403, 2462, 2463, 2462, 2464, 2463, 2462, 2457, 2464, 2457, 2465, 2464,
+ 2463, 2464, 2458, 2464, 2466, 2458, 2464, 2465, 2466, 2465, 2459, 2466,
+ 2457, 2467, 2468, 2467, 2469, 2468, 2467, 2404, 2469, 2404, 2470, 2469,
+ 2468, 2469, 2459, 2469, 2471, 2459, 2469, 2470, 2471, 2470, 2460, 2471,
+ 2458, 2472, 2473, 2472, 2474, 2473, 2472, 2459, 2474, 2459, 2475, 2474,
+ 2473, 2474, 2400, 2474, 2476, 2400, 2474, 2475, 2476, 2475, 2461, 2476,
+ 2459, 2477, 2478, 2477, 2479, 2478, 2477, 2460, 2479, 2460, 2480, 2479,
+ 2478, 2479, 2461, 2479, 2481, 2461, 2479, 2480, 2481, 2480, 2406, 2481,
+ 2404, 2487, 2488, 2487, 2489, 2488, 2487, 2482, 2489, 2482, 2490, 2489,
+ 2488, 2489, 2483, 2489, 2491, 2483, 2489, 2490, 2491, 2490, 2484, 2491,
+ 2482, 2492, 2493, 2492, 2494, 2493, 2492, 2405, 2494, 2405, 2495, 2494,
+ 2493, 2494, 2484, 2494, 2496, 2484, 2494, 2495, 2496, 2495, 2485, 2496,
+ 2483, 2497, 2498, 2497, 2499, 2498, 2497, 2484, 2499, 2484, 2500, 2499,
+ 2498, 2499, 2406, 2499, 2501, 2406, 2499, 2500, 2501, 2500, 2486, 2501,
+ 2484, 2502, 2503, 2502, 2504, 2503, 2502, 2485, 2504, 2485, 2505, 2504,
+ 2503, 2504, 2486, 2504, 2506, 2486, 2504, 2505, 2506, 2505, 2401, 2506,
+ 2521, 2523, 2522, 2516, 2524, 2523, 2522, 2523, 2517, 2523, 2525, 2517,
+ 2523, 2524, 2525, 2524, 2518, 2525, 2526, 2528, 2527, 2511, 2529, 2528,
+ 2527, 2528, 2518, 2528, 2530, 2518, 2528, 2529, 2530, 2529, 2519, 2530,
+ 2517, 2531, 2532, 2531, 2533, 2532, 2531, 2518, 2533, 2518, 2534, 2533,
+ 2532, 2533, 2512, 2533, 2535, 2512, 2533, 2534, 2535, 2534, 2520, 2535,
+ 2518, 2536, 2537, 2536, 2538, 2537, 2536, 2519, 2538, 2519, 2539, 2538,
+ 2537, 2538, 2520, 2538, 2540, 2520, 2538, 2539, 2540, 2539, 2513, 2540,
+ 2546, 2548, 2547, 2541, 2549, 2548, 2547, 2548, 2542, 2548, 2550, 2542,
+ 2548, 2549, 2550, 2549, 2543, 2550, 2551, 2553, 2552, 2508, 2554, 2553,
+ 2552, 2553, 2543, 2553, 2555, 2543, 2553, 2554, 2555, 2554, 2544, 2555,
+ 2542, 2556, 2557, 2556, 2558, 2557, 2556, 2543, 2558, 2543, 2559, 2558,
+ 2557, 2558, 2513, 2558, 2560, 2513, 2558, 2559, 2560, 2559, 2545, 2560,
+ 2543, 2561, 2562, 2561, 2563, 2562, 2561, 2544, 2563, 2544, 2564, 2563,
+ 2562, 2563, 2545, 2563, 2565, 2545, 2563, 2564, 2565, 2564, 2514, 2565,
+ 2512, 2571, 2572, 2571, 2573, 2572, 2571, 2566, 2573, 2566, 2574, 2573,
+ 2572, 2573, 2567, 2573, 2575, 2567, 2573, 2574, 2575, 2574, 2568, 2575,
+ 2566, 2576, 2577, 2576, 2578, 2577, 2576, 2513, 2578, 2513, 2579, 2578,
+ 2577, 2578, 2568, 2578, 2580, 2568, 2578, 2579, 2580, 2579, 2569, 2580,
+ 2567, 2581, 2582, 2581, 2583, 2582, 2581, 2568, 2583, 2568, 2584, 2583,
+ 2582, 2583, 2509, 2583, 2585, 2509, 2583, 2584, 2585, 2584, 2570, 2585,
+ 2568, 2586, 2587, 2586, 2588, 2587, 2586, 2569, 2588, 2569, 2589, 2588,
+ 2587, 2588, 2570, 2588, 2590, 2570, 2588, 2589, 2590, 2589, 2515, 2590,
+ 2513, 2596, 2597, 2596, 2598, 2597, 2596, 2591, 2598, 2591, 2599, 2598,
+ 2597, 2598, 2592, 2598, 2600, 2592, 2598, 2599, 2600, 2599, 2593, 2600,
+ 2591, 2601, 2602, 2601, 2603, 2602, 2601, 2514, 2603, 2514, 2604, 2603,
+ 2602, 2603, 2593, 2603, 2605, 2593, 2603, 2604, 2605, 2604, 2594, 2605,
+ 2592, 2606, 2607, 2606, 2608, 2607, 2606, 2593, 2608, 2593, 2609, 2608,
+ 2607, 2608, 2515, 2608, 2610, 2515, 2608, 2609, 2610, 2609, 2595, 2610,
+ 2593, 2611, 2612, 2611, 2613, 2612, 2611, 2594, 2613, 2594, 2614, 2613,
+ 2612, 2613, 2595, 2613, 2615, 2595, 2613, 2614, 2615, 2614, 2510, 2615,
+ 2616, 2630, 2631, 2630, 2632, 2631, 2630, 2625, 2632, 2625, 2633, 2632,
+ 2631, 2632, 2626, 2632, 2634, 2626, 2632, 2633, 2634, 2633, 2627, 2634,
+ 2625, 2635, 2636, 2635, 2637, 2636, 2635, 2620, 2637, 2620, 2638, 2637,
+ 2636, 2637, 2627, 2637, 2639, 2627, 2637, 2638, 2639, 2638, 2628, 2639,
+ 2626, 2640, 2641, 2640, 2642, 2641, 2640, 2627, 2642, 2627, 2643, 2642,
+ 2641, 2642, 2621, 2642, 2644, 2621, 2642, 2643, 2644, 2643, 2629, 2644,
+ 2627, 2645, 2646, 2645, 2647, 2646, 2645, 2628, 2647, 2628, 2648, 2647,
+ 2646, 2647, 2629, 2647, 2649, 2629, 2647, 2648, 2649, 2648, 2622, 2649,
+ 2620, 2655, 2656, 2655, 2657, 2656, 2655, 2650, 2657, 2650, 2658, 2657,
+ 2656, 2657, 2651, 2657, 2659, 2651, 2657, 2658, 2659, 2658, 2652, 2659,
+ 2650, 2660, 2661, 2660, 2662, 2661, 2660, 2617, 2662, 2617, 2663, 2662,
+ 2661, 2662, 2652, 2662, 2664, 2652, 2662, 2663, 2664, 2663, 2653, 2664,
+ 2651, 2665, 2666, 2665, 2667, 2666, 2665, 2652, 2667, 2652, 2668, 2667,
+ 2666, 2667, 2622, 2667, 2669, 2622, 2667, 2668, 2669, 2668, 2654, 2669,
+ 2652, 2670, 2671, 2670, 2672, 2671, 2670, 2653, 2672, 2653, 2673, 2672,
+ 2671, 2672, 2654, 2672, 2674, 2654, 2672, 2673, 2674, 2673, 2623, 2674,
+ 2621, 2680, 2681, 2680, 2682, 2681, 2680, 2675, 2682, 2675, 2683, 2682,
+ 2681, 2682, 2676, 2682, 2684, 2676, 2682, 2683, 2684, 2683, 2677, 2684,
+ 2675, 2685, 2686, 2685, 2687, 2686, 2685, 2622, 2687, 2622, 2688, 2687,
+ 2686, 2687, 2677, 2687, 2689, 2677, 2687, 2688, 2689, 2688, 2678, 2689,
+ 2676, 2690, 2691, 2690, 2692, 2691, 2690, 2677, 2692, 2677, 2693, 2692,
+ 2691, 2692, 2618, 2692, 2694, 2618, 2692, 2693, 2694, 2693, 2679, 2694,
+ 2677, 2695, 2696, 2695, 2697, 2696, 2695, 2678, 2697, 2678, 2698, 2697,
+ 2696, 2697, 2679, 2697, 2699, 2679, 2697, 2698, 2699, 2698, 2624, 2699,
+ 2622, 2705, 2706, 2705, 2707, 2706, 2705, 2700, 2707, 2700, 2708, 2707,
+ 2706, 2707, 2701, 2707, 2709, 2701, 2707, 2708, 2709, 2708, 2702, 2709,
+ 2700, 2710, 2711, 2710, 2712, 2711, 2710, 2623, 2712, 2623, 2713, 2712,
+ 2711, 2712, 2702, 2712, 2714, 2702, 2712, 2713, 2714, 2713, 2703, 2714,
+ 2701, 2715, 2716, 2715, 2717, 2716, 2715, 2702, 2717, 2702, 2718, 2717,
+ 2716, 2717, 2624, 2717, 2719, 2624, 2717, 2718, 2719, 2718, 2704, 2719,
+ 2702, 2720, 2721, 2720, 2722, 2721, 2720, 2703, 2722, 2703, 2723, 2722,
+ 2721, 2722, 2704, 2722, 2724, 2704, 2722, 2723, 2724, 2723, 2619, 2724,
+ 2725, 2739, 2740, 2739, 2741, 2740, 2739, 2734, 2741, 2734, 2742, 2741,
+ 2740, 2741, 2735, 2741, 2743, 2735, 2741, 2742, 2743, 2742, 2736, 2743,
+ 2734, 2744, 2745, 2744, 2746, 2745, 2744, 2729, 2746, 2729, 2747, 2746,
+ 2745, 2746, 2736, 2746, 2748, 2736, 2746, 2747, 2748, 2747, 2737, 2748,
+ 2735, 2749, 2750, 2749, 2751, 2750, 2749, 2736, 2751, 2736, 2752, 2751,
+ 2750, 2751, 2730, 2751, 2753, 2730, 2751, 2752, 2753, 2752, 2738, 2753,
+ 2736, 2754, 2755, 2754, 2756, 2755, 2754, 2737, 2756, 2737, 2757, 2756,
+ 2755, 2756, 2738, 2756, 2758, 2738, 2756, 2757, 2758, 2757, 2731, 2758,
+ 2729, 2764, 2765, 2764, 2766, 2765, 2764, 2759, 2766, 2759, 2767, 2766,
+ 2765, 2766, 2760, 2766, 2768, 2760, 2766, 2767, 2768, 2767, 2761, 2768,
+ 2759, 2769, 2770, 2769, 2771, 2770, 2769, 2726, 2771, 2726, 2772, 2771,
+ 2770, 2771, 2761, 2771, 2773, 2761, 2771, 2772, 2773, 2772, 2762, 2773,
+ 2760, 2774, 2775, 2774, 2776, 2775, 2774, 2761, 2776, 2761, 2777, 2776,
+ 2775, 2776, 2731, 2776, 2778, 2731, 2776, 2777, 2778, 2777, 2763, 2778,
+ 2761, 2779, 2780, 2779, 2781, 2780, 2779, 2762, 2781, 2762, 2782, 2781,
+ 2780, 2781, 2763, 2781, 2783, 2763, 2781, 2782, 2783, 2782, 2732, 2783,
+ 2730, 2789, 2790, 2789, 2791, 2790, 2789, 2784, 2791, 2784, 2792, 2791,
+ 2790, 2791, 2785, 2791, 2793, 2785, 2791, 2792, 2793, 2792, 2786, 2793,
+ 2784, 2794, 2795, 2794, 2796, 2795, 2794, 2731, 2796, 2731, 2797, 2796,
+ 2795, 2796, 2786, 2796, 2798, 2786, 2796, 2797, 2798, 2797, 2787, 2798,
+ 2785, 2799, 2800, 2799, 2801, 2800, 2799, 2786, 2801, 2786, 2802, 2801,
+ 2800, 2801, 2727, 2801, 2803, 2727, 2801, 2802, 2803, 2802, 2788, 2803,
+ 2786, 2804, 2805, 2804, 2806, 2805, 2804, 2787, 2806, 2787, 2807, 2806,
+ 2805, 2806, 2788, 2806, 2808, 2788, 2806, 2807, 2808, 2807, 2733, 2808,
+ 2731, 2814, 2815, 2814, 2816, 2815, 2814, 2809, 2816, 2809, 2817, 2816,
+ 2815, 2816, 2810, 2816, 2818, 2810, 2816, 2817, 2818, 2817, 2811, 2818,
+ 2809, 2819, 2820, 2819, 2821, 2820, 2819, 2732, 2821, 2732, 2822, 2821,
+ 2820, 2821, 2811, 2821, 2823, 2811, 2821, 2822, 2823, 2822, 2812, 2823,
+ 2810, 2824, 2825, 2824, 2826, 2825, 2824, 2811, 2826, 2811, 2827, 2826,
+ 2825, 2826, 2733, 2826, 2828, 2733, 2826, 2827, 2828, 2827, 2813, 2828,
+ 2811, 2829, 2830, 2829, 2831, 2830, 2829, 2812, 2831, 2812, 2832, 2831,
+ 2830, 2831, 2813, 2831, 2833, 2813, 2831, 2832, 2833, 2832, 2728, 2833,
+ 2834, 2848, 2849, 2848, 2850, 2849, 2848, 2843, 2850, 2843, 2851, 2850,
+ 2849, 2850, 2844, 2850, 2852, 2844, 2850, 2851, 2852, 2851, 2845, 2852,
+ 2843, 2853, 2854, 2853, 2855, 2854, 2853, 2838, 2855, 2838, 2856, 2855,
+ 2854, 2855, 2845, 2855, 2857, 2845, 2855, 2856, 2857, 2856, 2846, 2857,
+ 2844, 2858, 2859, 2858, 2860, 2859, 2858, 2845, 2860, 2845, 2861, 2860,
+ 2859, 2860, 2839, 2860, 2862, 2839, 2860, 2861, 2862, 2861, 2847, 2862,
+ 2845, 2863, 2864, 2863, 2865, 2864, 2863, 2846, 2865, 2846, 2866, 2865,
+ 2864, 2865, 2847, 2865, 2867, 2847, 2865, 2866, 2867, 2866, 2840, 2867,
+ 2838, 2873, 2874, 2873, 2875, 2874, 2873, 2868, 2875, 2868, 2876, 2875,
+ 2874, 2875, 2869, 2875, 2877, 2869, 2875, 2876, 2877, 2876, 2870, 2877,
+ 2868, 2878, 2879, 2878, 2880, 2879, 2878, 2835, 2880, 2835, 2881, 2880,
+ 2879, 2880, 2870, 2880, 2882, 2870, 2880, 2881, 2882, 2881, 2871, 2882,
+ 2869, 2883, 2884, 2883, 2885, 2884, 2883, 2870, 2885, 2870, 2886, 2885,
+ 2884, 2885, 2840, 2885, 2887, 2840, 2885, 2886, 2887, 2886, 2872, 2887,
+ 2870, 2888, 2889, 2888, 2890, 2889, 2888, 2871, 2890, 2871, 2891, 2890,
+ 2889, 2890, 2872, 2890, 2892, 2872, 2890, 2891, 2892, 2891, 2841, 2892,
+ 2839, 2898, 2899, 2898, 2900, 2899, 2898, 2893, 2900, 2893, 2901, 2900,
+ 2899, 2900, 2894, 2900, 2902, 2894, 2900, 2901, 2902, 2901, 2895, 2902,
+ 2893, 2903, 2904, 2903, 2905, 2904, 2903, 2840, 2905, 2840, 2906, 2905,
+ 2904, 2905, 2895, 2905, 2907, 2895, 2905, 2906, 2907, 2906, 2896, 2907,
+ 2894, 2908, 2909, 2908, 2910, 2909, 2908, 2895, 2910, 2895, 2911, 2910,
+ 2909, 2910, 2836, 2910, 2912, 2836, 2910, 2911, 2912, 2911, 2897, 2912,
+ 2895, 2913, 2914, 2913, 2915, 2914, 2913, 2896, 2915, 2896, 2916, 2915,
+ 2914, 2915, 2897, 2915, 2917, 2897, 2915, 2916, 2917, 2916, 2842, 2917,
+ 2840, 2923, 2924, 2923, 2925, 2924, 2923, 2918, 2925, 2918, 2926, 2925,
+ 2924, 2925, 2919, 2925, 2927, 2919, 2925, 2926, 2927, 2926, 2920, 2927,
+ 2918, 2928, 2929, 2928, 2930, 2929, 2928, 2841, 2930, 2841, 2931, 2930,
+ 2929, 2930, 2920, 2930, 2932, 2920, 2930, 2931, 2932, 2931, 2921, 2932,
+ 2919, 2933, 2934, 2933, 2935, 2934, 2933, 2920, 2935, 2920, 2936, 2935,
+ 2934, 2935, 2842, 2935, 2937, 2842, 2935, 2936, 2937, 2936, 2922, 2937,
+ 2920, 2938, 2939, 2938, 2940, 2939, 2938, 2921, 2940, 2921, 2941, 2940,
+ 2939, 2940, 2922, 2940, 2942, 2922, 2940, 2941, 2942, 2941, 2837, 2942,
+ 2943, 2957, 2958, 2957, 2959, 2958, 2957, 2952, 2959, 2952, 2960, 2959,
+ 2958, 2959, 2953, 2959, 2961, 2953, 2959, 2960, 2961, 2960, 2954, 2961,
+ 2952, 2962, 2963, 2962, 2964, 2963, 2962, 2947, 2964, 2947, 2965, 2964,
+ 2963, 2964, 2954, 2964, 2966, 2954, 2964, 2965, 2966, 2965, 2955, 2966,
+ 2953, 2967, 2968, 2967, 2969, 2968, 2967, 2954, 2969, 2954, 2970, 2969,
+ 2968, 2969, 2948, 2969, 2971, 2948, 2969, 2970, 2971, 2970, 2956, 2971,
+ 2954, 2972, 2973, 2972, 2974, 2973, 2972, 2955, 2974, 2955, 2975, 2974,
+ 2973, 2974, 2956, 2974, 2976, 2956, 2974, 2975, 2976, 2975, 2949, 2976,
+ 2947, 2982, 2983, 2982, 2984, 2983, 2982, 2977, 2984, 2977, 2985, 2984,
+ 2983, 2984, 2978, 2984, 2986, 2978, 2984, 2985, 2986, 2985, 2979, 2986,
+ 2977, 2987, 2988, 2987, 2989, 2988, 2987, 2944, 2989, 2944, 2990, 2989,
+ 2988, 2989, 2979, 2989, 2991, 2979, 2989, 2990, 2991, 2990, 2980, 2991,
+ 2978, 2992, 2993, 2992, 2994, 2993, 2992, 2979, 2994, 2979, 2995, 2994,
+ 2993, 2994, 2949, 2994, 2996, 2949, 2994, 2995, 2996, 2995, 2981, 2996,
+ 2979, 2997, 2998, 2997, 2999, 2998, 2997, 2980, 2999, 2980, 3000, 2999,
+ 2998, 2999, 2981, 2999, 3001, 2981, 2999, 3000, 3001, 3000, 2950, 3001,
+ 2948, 3007, 3008, 3007, 3009, 3008, 3007, 3002, 3009, 3002, 3010, 3009,
+ 3008, 3009, 3003, 3009, 3011, 3003, 3009, 3010, 3011, 3010, 3004, 3011,
+ 3002, 3012, 3013, 3012, 3014, 3013, 3012, 2949, 3014, 2949, 3015, 3014,
+ 3013, 3014, 3004, 3014, 3016, 3004, 3014, 3015, 3016, 3015, 3005, 3016,
+ 3003, 3017, 3018, 3017, 3019, 3018, 3017, 3004, 3019, 3004, 3020, 3019,
+ 3018, 3019, 2945, 3019, 3021, 2945, 3019, 3020, 3021, 3020, 3006, 3021,
+ 3004, 3022, 3023, 3022, 3024, 3023, 3022, 3005, 3024, 3005, 3025, 3024,
+ 3023, 3024, 3006, 3024, 3026, 3006, 3024, 3025, 3026, 3025, 2951, 3026,
+ 2949, 3032, 3033, 3032, 3034, 3033, 3032, 3027, 3034, 3027, 3035, 3034,
+ 3033, 3034, 3028, 3034, 3036, 3028, 3034, 3035, 3036, 3035, 3029, 3036,
+ 3027, 3037, 3038, 3037, 3039, 3038, 3037, 2950, 3039, 2950, 3040, 3039,
+ 3038, 3039, 3029, 3039, 3041, 3029, 3039, 3040, 3041, 3040, 3030, 3041,
+ 3028, 3042, 3043, 3042, 3044, 3043, 3042, 3029, 3044, 3029, 3045, 3044,
+ 3043, 3044, 2951, 3044, 3046, 2951, 3044, 3045, 3046, 3045, 3031, 3046,
+ 3029, 3047, 3048, 3047, 3049, 3048, 3047, 3030, 3049, 3030, 3050, 3049,
+ 3048, 3049, 3031, 3049, 3051, 3031, 3049, 3050, 3051, 3050, 2946, 3051,
+ 3066, 3068, 3067, 3061, 3069, 3068, 3067, 3068, 3062, 3068, 3070, 3062,
+ 3068, 3069, 3070, 3069, 3063, 3070, 3071, 3073, 3072, 3056, 3074, 3073,
+ 3072, 3073, 3063, 3073, 3075, 3063, 3073, 3074, 3075, 3074, 3064, 3075,
+ 3062, 3076, 3077, 3076, 3078, 3077, 3076, 3063, 3078, 3063, 3079, 3078,
+ 3077, 3078, 3057, 3078, 3080, 3057, 3078, 3079, 3080, 3079, 3065, 3080,
+ 3063, 3081, 3082, 3081, 3083, 3082, 3081, 3064, 3083, 3064, 3084, 3083,
+ 3082, 3083, 3065, 3083, 3085, 3065, 3083, 3084, 3085, 3084, 3058, 3085,
+ 3091, 3093, 3092, 3086, 3094, 3093, 3092, 3093, 3087, 3093, 3095, 3087,
+ 3093, 3094, 3095, 3094, 3088, 3095, 3096, 3098, 3097, 3053, 3099, 3098,
+ 3097, 3098, 3088, 3098, 3100, 3088, 3098, 3099, 3100, 3099, 3089, 3100,
+ 3087, 3101, 3102, 3101, 3103, 3102, 3101, 3088, 3103, 3088, 3104, 3103,
+ 3102, 3103, 3058, 3103, 3105, 3058, 3103, 3104, 3105, 3104, 3090, 3105,
+ 3088, 3106, 3107, 3106, 3108, 3107, 3106, 3089, 3108, 3089, 3109, 3108,
+ 3107, 3108, 3090, 3108, 3110, 3090, 3108, 3109, 3110, 3109, 3059, 3110,
+ 3057, 3116, 3117, 3116, 3118, 3117, 3116, 3111, 3118, 3111, 3119, 3118,
+ 3117, 3118, 3112, 3118, 3120, 3112, 3118, 3119, 3120, 3119, 3113, 3120,
+ 3111, 3121, 3122, 3121, 3123, 3122, 3121, 3058, 3123, 3058, 3124, 3123,
+ 3122, 3123, 3113, 3123, 3125, 3113, 3123, 3124, 3125, 3124, 3114, 3125,
+ 3112, 3126, 3127, 3126, 3128, 3127, 3126, 3113, 3128, 3113, 3129, 3128,
+ 3127, 3128, 3054, 3128, 3130, 3054, 3128, 3129, 3130, 3129, 3115, 3130,
+ 3113, 3131, 3132, 3131, 3133, 3132, 3131, 3114, 3133, 3114, 3134, 3133,
+ 3132, 3133, 3115, 3133, 3135, 3115, 3133, 3134, 3135, 3134, 3060, 3135,
+ 3058, 3141, 3142, 3141, 3143, 3142, 3141, 3136, 3143, 3136, 3144, 3143,
+ 3142, 3143, 3137, 3143, 3145, 3137, 3143, 3144, 3145, 3144, 3138, 3145,
+ 3136, 3146, 3147, 3146, 3148, 3147, 3146, 3059, 3148, 3059, 3149, 3148,
+ 3147, 3148, 3138, 3148, 3150, 3138, 3148, 3149, 3150, 3149, 3139, 3150,
+ 3137, 3151, 3152, 3151, 3153, 3152, 3151, 3138, 3153, 3138, 3154, 3153,
+ 3152, 3153, 3060, 3153, 3155, 3060, 3153, 3154, 3155, 3154, 3140, 3155,
+ 3138, 3156, 3157, 3156, 3158, 3157, 3156, 3139, 3158, 3139, 3159, 3158,
+ 3157, 3158, 3140, 3158, 3160, 3140, 3158, 3159, 3160, 3159, 3055, 3160,
+ 3175, 3177, 3176, 3170, 3178, 3177, 3176, 3177, 3171, 3177, 3179, 3171,
+ 3177, 3178, 3179, 3178, 3172, 3179, 3180, 3182, 3181, 3165, 3183, 3182,
+ 3181, 3182, 3172, 3182, 3184, 3172, 3182, 3183, 3184, 3183, 3173, 3184,
+ 3171, 3185, 3186, 3185, 3187, 3186, 3185, 3172, 3187, 3172, 3188, 3187,
+ 3186, 3187, 3166, 3187, 3189, 3166, 3187, 3188, 3189, 3188, 3174, 3189,
+ 3172, 3190, 3191, 3190, 3192, 3191, 3190, 3173, 3192, 3173, 3193, 3192,
+ 3191, 3192, 3174, 3192, 3194, 3174, 3192, 3193, 3194, 3193, 3167, 3194,
+ 3200, 3202, 3201, 3195, 3203, 3202, 3201, 3202, 3196, 3202, 3204, 3196,
+ 3202, 3203, 3204, 3203, 3197, 3204, 3205, 3207, 3206, 3162, 3208, 3207,
+ 3206, 3207, 3197, 3207, 3209, 3197, 3207, 3208, 3209, 3208, 3198, 3209,
+ 3196, 3210, 3211, 3210, 3212, 3211, 3210, 3197, 3212, 3197, 3213, 3212,
+ 3211, 3212, 3167, 3212, 3214, 3167, 3212, 3213, 3214, 3213, 3199, 3214,
+ 3197, 3215, 3216, 3215, 3217, 3216, 3215, 3198, 3217, 3198, 3218, 3217,
+ 3216, 3217, 3199, 3217, 3219, 3199, 3217, 3218, 3219, 3218, 3168, 3219,
+ 3166, 3225, 3226, 3225, 3227, 3226, 3225, 3220, 3227, 3220, 3228, 3227,
+ 3226, 3227, 3221, 3227, 3229, 3221, 3227, 3228, 3229, 3228, 3222, 3229,
+ 3220, 3230, 3231, 3230, 3232, 3231, 3230, 3167, 3232, 3167, 3233, 3232,
+ 3231, 3232, 3222, 3232, 3234, 3222, 3232, 3233, 3234, 3233, 3223, 3234,
+ 3221, 3235, 3236, 3235, 3237, 3236, 3235, 3222, 3237, 3222, 3238, 3237,
+ 3236, 3237, 3163, 3237, 3239, 3163, 3237, 3238, 3239, 3238, 3224, 3239,
+ 3222, 3240, 3241, 3240, 3242, 3241, 3240, 3223, 3242, 3223, 3243, 3242,
+ 3241, 3242, 3224, 3242, 3244, 3224, 3242, 3243, 3244, 3243, 3169, 3244,
+ 3167, 3250, 3251, 3250, 3252, 3251, 3250, 3245, 3252, 3245, 3253, 3252,
+ 3251, 3252, 3246, 3252, 3254, 3246, 3252, 3253, 3254, 3253, 3247, 3254,
+ 3245, 3255, 3256, 3255, 3257, 3256, 3255, 3168, 3257, 3168, 3258, 3257,
+ 3256, 3257, 3247, 3257, 3259, 3247, 3257, 3258, 3259, 3258, 3248, 3259,
+ 3246, 3260, 3261, 3260, 3262, 3261, 3260, 3247, 3262, 3247, 3263, 3262,
+ 3261, 3262, 3169, 3262, 3264, 3169, 3262, 3263, 3264, 3263, 3249, 3264,
+ 3247, 3265, 3266, 3265, 3267, 3266, 3265, 3248, 3267, 3248, 3268, 3267,
+ 3266, 3267, 3249, 3267, 3269, 3249, 3267, 3268, 3269, 3268, 3164, 3269,
+ 3284, 3286, 3285, 3279, 3287, 3286, 3285, 3286, 3280, 3286, 3288, 3280,
+ 3286, 3287, 3288, 3287, 3281, 3288, 3289, 3291, 3290, 3274, 3292, 3291,
+ 3290, 3291, 3281, 3291, 3293, 3281, 3291, 3292, 3293, 3292, 3282, 3293,
+ 3280, 3294, 3295, 3294, 3296, 3295, 3294, 3281, 3296, 3281, 3297, 3296,
+ 3295, 3296, 3275, 3296, 3298, 3275, 3296, 3297, 3298, 3297, 3283, 3298,
+ 3281, 3299, 3300, 3299, 3301, 3300, 3299, 3282, 3301, 3282, 3302, 3301,
+ 3300, 3301, 3283, 3301, 3303, 3283, 3301, 3302, 3303, 3302, 3276, 3303,
+ 3309, 3311, 3310, 3304, 3312, 3311, 3310, 3311, 3305, 3311, 3313, 3305,
+ 3311, 3312, 3313, 3312, 3306, 3313, 3314, 3316, 3315, 3271, 3317, 3316,
+ 3315, 3316, 3306, 3316, 3318, 3306, 3316, 3317, 3318, 3317, 3307, 3318,
+ 3305, 3319, 3320, 3319, 3321, 3320, 3319, 3306, 3321, 3306, 3322, 3321,
+ 3320, 3321, 3276, 3321, 3323, 3276, 3321, 3322, 3323, 3322, 3308, 3323,
+ 3306, 3324, 3325, 3324, 3326, 3325, 3324, 3307, 3326, 3307, 3327, 3326,
+ 3325, 3326, 3308, 3326, 3328, 3308, 3326, 3327, 3328, 3327, 3277, 3328,
+ 3275, 3334, 3335, 3334, 3336, 3335, 3334, 3329, 3336, 3329, 3337, 3336,
+ 3335, 3336, 3330, 3336, 3338, 3330, 3336, 3337, 3338, 3337, 3331, 3338,
+ 3329, 3339, 3340, 3339, 3341, 3340, 3339, 3276, 3341, 3276, 3342, 3341,
+ 3340, 3341, 3331, 3341, 3343, 3331, 3341, 3342, 3343, 3342, 3332, 3343,
+ 3330, 3344, 3345, 3344, 3346, 3345, 3344, 3331, 3346, 3331, 3347, 3346,
+ 3345, 3346, 3272, 3346, 3348, 3272, 3346, 3347, 3348, 3347, 3333, 3348,
+ 3331, 3349, 3350, 3349, 3351, 3350, 3349, 3332, 3351, 3332, 3352, 3351,
+ 3350, 3351, 3333, 3351, 3353, 3333, 3351, 3352, 3353, 3352, 3278, 3353,
+ 3276, 3359, 3360, 3359, 3361, 3360, 3359, 3354, 3361, 3354, 3362, 3361,
+ 3360, 3361, 3355, 3361, 3363, 3355, 3361, 3362, 3363, 3362, 3356, 3363,
+ 3354, 3364, 3365, 3364, 3366, 3365, 3364, 3277, 3366, 3277, 3367, 3366,
+ 3365, 3366, 3356, 3366, 3368, 3356, 3366, 3367, 3368, 3367, 3357, 3368,
+ 3355, 3369, 3370, 3369, 3371, 3370, 3369, 3356, 3371, 3356, 3372, 3371,
+ 3370, 3371, 3278, 3371, 3373, 3278, 3371, 3372, 3373, 3372, 3358, 3373,
+ 3356, 3374, 3375, 3374, 3376, 3375, 3374, 3357, 3376, 3357, 3377, 3376,
+ 3375, 3376, 3358, 3376, 3378, 3358, 3376, 3377, 3378, 3377, 3273, 3378,
+ 3393, 3395, 3394, 3388, 3396, 3395, 3394, 3395, 3389, 3395, 3397, 3389,
+ 3395, 3396, 3397, 3396, 3390, 3397, 3398, 3400, 3399, 3383, 3401, 3400,
+ 3399, 3400, 3390, 3400, 3402, 3390, 3400, 3401, 3402, 3401, 3391, 3402,
+ 3389, 3403, 3404, 3403, 3405, 3404, 3403, 3390, 3405, 3390, 3406, 3405,
+ 3404, 3405, 3384, 3405, 3407, 3384, 3405, 3406, 3407, 3406, 3392, 3407,
+ 3390, 3408, 3409, 3408, 3410, 3409, 3408, 3391, 3410, 3391, 3411, 3410,
+ 3409, 3410, 3392, 3410, 3412, 3392, 3410, 3411, 3412, 3411, 3385, 3412,
+ 3418, 3420, 3419, 3413, 3421, 3420, 3419, 3420, 3414, 3420, 3422, 3414,
+ 3420, 3421, 3422, 3421, 3415, 3422, 3423, 3425, 3424, 3380, 3426, 3425,
+ 3424, 3425, 3415, 3425, 3427, 3415, 3425, 3426, 3427, 3426, 3416, 3427,
+ 3414, 3428, 3429, 3428, 3430, 3429, 3428, 3415, 3430, 3415, 3431, 3430,
+ 3429, 3430, 3385, 3430, 3432, 3385, 3430, 3431, 3432, 3431, 3417, 3432,
+ 3415, 3433, 3434, 3433, 3435, 3434, 3433, 3416, 3435, 3416, 3436, 3435,
+ 3434, 3435, 3417, 3435, 3437, 3417, 3435, 3436, 3437, 3436, 3386, 3437,
+ 3384, 3443, 3444, 3443, 3445, 3444, 3443, 3438, 3445, 3438, 3446, 3445,
+ 3444, 3445, 3439, 3445, 3447, 3439, 3445, 3446, 3447, 3446, 3440, 3447,
+ 3438, 3448, 3449, 3448, 3450, 3449, 3448, 3385, 3450, 3385, 3451, 3450,
+ 3449, 3450, 3440, 3450, 3452, 3440, 3450, 3451, 3452, 3451, 3441, 3452,
+ 3439, 3453, 3454, 3453, 3455, 3454, 3453, 3440, 3455, 3440, 3456, 3455,
+ 3454, 3455, 3381, 3455, 3457, 3381, 3455, 3456, 3457, 3456, 3442, 3457,
+ 3440, 3458, 3459, 3458, 3460, 3459, 3458, 3441, 3460, 3441, 3461, 3460,
+ 3459, 3460, 3442, 3460, 3462, 3442, 3460, 3461, 3462, 3461, 3387, 3462,
+ 3385, 3468, 3469, 3468, 3470, 3469, 3468, 3463, 3470, 3463, 3471, 3470,
+ 3469, 3470, 3464, 3470, 3472, 3464, 3470, 3471, 3472, 3471, 3465, 3472,
+ 3463, 3473, 3474, 3473, 3475, 3474, 3473, 3386, 3475, 3386, 3476, 3475,
+ 3474, 3475, 3465, 3475, 3477, 3465, 3475, 3476, 3477, 3476, 3466, 3477,
+ 3464, 3478, 3479, 3478, 3480, 3479, 3478, 3465, 3480, 3465, 3481, 3480,
+ 3479, 3480, 3387, 3480, 3482, 3387, 3480, 3481, 3482, 3481, 3467, 3482,
+ 3465, 3483, 3484, 3483, 3485, 3484, 3483, 3466, 3485, 3466, 3486, 3485,
+ 3484, 3485, 3467, 3485, 3487, 3467, 3485, 3486, 3487, 3486, 3382, 3487
+};
+
+#endif
diff --git a/examples/sensors/cubehouse/texture.fsh b/examples/sensors/cubehouse/texture.fsh
new file mode 100644
index 00000000..bf2dd08c
--- /dev/null
+++ b/examples/sensors/cubehouse/texture.fsh
@@ -0,0 +1,51 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the examples of the Qt Mobility Components.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+uniform sampler2D tex;
+varying mediump vec4 qColor;
+varying mediump vec4 qSecondaryColor;
+varying highp vec4 qTexCoord;
+
+void main(void)
+{
+ mediump vec4 col = texture2D(tex, qTexCoord.st);
+ mediump vec4 lcolor = clamp(qColor + vec4(qSecondaryColor.xyz, 0.0), 0.0, 1.0);
+ gl_FragColor = vec4(clamp(lcolor.rgb * (1.0 - col.a) + col.rgb * col.a, 0.0, 1.0), lcolor.a);
+}
diff --git a/examples/sensors/cubehouse/view.cpp b/examples/sensors/cubehouse/view.cpp
new file mode 100644
index 00000000..e9cc5ddb
--- /dev/null
+++ b/examples/sensors/cubehouse/view.cpp
@@ -0,0 +1,291 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the examples of the Qt Mobility Components.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "view.h"
+#include "teapot.h"
+#include "cube.h"
+#include <QtCore/qdebug.h>
+#include <QtCore/qtimer.h>
+#include <stdio.h>
+#include "qaccelerometer.h"
+
+#if defined(QT_OPENGL_ES)
+#define USE_BUFFERS 1
+#endif
+
+//! [smoothed]
+class smoothedaccelerometerfilter : public QObject, public QAccelerometerFilter
+{
+ qreal prevX;
+ qreal prevY;
+ qreal prevZ;
+ bool havePrev;
+
+public:
+ smoothedaccelerometerfilter(QObject *parent = 0)
+ : QObject(parent)
+ , QAccelerometerFilter()
+ , prevX(0)
+ , prevY(0)
+ , prevZ(0)
+ , havePrev(false)
+ {
+ }
+
+ bool filter(QAccelerometerReading *reading)
+ {
+ // Smooth out the reported values. Large changes are applied as-is,
+ // and small jitters smooth to the rest position.
+ if (havePrev) {
+ qreal xdiff = reading->x() - prevX;
+ qreal ydiff = reading->y() - prevY;
+ qreal zdiff = reading->z() - prevZ;
+#define threshold 0.196133f
+ if (qAbs(xdiff) < threshold && qAbs(ydiff) < threshold && qAbs(zdiff) < threshold) {
+ reading->setX(prevX + xdiff * 0.1f);
+ reading->setY(prevY + ydiff * 0.1f);
+ reading->setZ(prevZ + zdiff * 0.1f);
+ }
+ }
+ prevX = reading->x();
+ prevY = reading->y();
+ prevZ = reading->z();
+ havePrev = true;
+ return true;
+ }
+};
+//! [smoothed]
+
+View::View(QWidget *parent)
+ : QGLWidget(parent),
+ sensitivity(0.1f),
+ painter(0),
+ showFrameRate(false)
+{
+#if (QT_VERSION >= QT_VERSION_CHECK(4, 7, 2))
+ setAttribute(Qt::WA_LockPortraitOrientation);
+#endif
+
+ mainCamera = new Camera(this);
+
+ roomCamera = new Camera(this);
+ roomCamera->setAdjustForAspectRatio(false);
+
+//! [accelerometer]
+ sensor = new QAccelerometer(this);
+ connect(sensor, SIGNAL(readingChanged()), this, SLOT(accelerometerTimeout()));
+ sensor->addFilter(new smoothedaccelerometerfilter(this));
+ sensor->start();
+//! [accelerometer]
+
+ time.start();
+
+ vertexBuffer = 0;
+ indexBuffer = 0;
+}
+
+View::~View()
+{
+ delete painter;
+}
+
+void View::resizeGL(int width, int height)
+{
+ glViewport(0, 0, width, height);
+}
+
+void View::initializeGL()
+{
+#if defined(QT_OPENGL_ES_2)
+ painter = new ShaderPainter();
+#else
+ painter = new FixedFunctionPainter();
+#endif
+
+ glEnable(GL_DEPTH_TEST);
+
+ roomMaterialBack = new Material();
+ roomMaterialBack->setDiffuseColor(QColor(128, 100, 0));
+
+ roomMaterialLeftRight = new Material();
+ roomMaterialLeftRight->setDiffuseColor(Qt::cyan);
+
+ roomMaterialTopBottom = new Material();
+ roomMaterialTopBottom->setDiffuseColor(Qt::yellow);
+
+ cubeMaterial = new Material();
+ cubeMaterial->setColor(QColor(170, 202, 0));
+
+ teapotMaterial = new Material();
+ teapotMaterial->setAmbientColor(QColor(192, 150, 128));
+ teapotMaterial->setSpecularColor(QColor(60, 60, 60));
+ teapotMaterial->setShininess(128);
+
+ roomModel = new LightModel(this);
+ roomModel->setAmbientSceneColor(Qt::white);
+ roomModel->setViewerPosition(LightModel::LocalViewer);
+
+ normalModel = new LightModel(this);
+
+ Light *light = new Light(this);
+ light->setPosition(QVector3D(0.0f, 0.0f, 3.0f));
+ painter->setLight(light);
+
+ texture = bindTexture(QImage(QLatin1String(":/qtlogo.png")));
+
+#ifdef USE_BUFFERS
+ // Upload the teapot data into GL buffers for quicker rendering.
+ glGenBuffers(1, &vertexBuffer);
+ glBindBuffer(GL_ARRAY_BUFFER, vertexBuffer);
+ glBufferData(GL_ARRAY_BUFFER,
+ teapotVertexCount * teapotVertexStride * sizeof(float),
+ teapotVertexData, GL_STATIC_DRAW);
+ glBindBuffer(GL_ARRAY_BUFFER, 0);
+
+ glGenBuffers(1, &indexBuffer);
+ glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, indexBuffer);
+ glBufferData(GL_ELEMENT_ARRAY_BUFFER,
+ teapotTriangleCount * 3 * sizeof(ushort),
+ teapotTriangleData, GL_STATIC_DRAW);
+ glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0);
+#endif
+}
+
+void View::paintGL()
+{
+ if (showFrameRate)
+ qWarning("time since last frame: %d ms", time.restart());
+
+ qreal aspectRatio = qreal(width()) / qreal(height());
+ QMatrix4x4 mv, mv2;
+ QMatrix4x4 proj;
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ mv = roomCamera->modelViewMatrix();
+ proj = roomCamera->projectionMatrix(aspectRatio);
+ painter->setLightModel(roomModel);
+ painter->setMatrices(mv, proj);
+
+ painter->selectMaterial(roomMaterialBack);
+ painter->drawQuad(QVector3D(-3.0f, -3.0f, -15.0f),
+ QVector3D( 3.0f, -3.0f, -15.0f),
+ QVector3D( 3.0f, 3.0f, -15.0f),
+ QVector3D(-3.0f, 3.0f, -15.0f),
+ QVector3D(0.0f, 0.0f, 1.0f));
+
+ painter->selectMaterial(roomMaterialLeftRight);
+ painter->drawQuad(QVector3D(-3.0f, -3.0f, -15.0f),
+ QVector3D(-3.0f, 3.0f, -15.0f),
+ QVector3D(-3.0f, 3.0f, 0.0f),
+ QVector3D(-3.0f, -3.0f, 0.0f),
+ QVector3D(1.0f, 0.0f, 0.0f));
+ painter->drawQuad(QVector3D(3.0f, 3.0f, -15.0f),
+ QVector3D(3.0f, -3.0f, -15.0f),
+ QVector3D(3.0f, -3.0f, 0.0f),
+ QVector3D(3.0f, 3.0f, 0.0f),
+ QVector3D(-1.0f, 0.0f, 0.0f));
+
+ painter->selectMaterial(roomMaterialTopBottom);
+ painter->drawQuad(QVector3D(-3.0f, 3.0f, -15.0f),
+ QVector3D( 3.0f, 3.0f, -15.0f),
+ QVector3D( 3.0f, 3.0f, 0.0f),
+ QVector3D(-3.0f, 3.0f, 0.0f),
+ QVector3D(0.0f, -1.0f, 0.0f));
+ painter->drawQuad(QVector3D(-3.0f, -3.0f, -15.0f),
+ QVector3D(-3.0f, -3.0f, 0.0f),
+ QVector3D( 3.0f, -3.0f, 0.0f),
+ QVector3D( 3.0f, -3.0f, -15.0f),
+ QVector3D(0.0f, 1.0f, 0.0f));
+
+ mv = mv2 = mainCamera->modelViewMatrix();
+ proj = mainCamera->projectionMatrix(aspectRatio);
+ mv.translate(1.0f, -0.5f, 0.0f);
+ mv.rotate(45.0f, 1.0f, 1.0f, 1.0f);
+ painter->setMatrices(mv, proj);
+ painter->setLightModel(normalModel);
+ painter->selectTexturedMaterial(cubeMaterial);
+ painter->setVertices(cubeVertices, 8);
+ painter->setNormals(cubeVertices + 3, 8);
+ painter->setTexCoords(cubeVertices + 6, 8);
+ glDrawArrays(GL_TRIANGLES, 0, 36);
+
+ mv2.translate(-0.8f, -1.5f, -3.0f);
+ painter->setMatrices(mv2, proj);
+ painter->selectMaterial(teapotMaterial);
+#ifdef USE_BUFFERS
+ glBindBuffer(GL_ARRAY_BUFFER, vertexBuffer);
+ glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, indexBuffer);
+ painter->setVertices(0, 8);
+ painter->setNormals(reinterpret_cast<float *>(3 * sizeof(float)), 8);
+ painter->setTexCoords(reinterpret_cast<float *>(6 * sizeof(float)), 8);
+ glDrawElements(GL_TRIANGLES, teapotTriangleCount * 3,
+ GL_UNSIGNED_SHORT, 0);
+ glBindBuffer(GL_ARRAY_BUFFER, 0);
+ glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0);
+#else
+ painter->setVertices(teapotVertexData, 8);
+ painter->setNormals(teapotVertexData + 3, 8);
+ painter->setTexCoords(teapotVertexData + 6, 8);
+ glDrawElements(GL_TRIANGLES, teapotTriangleCount * 3,
+ GL_UNSIGNED_SHORT, teapotTriangleData);
+#endif
+}
+
+//! [accelerometer2]
+void View::accelerometerTimeout()
+{
+ QVector3D g = gravity();
+ mainCamera->setMotionAdjustment(g);
+ roomCamera->setMotionAdjustment(g);
+ update();
+}
+
+#define ACCEL_TO_G(v) (v / 9.80665)
+
+QVector3D View::gravity() const
+{
+ qreal x = ACCEL_TO_G(sensor->reading()->x()) * sensitivity;
+ qreal y = ACCEL_TO_G(sensor->reading()->y()) * sensitivity;
+ qreal z = ACCEL_TO_G(sensor->reading()->z());
+
+ return QVector3D(x, y, z);
+}
+//! [accelerometer2]
diff --git a/examples/sensors/cubehouse/view.h b/examples/sensors/cubehouse/view.h
new file mode 100644
index 00000000..d073a67e
--- /dev/null
+++ b/examples/sensors/cubehouse/view.h
@@ -0,0 +1,94 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the examples of the Qt Mobility Components.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef VIEW_H
+#define VIEW_H
+
+#include <QtOpenGL/qgl.h>
+#include <QtGui/qvector3d.h>
+#include <QtCore/qdatetime.h>
+#include "camera.h"
+#include "light.h"
+#include "lightmodel.h"
+#include "material.h"
+#include "painter.h"
+
+class QAccelerometer;
+
+class View : public QGLWidget
+{
+ Q_OBJECT
+public:
+ View(QWidget *parent = 0);
+ ~View();
+
+ void setShowFrameRate(bool value) { showFrameRate = value; }
+
+protected:
+ void resizeGL(int width, int height);
+ void initializeGL();
+ void paintGL();
+
+private slots:
+ void accelerometerTimeout();
+
+private:
+ GLuint texture;
+ GLuint vertexBuffer;
+ GLuint indexBuffer;
+ Camera *mainCamera;
+ Camera *roomCamera;
+ qreal sensitivity;
+ LightModel *roomModel;
+ LightModel *normalModel;
+ Material *cubeMaterial;
+ Material *teapotMaterial;
+ Material *roomMaterialBack;
+ Material *roomMaterialLeftRight;
+ Material *roomMaterialTopBottom;
+ Painter *painter;
+ QTime time;
+ bool showFrameRate;
+ QAccelerometer *sensor;
+
+ QVector3D gravity() const;
+};
+
+#endif
diff --git a/examples/sensors/grueapp/grueapp.pro b/examples/sensors/grueapp/grueapp.pro
new file mode 100644
index 00000000..65d59be1
--- /dev/null
+++ b/examples/sensors/grueapp/grueapp.pro
@@ -0,0 +1,5 @@
+TEMPLATE=app
+TARGET=grueapp
+QT=core sensors
+SOURCES=main.cpp
+
diff --git a/examples/sensors/grueapp/main.cpp b/examples/sensors/grueapp/main.cpp
new file mode 100644
index 00000000..789e6451
--- /dev/null
+++ b/examples/sensors/grueapp/main.cpp
@@ -0,0 +1,89 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the examples of the Qt Mobility Components.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QtCore>
+#include <qsensor.h>
+
+class Filter : public QSensorFilter
+{
+ int lastPercent;
+public:
+ Filter()
+ : QSensorFilter()
+ , lastPercent(0)
+ {
+ }
+
+ bool filter(QSensorReading *reading)
+ {
+ int percent = reading->property("chanceOfBeingEaten").value<qreal>() * 100;
+ if (percent == 0) {
+ qDebug() << "It is light. You are safe from Grues.";
+ } else if (lastPercent == 0) {
+ qDebug() << "It is dark. You are likely to be eaten by a Grue.";
+ }
+ if (percent == 100) {
+ qDebug() << "You have been eaten by a Grue!";
+ QCoreApplication::instance()->quit();
+ } else if (percent)
+ qDebug() << "Your chance of being eaten by a Grue:" << percent << "percent.";
+ lastPercent = percent;
+ return false;
+ }
+};
+
+int main(int argc, char **argv)
+{
+ QCoreApplication app(argc, argv);
+
+ QSensor sensor("GrueSensor");
+
+ Filter filter;
+ sensor.addFilter(&filter);
+ sensor.start();
+
+ if (!sensor.isActive()) {
+ qWarning("The Grue sensor didn't start. You're on your own!");
+ return 1;
+ }
+
+ return app.exec();
+}
+
diff --git a/examples/sensors/grueplugin/grueplugin.pri b/examples/sensors/grueplugin/grueplugin.pri
new file mode 100644
index 00000000..2cade0f0
--- /dev/null
+++ b/examples/sensors/grueplugin/grueplugin.pri
@@ -0,0 +1,8 @@
+HEADERS += gruesensor.h\
+ gruesensor_p.h\
+ gruesensorimpl.h\
+
+SOURCES += gruesensor.cpp\
+ gruesensorimpl.cpp\
+ main.cpp\
+
diff --git a/examples/sensors/grueplugin/grueplugin.pro b/examples/sensors/grueplugin/grueplugin.pro
new file mode 100644
index 00000000..0b39f910
--- /dev/null
+++ b/examples/sensors/grueplugin/grueplugin.pro
@@ -0,0 +1,15 @@
+TEMPLATE = lib
+CONFIG += plugin
+TARGET = $$qtLibraryTarget(qtsensors_grueplugin)
+PLUGIN_TYPE = sensors
+
+QT = core sensors
+
+include(version.pri)
+include(grueplugin.pri)
+
+symbian {
+ TARGET.EPOCALLOWDLLDATA = 1
+ TARGET.CAPABILITY = ALL -TCB
+}
+
diff --git a/examples/sensors/grueplugin/gruesensor.cpp b/examples/sensors/grueplugin/gruesensor.cpp
new file mode 100644
index 00000000..c5ee030f
--- /dev/null
+++ b/examples/sensors/grueplugin/gruesensor.cpp
@@ -0,0 +1,143 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the examples of the Qt Mobility Components.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "gruesensor.h"
+#include "gruesensor_p.h"
+
+IMPLEMENT_READING(GrueSensorReading)
+
+/*!
+ \class GrueSensorReading
+ \ingroup sensors_reading
+
+ \preliminary
+ \brief The GrueSensorReading class holds readings from the Grue sensor.
+
+ The Grue Sensor informs you of your chance of being eaten by a Grue.
+
+ Grues love the dark so as long as your surroundings are relatively light
+ you are safe. However the more time you spend in the dark, the higher
+ your chances are of being eaten by a Grue.
+*/
+
+/*!
+ \property GrueSensorReading::chanceOfBeingEaten
+ \brief holds your chance of being eaten.
+
+ The value is the probability (from 0 to 1) that a Grue will eat you.
+ A probability of 1 means you are currently being eaten. The darker
+ it is, the more likely you are to be eaten by a Grue. The longer you
+ stay in a dark area, the more likely you are to be eaten by a Grue.
+ If you are in a lit room, the probability will be 0 as Grues fear light.
+*/
+
+qreal GrueSensorReading::chanceOfBeingEaten() const
+{
+ return d->chanceOfBeingEaten;
+}
+
+void GrueSensorReading::setChanceOfBeingEaten(qreal chanceOfBeingEaten)
+{
+ d->chanceOfBeingEaten = chanceOfBeingEaten;
+}
+
+// =====================================================================
+
+// begin generated code
+
+/*!
+ \class GrueFilter
+ \ingroup sensors_filter
+
+ \preliminary
+ \brief The GrueFilter class is a convenience wrapper around QSensorFilter.
+
+ The only difference is that the filter() method features a pointer to GrueSensorReading
+ instead of QSensorReading.
+*/
+
+/*!
+ \fn GrueFilter::filter(GrueSensorReading *reading)
+
+ Called when \a reading changes. Returns false to prevent the reading from propagating.
+
+ \sa QSensorFilter::filter()
+*/
+
+char const * const GrueSensor::type("GrueSensor");
+
+/*!
+ \class GrueSensor
+ \ingroup sensors_type
+
+ \preliminary
+ \brief The GrueSensor class is a convenience wrapper around QSensor.
+
+ The only behavioural difference is that this class sets the type properly.
+
+ This class also features a reading() function that returns a GrueSensorReading instead of a QSensorReading.
+
+ For details about how the sensor works, see \l GrueSensorReading.
+
+ \sa GrueSensorReading
+*/
+
+/*!
+ \fn GrueSensor::GrueSensor(QObject *parent)
+
+ Construct the sensor as a child of \a parent.
+*/
+
+/*!
+ \fn GrueSensor::~GrueSensor()
+
+ Destroy the sensor. Stops the sensor if it has not already been stopped.
+*/
+
+/*!
+ \fn GrueSensor::reading() const
+
+ Returns the reading class for this sensor.
+
+ \sa QSensor::reading()
+*/
+// end generated code
+
+#include "moc_gruesensor.cpp"
diff --git a/examples/sensors/grueplugin/gruesensor.h b/examples/sensors/grueplugin/gruesensor.h
new file mode 100644
index 00000000..52b08e95
--- /dev/null
+++ b/examples/sensors/grueplugin/gruesensor.h
@@ -0,0 +1,79 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the examples of the Qt Mobility Components.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef GRUESENSOR_H
+#define GRUESENSOR_H
+
+#include <qsensor.h>
+
+class GrueSensorReadingPrivate;
+
+class GrueSensorReading : public QSensorReading
+{
+ Q_OBJECT
+ Q_PROPERTY(qreal chanceOfBeingEaten READ chanceOfBeingEaten WRITE setChanceOfBeingEaten)
+ DECLARE_READING(GrueSensorReading)
+public:
+ qreal chanceOfBeingEaten() const;
+ void setChanceOfBeingEaten(qreal chanceOfBeingEaten);
+};
+
+// begin generated code
+
+class GrueFilter : public QSensorFilter
+{
+public:
+ virtual bool filter(GrueSensorReading *reading) = 0;
+private:
+ bool filter(QSensorReading *reading) { return filter(static_cast<GrueSensorReading*>(reading)); }
+};
+
+class GrueSensor : public QSensor
+{
+ Q_OBJECT
+public:
+ explicit GrueSensor(QObject *parent = 0) : QSensor(GrueSensor::type, parent) {}
+ virtual ~GrueSensor() {}
+ GrueSensorReading *reading() const { return static_cast<GrueSensorReading*>(QSensor::reading()); }
+ static char const * const type;
+};
+// end generated code
+
+#endif
diff --git a/examples/sensors/grueplugin/gruesensor_p.h b/examples/sensors/grueplugin/gruesensor_p.h
new file mode 100644
index 00000000..5eff57e8
--- /dev/null
+++ b/examples/sensors/grueplugin/gruesensor_p.h
@@ -0,0 +1,66 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the examples of the Qt Mobility Components.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef GRUESENSOR_P_H
+#define GRUESENSOR_P_H
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+//
+
+class GrueSensorReadingPrivate
+{
+public:
+ GrueSensorReadingPrivate()
+ : chanceOfBeingEaten(-1.0)
+ {
+ }
+
+ qreal chanceOfBeingEaten;
+};
+
+#endif
diff --git a/examples/sensors/grueplugin/gruesensorimpl.cpp b/examples/sensors/grueplugin/gruesensorimpl.cpp
new file mode 100644
index 00000000..4a277c91
--- /dev/null
+++ b/examples/sensors/grueplugin/gruesensorimpl.cpp
@@ -0,0 +1,135 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the examples of the Qt Mobility Components.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "gruesensorimpl.h"
+#include <QDebug>
+#include <QTimer>
+
+char const * const gruesensorimpl::id("grue.gruesensor");
+
+gruesensorimpl::gruesensorimpl(QSensor *sensor)
+ : QSensorBackend(sensor)
+{
+ // We need a light sensor
+ lightSensor = new QAmbientLightSensor(this);
+ connect(lightSensor, SIGNAL(readingChanged()), this, SLOT(lightChanged()));
+ lightSensor->connectToBackend();
+
+ // We need a timer
+ darkTimer = new QTimer(this);
+ darkTimer->setInterval(1000);
+ connect(darkTimer, SIGNAL(timeout()), this, SLOT(increaseChance()));
+
+ // We use this as our timestamp source
+ timer.start();
+
+//! [setReading]
+ // Register our reading instance
+ setReading<GrueSensorReading>(&m_reading);
+//! [setReading]
+
+//! [metadata]
+ // Supply metadata
+ // We can run as fast as the light sensor does
+ setDataRates(lightSensor);
+ // Only one output range, 0 to 1 in .1 increments
+ addOutputRange(0, 1, 0.1);
+ setDescription(QLatin1String("Grue Sensor"));
+//! [metadata]
+}
+
+void gruesensorimpl::start()
+{
+//! [start]
+ lightSensor->setDataRate(sensor()->dataRate());
+ lightSensor->start();
+ // If the light sensor doesn't work we don't work either
+ if (!lightSensor->isActive())
+ sensorStopped();
+ if (lightSensor->isBusy())
+ sensorBusy();
+//! [start]
+}
+
+void gruesensorimpl::stop()
+{
+ lightSensor->stop();
+}
+
+void gruesensorimpl::lightChanged()
+{
+ qreal chance = 0.0;
+ darkTimer->stop();
+
+ switch (lightSensor->reading()->lightLevel()) {
+ case QAmbientLightReading::Dark:
+ // It is dark. You are likely to be eaten by a grue.
+ chance = 0.1;
+ darkTimer->start();
+ break;
+ default:
+ break;
+ }
+
+ // Only send an update if the value has changed.
+ if (chance != m_reading.chanceOfBeingEaten() || m_reading.timestamp() == 0) {
+ m_reading.setTimestamp(timer.elapsed());
+ m_reading.setChanceOfBeingEaten(chance);
+
+ newReadingAvailable();
+ }
+}
+
+void gruesensorimpl::increaseChance()
+{
+ // The longer you stay in the dark, the higher your chance of being eaten
+ qreal chance = m_reading.chanceOfBeingEaten() + 0.1;
+
+ m_reading.setTimestamp(timer.elapsed());
+ m_reading.setChanceOfBeingEaten(chance);
+
+ newReadingAvailable();
+
+ // No point in using the timer anymore if we've hit 1... you can't get more
+ // likely to be eaten than 100%
+ if (chance == 1.0)
+ darkTimer->stop();
+}
+
diff --git a/examples/sensors/grueplugin/gruesensorimpl.h b/examples/sensors/grueplugin/gruesensorimpl.h
new file mode 100644
index 00000000..bddca842
--- /dev/null
+++ b/examples/sensors/grueplugin/gruesensorimpl.h
@@ -0,0 +1,74 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the examples of the Qt Mobility Components.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef GRUESENSORIMPL_H
+#define GRUESENSORIMPL_H
+
+#include <qsensorbackend.h>
+#include "gruesensor.h"
+#include <qambientlightsensor.h>
+#include <QTime>
+
+class QTimer;
+
+class gruesensorimpl : public QSensorBackend
+{
+ Q_OBJECT
+public:
+ static char const * const id;
+
+ gruesensorimpl(QSensor *sensor);
+
+ void start();
+ void stop();
+
+private Q_SLOTS:
+ void lightChanged();
+ void increaseChance();
+
+private:
+ GrueSensorReading m_reading;
+ QAmbientLightSensor *lightSensor;
+ QTimer *darkTimer;
+ QTime timer;
+};
+
+#endif
+
diff --git a/examples/sensors/grueplugin/main.cpp b/examples/sensors/grueplugin/main.cpp
new file mode 100644
index 00000000..d471ece3
--- /dev/null
+++ b/examples/sensors/grueplugin/main.cpp
@@ -0,0 +1,82 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the examples of the Qt Mobility Components.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "gruesensorimpl.h"
+#include <qsensorplugin.h>
+#include <qsensorbackend.h>
+#include <qsensormanager.h>
+#include <QFile>
+#include <QDebug>
+
+class GrueSensorPlugin : public QObject, public QSensorPluginInterface, public QSensorChangesInterface, public QSensorBackendFactory
+{
+ Q_OBJECT
+ Q_INTERFACES(QSensorPluginInterface QSensorChangesInterface)
+public:
+ void registerSensors()
+ {
+ qDebug() << "loaded the grue plugin";
+ }
+
+ void sensorsChanged()
+ {
+ if (!QSensor::defaultSensorForType(QAmbientLightSensor::type).isEmpty()) {
+ // There is a light sensor available. Register the backend
+ if (!QSensorManager::isBackendRegistered(GrueSensor::type, gruesensorimpl::id))
+ QSensorManager::registerBackend(GrueSensor::type, gruesensorimpl::id, this);
+ } else {
+ if (QSensorManager::isBackendRegistered(GrueSensor::type, gruesensorimpl::id))
+ QSensorManager::unregisterBackend(GrueSensor::type, gruesensorimpl::id);
+ }
+ }
+
+ QSensorBackend *createBackend(QSensor *sensor)
+ {
+ if (sensor->identifier() == gruesensorimpl::id)
+ return new gruesensorimpl(sensor);
+
+ return 0;
+ }
+};
+
+Q_EXPORT_PLUGIN2(libsensors_grueplugin, GrueSensorPlugin);
+
+#include "main.moc"
+
diff --git a/examples/sensors/grueplugin/version.pri b/examples/sensors/grueplugin/version.pri
new file mode 100644
index 00000000..6fbe0253
--- /dev/null
+++ b/examples/sensors/grueplugin/version.pri
@@ -0,0 +1 @@
+VERSION = 0.1.1
diff --git a/examples/sensors/sensor_explorer/explorer.cpp b/examples/sensors/sensor_explorer/explorer.cpp
new file mode 100644
index 00000000..417dcd96
--- /dev/null
+++ b/examples/sensors/sensor_explorer/explorer.cpp
@@ -0,0 +1,450 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the examples of the Qt Mobility Components.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "explorer.h"
+#include <QTimer>
+#include <QDebug>
+#include <qsensor.h>
+#include <QMetaObject>
+#include <QMetaProperty>
+
+Explorer::Explorer(QWidget *parent)
+ : QMainWindow(parent)
+ , m_sensor(0)
+ , ignoreItemChanged(false)
+{
+ ui.setupUi(this);
+#ifdef MAEMO5
+ ui.label->hide();
+#endif
+ // Clear out example data from the .ui file
+ ui.sensors->clear();
+ clearSensorProperties();
+ clearReading();
+
+ // Force types to be registered
+ (void)QSensor::sensorTypes();
+ // Listen for changes to the registered types
+ QSensor *sensor = new QSensor(QByteArray(), this);
+ connect(sensor, SIGNAL(availableSensorsChanged()), this, SLOT(loadSensors()));
+}
+
+Explorer::~Explorer()
+{
+}
+
+void Explorer::loadSensors()
+{
+ qDebug() << "Explorer::loadSensors";
+
+ // Clear out anything that's in there now
+ ui.sensors->clear();
+
+ foreach (const QByteArray &type, QSensor::sensorTypes()) {
+ qDebug() << "Found type" << type;
+ foreach (const QByteArray &identifier, QSensor::sensorsForType(type)) {
+ qDebug() << "Found identifier" << identifier;
+ // Don't put in sensors we can't connect to
+ QSensor sensor(type);
+ sensor.setIdentifier(identifier);
+ if (!sensor.connectToBackend()) {
+ qDebug() << "Couldn't connect to" << identifier;
+ continue;
+ }
+
+ qDebug() << "Adding identifier" << identifier;
+ QTreeWidgetItem *item = new QTreeWidgetItem(QStringList() << QString::fromLatin1(identifier));
+ item->setData(0, Qt::UserRole, QString::fromLatin1(type));
+ ui.sensors->addTopLevelItem(item);
+ }
+ }
+
+ if (ui.sensors->topLevelItemCount() == 0) {
+ QTreeWidgetItem *item = new QTreeWidgetItem(QStringList() << tr("No Sensors Found"));
+ item->setData(0, Qt::UserRole, QString());
+ ui.sensors->addTopLevelItem(item);
+ }
+
+ ui.sensors->setCurrentItem(0);
+ ui.scrollArea->hide();
+
+ resizeSensors();
+}
+
+void Explorer::resizeSensors()
+{
+ ui.sensors->resizeColumnToContents(0);
+ int length = ui.sensors->header()->length() + 4;
+ ui.sensors->setFixedWidth(length);
+}
+
+void Explorer::on_sensors_currentItemChanged()
+{
+ qDebug() << "Explorer::sensorSelected";
+
+ // Clear out anything that's in there now
+ if (m_sensor) {
+ delete m_sensor;
+ m_sensor = 0;
+ }
+ clearSensorProperties();
+ clearReading();
+ ui.scrollArea->hide();
+
+ // Check that we've selected an item
+ QTreeWidgetItem *item = ui.sensors->currentItem();
+ if (!item) {
+ qWarning() << "Didn't select an item!";
+ return;
+ }
+
+ QByteArray type = item->data(0, Qt::UserRole).toString().toLatin1();
+ QByteArray identifier = item->data(0, Qt::DisplayRole).toString().toLatin1();
+
+ if (type.isEmpty()) {
+ // Uh oh, there aren't any sensors.
+ // The user has clicked the dummy list entry so just ignore it.
+ return;
+ }
+
+ // Connect to the sensor so we can probe it
+ m_sensor = new QSensor(type, this);
+ connect(m_sensor, SIGNAL(readingChanged()), this, SLOT(sensor_changed()));
+ m_sensor->setIdentifier(identifier);
+ if (!m_sensor->connectToBackend()) {
+ delete m_sensor;
+ m_sensor = 0;
+ qWarning() << "Can't connect to the sensor!";
+ return;
+ }
+
+ ui.scrollArea->show();
+ loadSensorProperties();
+ loadReading();
+
+ adjustTableColumns(ui.sensorprops);
+ adjustTableColumns(ui.reading);
+ QTimer::singleShot(100, this, SLOT(adjustSizes()));
+}
+
+void Explorer::clearReading()
+{
+ ui.reading->setRowCount(0);
+}
+
+void Explorer::loadReading()
+{
+ // Probe the reading using Qt's meta-object facilities
+ QSensorReading *reading = m_sensor->reading();
+ const QMetaObject *mo = reading->metaObject();
+ int firstProperty = QSensorReading::staticMetaObject.propertyOffset();
+
+ ui.reading->setRowCount(mo->propertyCount() - firstProperty);
+
+ for (int i = firstProperty; i < mo->propertyCount(); ++i) {
+ int row = i - firstProperty;
+ QTableWidgetItem *index;
+ if (row == 0)
+ // timestamp is not available via index
+ index = new QTableWidgetItem(QLatin1String("N/A"));
+ else
+ index = new QTableWidgetItem(QVariant(row - 1).toString());
+ QTableWidgetItem *prop = new QTableWidgetItem(mo->property(i).name());
+ QString typeName = QLatin1String(mo->property(i).typeName());
+ int crap = typeName.lastIndexOf("::");
+ if (crap != -1)
+ typeName = typeName.mid(crap + 2);
+ QTableWidgetItem *type = new QTableWidgetItem(typeName);
+ QTableWidgetItem *value = new QTableWidgetItem();
+
+ index->setFlags(value->flags() ^ Qt::ItemIsEditable);
+ prop->setFlags(value->flags() ^ Qt::ItemIsEditable);
+ type->setFlags(value->flags() ^ Qt::ItemIsEditable);
+ value->setFlags(value->flags() ^ Qt::ItemIsEditable);
+
+ ui.reading->setItem(row, 0, index);
+ ui.reading->setItem(row, 1, prop);
+ ui.reading->setItem(row, 2, type);
+ ui.reading->setItem(row, 3, value);
+ }
+}
+
+void Explorer::clearSensorProperties()
+{
+ ui.sensorprops->setRowCount(0);
+}
+
+void Explorer::loadSensorProperties()
+{
+ ignoreItemChanged = true;
+
+ // Probe the sensor using Qt's meta-object facilities
+ const QMetaObject *mo = m_sensor->metaObject();
+ int firstProperty = QSensor::staticMetaObject.propertyOffset();
+
+ int rows = mo->propertyCount() - firstProperty;
+ ui.sensorprops->setRowCount(rows);
+
+ int offset = 0;
+ for (int i = firstProperty; i < mo->propertyCount(); ++i) {
+ int row = i - firstProperty - offset;
+ QLatin1String name(mo->property(i).name());
+ if (name == "sensorid" ||
+ //name == "type" ||
+ name == "reading" ||
+ name == "connected" ||
+ name == "running" ||
+ name == "supportsPolling") {
+ ++offset;
+ continue;
+ }
+ QTableWidgetItem *prop = new QTableWidgetItem(name);
+ QString typeName = QLatin1String(mo->property(i).typeName());
+ int crap = typeName.lastIndexOf("::");
+ if (crap != -1)
+ typeName = typeName.mid(crap + 2);
+ QTableWidgetItem *type = new QTableWidgetItem(typeName);
+ QVariant v = mo->property(i).read(m_sensor);
+ QString val;
+ if (typeName == "qrangelist") {
+ qrangelist rl = v.value<qrangelist>();
+ QStringList out;
+ foreach (const qrange &r, rl) {
+ if (r.first == r.second)
+ out << QString("%1 Hz").arg(r.first);
+ else
+ out << QString("%1-%2 Hz").arg(r.first).arg(r.second);
+ }
+ val = out.join(", ");
+ } else if (typeName == "qoutputrangelist") {
+ qoutputrangelist rl = v.value<qoutputrangelist>();
+ QStringList out;
+ foreach (const qoutputrange &r, rl) {
+ out << QString("(%1, %2) += %3").arg(r.minimum).arg(r.maximum).arg(r.accuracy);
+ }
+ val = out.join(", ");
+ } else {
+ val = v.toString();
+ }
+ QTableWidgetItem *value = new QTableWidgetItem(val);
+
+ prop->setFlags(value->flags() ^ Qt::ItemIsEditable);
+ type->setFlags(value->flags() ^ Qt::ItemIsEditable);
+ if (!mo->property(i).isWritable()) {
+ // clear the editable flag
+ value->setFlags(value->flags() ^ Qt::ItemIsEditable);
+ }
+
+ ui.sensorprops->setItem(row, 0, prop);
+ ui.sensorprops->setItem(row, 1, type);
+ ui.sensorprops->setItem(row, 2, value);
+ }
+
+ // We don't add all properties
+ ui.sensorprops->setRowCount(rows - offset);
+
+ ignoreItemChanged = false;
+}
+
+void Explorer::showEvent(QShowEvent *event)
+{
+ // Once we're visible, load the sensors
+ // (don't delay showing the UI while we load plugins, connect to backends, etc.)
+ QTimer::singleShot(0, this, SLOT(loadSensors()));
+
+ QMainWindow::showEvent(event);
+}
+
+// Resize columns to fit the space.
+// This shouldn't be so hard!
+void Explorer::adjustTableColumns(QTableWidget *table)
+{
+ if (table->rowCount() == 0) {
+ table->setFixedHeight(0);
+ return;
+ }
+
+ // At least this is easy to do
+ table->resizeColumnsToContents();
+ int length = table->verticalHeader()->length();
+ length += (length / static_cast<qreal>(table->verticalHeader()->count())); // Add 1 more (the header itself)
+#ifdef MAEMO5
+ length += 10; // required for N900 UI
+#endif
+ table->setFixedHeight(length);
+
+ int columns = table->columnCount();
+ QList<int> width;
+ int suggestedWidth = 0;
+ for (int i = 0; i < columns; ++i) {
+ int cwidth = table->columnWidth(i);
+ width << cwidth;
+ suggestedWidth += cwidth;
+ }
+
+ int actualWidth = table->size().width();
+ //qDebug() << "suggestedWidth" << suggestedWidth << "actualWidth" << actualWidth;
+
+ // We only scale the columns up, we don't scale down
+ if (actualWidth <= suggestedWidth)
+ return;
+
+ qreal multiplier = actualWidth / static_cast<qreal>(suggestedWidth);
+ int currentSpace = 4;
+ for (int i = 0; i < columns; ++i) {
+ width[i] = multiplier * width[i];
+ currentSpace += width[i];
+ }
+
+ // It ends up too big due to cell decorations or something.
+ // Make things smaller one pixel at a time in round robin fashion until we're good.
+ int i = 0;
+ while (currentSpace > actualWidth) {
+ --width[i];
+ --currentSpace;
+ i = (i + 1) % columns;
+ }
+
+ for (int i = 0; i < columns; ++i) {
+ table->setColumnWidth(i, width[i]);
+ }
+
+ table->setMinimumWidth(suggestedWidth);
+}
+
+void Explorer::adjustSizes()
+{
+ adjustTableColumns(ui.reading);
+ adjustTableColumns(ui.sensorprops);
+}
+
+void Explorer::resizeEvent(QResizeEvent *event)
+{
+ resizeSensors();
+ adjustSizes();
+
+ QMainWindow::resizeEvent(event);
+}
+
+void Explorer::on_start_clicked()
+{
+ m_sensor->start();
+ QTimer::singleShot(0, this, SLOT(loadSensorProperties()));
+}
+
+void Explorer::on_stop_clicked()
+{
+ m_sensor->stop();
+ QTimer::singleShot(0, this, SLOT(loadSensorProperties()));
+}
+
+void Explorer::sensor_changed()
+{
+ QSensorReading *reading = m_sensor->reading();
+ filter(reading);
+}
+
+bool Explorer::filter(QSensorReading *reading)
+{
+ const QMetaObject *mo = reading->metaObject();
+ int firstProperty = QSensorReading::staticMetaObject.propertyOffset();
+
+ for (int i = firstProperty; i < mo->propertyCount(); ++i) {
+ int row = i - firstProperty;
+ QString typeName = QLatin1String(mo->property(i).typeName());
+ int crap = typeName.lastIndexOf("::");
+ if (crap != -1)
+ typeName = typeName.mid(crap + 2);
+ QLatin1String name(mo->property(i).name());
+ QTableWidgetItem *value = ui.reading->item(row, 3);
+ QVariant val = mo->property(i).read(reading);
+ if (typeName == "qtimestamp") {
+ value->setText(QString("%1").arg(val.value<qtimestamp>()));
+ } else if (typeName == "LightLevel") {
+ QString text;
+ switch (val.toInt()) {
+ case 1:
+ text = "Dark";
+ break;
+ case 2:
+ text = "Twilight";
+ break;
+ case 3:
+ text = "Light";
+ break;
+ case 4:
+ text = "Bright";
+ break;
+ case 5:
+ text = "Sunny";
+ break;
+ default:
+ text = "Undefined";
+ break;
+ }
+ value->setText(text);
+ } else {
+ value->setText(val.toString());
+ }
+ }
+
+ adjustTableColumns(ui.reading);
+ //QTimer::singleShot(0, this, SLOT(adjustSizes()));
+
+ return false;
+}
+
+void Explorer::on_sensorprops_itemChanged(QTableWidgetItem *item)
+{
+ if (ignoreItemChanged)
+ return;
+ if (!(item->flags() & Qt::ItemIsEditable))
+ return;
+
+ int row = item->row();
+ QString name = ui.sensorprops->item(row, 0)->text();
+ QVariant value = item->text();
+
+ qDebug() << "setProperty" << name << value;
+ m_sensor->setProperty(name.toLatin1().constData(), QVariant(value));
+
+ QTimer::singleShot(0, this, SLOT(loadSensorProperties()));
+}
+
diff --git a/examples/sensors/sensor_explorer/explorer.h b/examples/sensors/sensor_explorer/explorer.h
new file mode 100644
index 00000000..4ffe140f
--- /dev/null
+++ b/examples/sensors/sensor_explorer/explorer.h
@@ -0,0 +1,83 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the examples of the Qt Mobility Components.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef EXPLORER_H
+#define EXPLORER_H
+
+#include <QMainWindow>
+#include <ui_explorer.h>
+#include <qsensor.h>
+
+class Explorer : public QMainWindow, public QSensorFilter
+{
+ Q_OBJECT
+public:
+ Explorer(QWidget *parent = 0);
+ ~Explorer();
+
+ bool filter(QSensorReading *reading);
+
+private slots:
+ void loadSensors();
+ void on_sensors_currentItemChanged();
+ void on_sensorprops_itemChanged(QTableWidgetItem *item);
+ void on_start_clicked();
+ void on_stop_clicked();
+ void sensor_changed();
+ void adjustSizes();
+ void loadSensorProperties();
+
+private:
+ void showEvent(QShowEvent *event);
+ void resizeEvent(QResizeEvent *event);
+
+ void clearReading();
+ void loadReading();
+ void clearSensorProperties();
+ void adjustTableColumns(QTableWidget *table);
+ void resizeSensors();
+
+ Ui::Explorer ui;
+ QSensor *m_sensor;
+ bool ignoreItemChanged;
+};
+
+#endif
+
diff --git a/examples/sensors/sensor_explorer/explorer.ui b/examples/sensors/sensor_explorer/explorer.ui
new file mode 100644
index 00000000..166e9c36
--- /dev/null
+++ b/examples/sensors/sensor_explorer/explorer.ui
@@ -0,0 +1,406 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>Explorer</class>
+ <widget class="QMainWindow" name="Explorer">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>760</width>
+ <height>636</height>
+ </rect>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="windowTitle">
+ <string>MainWindow</string>
+ </property>
+ <widget class="QWidget" name="centralwidget">
+ <layout class="QVBoxLayout" name="verticalLayout_4">
+ <property name="spacing">
+ <number>9</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="label">
+ <property name="text">
+ <string>Sensors that were detected on the device are listed in the list on the left, grouped by type. The reading properties for the sensor will be presented on the right.</string>
+ </property>
+ <property name="textFormat">
+ <enum>Qt::AutoText</enum>
+ </property>
+ <property name="wordWrap">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QWidget" name="widget" native="true">
+ <layout class="QHBoxLayout" name="horizontalLayout">
+ <property name="spacing">
+ <number>9</number>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <item>
+ <widget class="QWidget" name="widget_2" native="true">
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <property name="spacing">
+ <number>9</number>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="label_2">
+ <property name="text">
+ <string>Sensor</string>
+ </property>
+ <property name="buddy">
+ <cstring>sensors</cstring>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QTreeWidget" name="sensors">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Minimum" vsizetype="Expanding">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="alternatingRowColors">
+ <bool>true</bool>
+ </property>
+ <property name="selectionBehavior">
+ <enum>QAbstractItemView::SelectRows</enum>
+ </property>
+ <property name="rootIsDecorated">
+ <bool>false</bool>
+ </property>
+ <property name="itemsExpandable">
+ <bool>false</bool>
+ </property>
+ <property name="expandsOnDoubleClick">
+ <bool>false</bool>
+ </property>
+ <attribute name="headerVisible">
+ <bool>false</bool>
+ </attribute>
+ <attribute name="headerVisible">
+ <bool>false</bool>
+ </attribute>
+ <column>
+ <property name="text">
+ <string notr="true">Sensor</string>
+ </property>
+ </column>
+ <item>
+ <property name="text">
+ <string notr="true">dummy.accelerometer</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QScrollArea" name="scrollArea">
+ <property name="frameShape">
+ <enum>QFrame::NoFrame</enum>
+ </property>
+ <property name="widgetResizable">
+ <bool>true</bool>
+ </property>
+ <widget class="QWidget" name="scrollAreaWidgetContents">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>477</width>
+ <height>556</height>
+ </rect>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout_5">
+ <property name="spacing">
+ <number>9</number>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <item>
+ <widget class="QWidget" name="widget_4" native="true">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Minimum">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout_3">
+ <property name="spacing">
+ <number>9</number>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="label_4">
+ <property name="text">
+ <string>Sensor Properties</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QTableWidget" name="sensorprops">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Minimum">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="verticalScrollBarPolicy">
+ <enum>Qt::ScrollBarAlwaysOff</enum>
+ </property>
+ <property name="alternatingRowColors">
+ <bool>true</bool>
+ </property>
+ <property name="columnCount">
+ <number>3</number>
+ </property>
+ <attribute name="verticalHeaderVisible">
+ <bool>false</bool>
+ </attribute>
+ <attribute name="verticalHeaderVisible">
+ <bool>false</bool>
+ </attribute>
+ <row>
+ <property name="text">
+ <string notr="true">1</string>
+ </property>
+ </row>
+ <column>
+ <property name="text">
+ <string>Name</string>
+ </property>
+ </column>
+ <column>
+ <property name="text">
+ <string>Type</string>
+ </property>
+ </column>
+ <column>
+ <property name="text">
+ <string>Value</string>
+ </property>
+ </column>
+ <item row="0" column="0">
+ <property name="text">
+ <string notr="true">supportedIntervals</string>
+ </property>
+ </item>
+ <item row="0" column="1">
+ <property name="text">
+ <string notr="true">qrangelist</string>
+ </property>
+ </item>
+ <item row="0" column="2">
+ <property name="text">
+ <string/>
+ </property>
+ </item>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QWidget" name="widget_3" native="true">
+ <layout class="QHBoxLayout" name="horizontalLayout_2">
+ <property name="spacing">
+ <number>9</number>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <item>
+ <widget class="QPushButton" name="start">
+ <property name="text">
+ <string>start</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="stop">
+ <property name="text">
+ <string>stop</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="horizontalSpacer">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QWidget" name="widget_5" native="true">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Minimum">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout_2">
+ <property name="spacing">
+ <number>9</number>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="label_6">
+ <property name="text">
+ <string>Reading Properties</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QTableWidget" name="reading">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Minimum">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="verticalScrollBarPolicy">
+ <enum>Qt::ScrollBarAlwaysOff</enum>
+ </property>
+ <property name="alternatingRowColors">
+ <bool>true</bool>
+ </property>
+ <property name="columnCount">
+ <number>4</number>
+ </property>
+ <attribute name="verticalHeaderVisible">
+ <bool>false</bool>
+ </attribute>
+ <attribute name="verticalHeaderVisible">
+ <bool>false</bool>
+ </attribute>
+ <row>
+ <property name="text">
+ <string notr="true">1</string>
+ </property>
+ </row>
+ <row>
+ <property name="text">
+ <string notr="true">2</string>
+ </property>
+ </row>
+ <column>
+ <property name="text">
+ <string>Index</string>
+ </property>
+ </column>
+ <column>
+ <property name="text">
+ <string>Value</string>
+ </property>
+ </column>
+ <column>
+ <property name="text">
+ <string>Type</string>
+ </property>
+ </column>
+ <column>
+ <property name="text">
+ <string>Value</string>
+ </property>
+ </column>
+ <item row="0" column="0">
+ <property name="text">
+ <string notr="true">0</string>
+ </property>
+ </item>
+ <item row="0" column="1">
+ <property name="text">
+ <string notr="true">x</string>
+ </property>
+ </item>
+ <item row="0" column="2">
+ <property name="text">
+ <string notr="true">qreal</string>
+ </property>
+ </item>
+ <item row="0" column="3">
+ <property name="text">
+ <string>9.8</string>
+ </property>
+ </item>
+ <item row="1" column="0">
+ <property name="text">
+ <string notr="true">0</string>
+ </property>
+ </item>
+ <item row="1" column="1">
+ <property name="text">
+ <string notr="true">changeOfBeingEaten</string>
+ </property>
+ </item>
+ <item row="1" column="2">
+ <property name="text">
+ <string notr="true">bool</string>
+ </property>
+ </item>
+ <item row="1" column="3">
+ <property name="text">
+ <string>true</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <spacer name="verticalSpacer">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>0</width>
+ <height>18</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </widget>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QStatusBar" name="statusbar"/>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/examples/sensors/sensor_explorer/main.cpp b/examples/sensors/sensor_explorer/main.cpp
new file mode 100644
index 00000000..63ef1b9d
--- /dev/null
+++ b/examples/sensors/sensor_explorer/main.cpp
@@ -0,0 +1,50 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the examples of the Qt Mobility Components.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "explorer.h"
+
+int main(int argc, char **argv)
+{
+ QApplication app(argc, argv);
+ Explorer explorer;
+ explorer.show();
+ return app.exec();
+}
+
diff --git a/examples/sensors/sensor_explorer/sensor_explorer.pro b/examples/sensors/sensor_explorer/sensor_explorer.pro
new file mode 100644
index 00000000..0868f309
--- /dev/null
+++ b/examples/sensors/sensor_explorer/sensor_explorer.pro
@@ -0,0 +1,16 @@
+TEMPLATE=app
+TARGET=sensor_explorer
+QT=core gui sensors
+
+FORMS=\
+ explorer.ui
+
+HEADERS=\
+ explorer.h
+
+SOURCES=\
+ explorer.cpp\
+ main.cpp
+
+maemo5:DEFINES+=MAEMO5
+
diff --git a/examples/sensors/sensors.pro b/examples/sensors/sensors.pro
new file mode 100644
index 00000000..adc00c7e
--- /dev/null
+++ b/examples/sensors/sensors.pro
@@ -0,0 +1,9 @@
+TEMPLATE = subdirs
+
+SUBDIRS += \
+ accel\
+ cubehouse\
+ grueapp\
+ grueplugin\
+ sensor_explorer
+
diff --git a/qtsensors.pro b/qtsensors.pro
index 1ef95372..f7bf2a0f 100644
--- a/qtsensors.pro
+++ b/qtsensors.pro
@@ -20,3 +20,8 @@ module_qtsensors_examples.depends = module_qtsensors_src
module_qtsensors_examples.CONFIG = no_default_target no_default_install
}
+SUBDIRS += module_qtsensors_snippets
+module_qtsensors_snippets.subdir = doc/src/snippets
+module_qtsensors_snippets.target = module-qtsensors-snippets
+module_qtsensors_snippets.depends = module_qtsensors_src
+