updates for 0.9.3
authorplaa <plaa@180e2498-e6e9-4542-8430-84ac67f01cd8>
Fri, 14 Aug 2009 21:35:21 +0000 (21:35 +0000)
committerplaa <plaa@180e2498-e6e9-4542-8430-84ac67f01cd8>
Fri, 14 Aug 2009 21:35:21 +0000 (21:35 +0000)
git-svn-id: https://openrocket.svn.sourceforge.net/svnroot/openrocket/trunk@18 180e2498-e6e9-4542-8430-84ac67f01cd8

93 files changed:
ChangeLog
TODO
datafiles/examples/Hybrid rocket with dual parachute deployment.ork [new file with mode: 0644]
datafiles/examples/Roll-stabilized rocket.ork [new file with mode: 0644]
datafiles/examples/Three-stage rocket.ork [new file with mode: 0644]
datafiles/thrustcurves/zero-files [new file with mode: 0644]
html/actions/.htaccess [new file with mode: 0644]
html/actions/reportbug.php [new file with mode: 0644]
html/actions/testbugreport.html [new file with mode: 0644]
html/robots.txt [new file with mode: 0644]
pix-src/icon/body-highlight.lights [new file with mode: 0644]
pix-src/icon/icon-016-4bit.png [new file with mode: 0644]
pix-src/icon/icon-016-8bit.png [new file with mode: 0644]
pix-src/icon/icon-016.png [new file with mode: 0644]
pix-src/icon/icon-016.xcf.gz [new file with mode: 0644]
pix-src/icon/icon-032-4bit.png [new file with mode: 0644]
pix-src/icon/icon-032-8bit.png [new file with mode: 0644]
pix-src/icon/icon-032.png [new file with mode: 0644]
pix-src/icon/icon-032.xcf.gz [new file with mode: 0644]
pix-src/icon/icon-048-4bit.png [new file with mode: 0644]
pix-src/icon/icon-048-8bit.png [new file with mode: 0644]
pix-src/icon/icon-048.png [new file with mode: 0644]
pix-src/icon/icon-048.xcf.gz [new file with mode: 0644]
pix-src/icon/icon-064-4bit.png [new file with mode: 0644]
pix-src/icon/icon-064-8bit.png [new file with mode: 0644]
pix-src/icon/icon-064.png [new file with mode: 0644]
pix-src/icon/icon-064.xcf.gz [new file with mode: 0644]
pix-src/icon/icon-256-1.png [new file with mode: 0644]
pix-src/icon/icon-256.png [new file with mode: 0644]
pix-src/icon/icon-256.xcf.gz [new file with mode: 0644]
pix-src/icon/icon-large-1.xcf.gz [new file with mode: 0644]
pix-src/icon/icon-large-2.xcf.gz [new file with mode: 0644]
pix-src/icon/icon-large-3.xcf.gz [new file with mode: 0644]
pix-src/icon/icon-simple.xcf.gz [new file with mode: 0644]
pix-src/icon/icon-windows.ico [new file with mode: 0644]
pix-src/icon/icon-windows.xcf.gz [new file with mode: 0644]
pix-src/icon/icon.xcf.gz [new file with mode: 0644]
pix/icon/icon-016.png [new file with mode: 0644]
pix/icon/icon-032.png [new file with mode: 0644]
pix/icon/icon-048.png [new file with mode: 0644]
pix/icon/icon-064.png [new file with mode: 0644]
pix/icon/icon-256.png [new file with mode: 0644]
src/net/sf/openrocket/database/Database.java
src/net/sf/openrocket/database/DatabaseStore.java [new file with mode: 0644]
src/net/sf/openrocket/database/Databases.java
src/net/sf/openrocket/file/GeneralMotorLoader.java [new file with mode: 0644]
src/net/sf/openrocket/file/GeneralRocketLoader.java
src/net/sf/openrocket/file/MotorLoader.java
src/net/sf/openrocket/file/OpenRocketLoader.java
src/net/sf/openrocket/file/RASPMotorLoader.java [new file with mode: 0644]
src/net/sf/openrocket/file/RockSimMotorLoader.java [new file with mode: 0644]
src/net/sf/openrocket/file/simplesax/DelegatorHandler.java [new file with mode: 0644]
src/net/sf/openrocket/file/simplesax/ElementHandler.java [new file with mode: 0644]
src/net/sf/openrocket/file/simplesax/NullElementHandler.java [new file with mode: 0644]
src/net/sf/openrocket/file/simplesax/PlainTextHandler.java [new file with mode: 0644]
src/net/sf/openrocket/file/simplesax/SimpleSAX.java [new file with mode: 0644]
src/net/sf/openrocket/gui/adaptors/DoubleModel.java
src/net/sf/openrocket/gui/adaptors/MaterialModel.java
src/net/sf/openrocket/gui/components/SelectableLabel.java [new file with mode: 0644]
src/net/sf/openrocket/gui/components/URLLabel.java
src/net/sf/openrocket/gui/configdialog/EllipticalFinSetConfig.java
src/net/sf/openrocket/gui/configdialog/InnerTubeConfig.java
src/net/sf/openrocket/gui/configdialog/MotorConfig.java
src/net/sf/openrocket/gui/dialogs/AboutDialog.java [new file with mode: 0644]
src/net/sf/openrocket/gui/dialogs/BugDialog.java [deleted file]
src/net/sf/openrocket/gui/dialogs/BugReportDialog.java [new file with mode: 0644]
src/net/sf/openrocket/gui/dialogs/ComponentAnalysisDialog.java
src/net/sf/openrocket/gui/dialogs/EditMotorConfigurationDialog.java
src/net/sf/openrocket/gui/dialogs/LicenseDialog.java
src/net/sf/openrocket/gui/dialogs/MotorChooserDialog.java [new file with mode: 0644]
src/net/sf/openrocket/gui/dialogs/PreferencesDialog.java
src/net/sf/openrocket/gui/dialogs/WarningDialog.java [new file with mode: 0644]
src/net/sf/openrocket/gui/main/AboutDialog.java [deleted file]
src/net/sf/openrocket/gui/main/BasicFrame.java
src/net/sf/openrocket/gui/main/ComponentTree.java
src/net/sf/openrocket/gui/main/ExceptionHandler.java [new file with mode: 0644]
src/net/sf/openrocket/gui/main/MotorChooserDialog.java [deleted file]
src/net/sf/openrocket/gui/plot/PlotDialog.java
src/net/sf/openrocket/material/Material.java
src/net/sf/openrocket/rocketcomponent/CenteringRing.java
src/net/sf/openrocket/rocketcomponent/ClusterConfiguration.java
src/net/sf/openrocket/rocketcomponent/ExternalComponent.java
src/net/sf/openrocket/rocketcomponent/InnerTube.java
src/net/sf/openrocket/rocketcomponent/Motor.java
src/net/sf/openrocket/rocketcomponent/RingComponent.java
src/net/sf/openrocket/rocketcomponent/RocketComponent.java
src/net/sf/openrocket/rocketcomponent/ThrustCurveMotor.java
src/net/sf/openrocket/util/GUIUtil.java
src/net/sf/openrocket/util/OpenFileWorker.java
src/net/sf/openrocket/util/Prefs.java
src/net/sf/openrocket/utils/MotorCheck.java [new file with mode: 0644]
src/net/sf/openrocket/utils/MotorCompare.java [new file with mode: 0644]
src/net/sf/openrocket/utils/MotorPrinter.java [new file with mode: 0644]

index 3b25f5263b1c0575cea3326aedc29ea935ed7544..25bdb73829c6623d5ff3e5a2204a27b07f1c1a33 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,41 @@
+2009-08-14  Sampo Niskanen
+
+       * Plots ignore trailing NaN values
+       
+2009-08-13  Sampo Niskanen
+
+       * [BUG] Added fin cant for elliptical fins
+
+2009-08-12  Sampo Niskanen
+
+       * Warning dialog when loading files
+       * [BUG] Unnecessary warnings when loading files
+
+2009-08-09  Sampo Niskanen
+
+       * [BUG] Fixed various bugs in motor loading (e.g. mass calculation,
+         more rigorous input checking etc)
+
+2009-08-08  Sampo Niskanen
+
+       * Refactored motor loading and "Simple XML" loading classes
+       * Implemented RockSim motor definition file loading
+
+2009-08-07  Sampo Niskanen
+
+       * Created window icons and took into use
+       * Changed motor burn time and avg. thrust calculations to be
+         NFPA 1125 compliant
+
+2009-08-03  Sampo Niskanen
+
+       * Automatic bug reporting when uncaught exceptions occur
+
+2009-07-29  Sampo Niskanen
+
+       * Clustered inner tube splitting
+       * [BUG] Copy-pasted inner tubes shared motors
+
 2009-07-28  Sampo Niskanen
 
        * Opening of example rocket designs
diff --git a/TODO b/TODO
index e90dd13601c0e501f2b1d9ccea15648b758c6e44..40eb4493bd3a741bddb028f4891f7d613b76a25a 100644 (file)
--- a/TODO
+++ b/TODO
@@ -5,19 +5,16 @@ Feature roadmap for OpenRocket 1.0
 Must-have:
 
 - Store custom materials
-- Create application icon and take into use
 - Better error/warning dialogs when reading/writing files
-- Error dialog for uncaught exceptions
-- Split cluster into separate components
 - Example rocket designs (hybrid w/ dual deployment, staged rocket)
+- Read more thrust curve formats / go through thrust curves and correct errors
+- Add styrofoam and depron materials
 
 
 Bugs:
 
-- Debug stage simulation
-- Sometimes saves wrong?
-- Simulation time step not loaded correctly from files??
 - JTree text is cropped unnecessarily
+- Inner tube cluster rotation, edit with spinner arrows, slider wrong
 
 
 Maybe:
@@ -27,8 +24,8 @@ Maybe:
 - Make ThicknessRingComponent implement RadialParent and allow
   attaching components to a TubeCoupler
 - Reading thrust curves from external directory
-- Read more thrust curve formats / go through thrust curves and correct errors
 - Only schedule rocket figure update instead of each time updating it
+- Allow only one instance of OpenRocket running
 
 
 Postponed:
@@ -46,4 +43,8 @@ Done:
 - Change FreeformFinSet to throw checked exceptions
 - Fix engine block icons
 - Exporting flight data
+- Split cluster into separate components
+- Create application icon and take into use
+- Error dialog for uncaught exceptions
+- Check where plot data ends (all rest NaN)
 
diff --git a/datafiles/examples/Hybrid rocket with dual parachute deployment.ork b/datafiles/examples/Hybrid rocket with dual parachute deployment.ork
new file mode 100644 (file)
index 0000000..27d7f7b
--- /dev/null
@@ -0,0 +1,1053 @@
+<?xml version='1.0' encoding='utf-8'?>
+<openrocket version="1.0" creator="OpenRocket 0.9.3pre">
+  <rocket>
+    <name>Hybrid rocket with dual parachute deployment</name>
+    <comment>This design demonstrates a high-power hybrid rocket with dual parachute deployment.  The drogue parachute is deployed at apogee and the main parachute at 200 m altitude.
+
+The design is based on, but not the same as, the HyperLOC 835 rocket. </comment>
+    <designer>Sampo Niskanen (based on HyperLOC 835)</designer>
+    <motorconfiguration configid="18fb418a-f06c-4932-bf00-d1b0bc98d284"/>
+    <motorconfiguration configid="35ee425c-d252-4f71-9159-06501cbd9db6" default="true"/>
+    <motorconfiguration configid="5333860a-6bfa-4e75-bf9e-6608bf53ee08"/>
+    <referencetype>maximum</referencetype>
+
+    <subcomponents>
+      <stage>
+        <name>Sustainer</name>
+        <overridemass>2.5500000000000003</overridemass>
+        <overridesubcomponents>true</overridesubcomponents>
+
+        <subcomponents>
+          <nosecone>
+            <name>Nose cone</name>
+            <finish>normal</finish>
+            <material type="bulk" density="1050.0">Polystyrene</material>
+            <length>0.34</length>
+            <thickness>0.0020</thickness>
+            <shape>ogive</shape>
+            <shapeparameter>1.0</shapeparameter>
+            <aftradius>0.051</aftradius>
+            <aftshoulderradius>0.049</aftshoulderradius>
+            <aftshoulderlength>0.085</aftshoulderlength>
+            <aftshoulderthickness>0.0020</aftshoulderthickness>
+            <aftshouldercapped>true</aftshouldercapped>
+          </nosecone>
+
+          <bodytube>
+            <name>Front body tube</name>
+            <finish>normal</finish>
+            <material type="bulk" density="680.0">Cardboard</material>
+            <length>0.38</length>
+            <thickness>0.0020</thickness>
+            <radius>auto</radius>
+
+            <subcomponents>
+              <parachute>
+                <name>Main parachute</name>
+                <position type="top">0.22</position>
+                <overridemass>0.15</overridemass>
+                <overridesubcomponents>false</overridesubcomponents>
+                <comment>The main parachute is deployed by an altimeter at a specific altitude, which can be configured on the &quot;General&quot; tab.</comment>
+                <packedlength>0.07</packedlength>
+                <packedradius>0.035</packedradius>
+                <radialposition>0.0</radialposition>
+                <radialdirection>0.0</radialdirection>
+                <cd>auto</cd>
+                <deployevent>altitude</deployevent>
+                <deployaltitude>200.0</deployaltitude>
+                <deploydelay>0.0</deploydelay>
+                <material type="surface" density="0.067">Ripstop nylon</material>
+                <diameter>1.3</diameter>
+                <linecount>6</linecount>
+                <linelength>1.0</linelength>
+                <linematerial type="line" density="0.0035">Braided nylon (3 mm, 1/8 in)</linematerial>
+              </parachute>
+
+              <shockcord>
+                <name>Shock cord</name>
+                <position type="top">0.28</position>
+                <overridemass>0.15</overridemass>
+                <overridesubcomponents>false</overridesubcomponents>
+                <packedlength>0.03</packedlength>
+                <packedradius>0.04</packedradius>
+                <radialposition>0.0</radialposition>
+                <radialdirection>0.0</radialdirection>
+                <cordlength>10.0</cordlength>
+                <material type="line" density="0.0016">Elastic cord (flat 25mm, 1 in)</material>
+              </shockcord>
+            </subcomponents>
+          </bodytube>
+
+          <bodytube>
+            <name>Payload body section</name>
+            <finish>normal</finish>
+            <material type="bulk" density="680.0">Cardboard</material>
+            <length>0.025</length>
+            <thickness>0.0030</thickness>
+            <radius>auto</radius>
+
+            <subcomponents>
+              <innertube>
+                <name>Payload tube coupler</name>
+                <position type="middle">-0.0</position>
+                <material type="bulk" density="680.0">Cardboard</material>
+                <length>0.15</length>
+                <radialposition>0.0</radialposition>
+                <radialdirection>0.0</radialdirection>
+                <outerradius>0.049</outerradius>
+                <thickness>0.0050</thickness>
+                <clusterconfiguration>single</clusterconfiguration>
+                <clusterscale>1.0</clusterscale>
+                <clusterrotation>0.0</clusterrotation>
+
+                <subcomponents>
+                  <masscomponent>
+                    <name>Payload</name>
+                    <position type="middle">-0.0</position>
+                    <packedlength>0.14</packedlength>
+                    <packedradius>0.04</packedradius>
+                    <radialposition>0.0</radialposition>
+                    <radialdirection>0.0</radialdirection>
+                    <mass>0.45</mass>
+                  </masscomponent>
+
+                  <bulkhead>
+                    <name>Bulkhead</name>
+                    <position type="bottom">0.0</position>
+                    <material type="bulk" density="630.0">Plywood (birch)</material>
+                    <length>0.0060</length>
+                    <radialposition>0.0</radialposition>
+                    <radialdirection>0.0</radialdirection>
+                    <outerradius>auto</outerradius>
+                  </bulkhead>
+
+                  <bulkhead>
+                    <name>Bulkhead</name>
+                    <position type="top">0.0</position>
+                    <material type="bulk" density="630.0">Plywood (birch)</material>
+                    <length>0.0060</length>
+                    <radialposition>0.0</radialposition>
+                    <radialdirection>0.0</radialdirection>
+                    <outerradius>auto</outerradius>
+                  </bulkhead>
+                </subcomponents>
+              </innertube>
+            </subcomponents>
+          </bodytube>
+
+          <bodytube>
+            <name>Upper section of rear body tube</name>
+            <finish>normal</finish>
+            <material type="bulk" density="680.0">Cardboard</material>
+            <length>0.4</length>
+            <thickness>0.0020</thickness>
+            <radius>auto</radius>
+
+            <subcomponents>
+              <tubecoupler>
+                <name>Tube coupler</name>
+                <position type="bottom">0.08</position>
+                <material type="bulk" density="680.0">Cardboard</material>
+                <length>0.16</length>
+                <radialposition>0.0</radialposition>
+                <radialdirection>0.0</radialdirection>
+                <outerradius>auto</outerradius>
+                <thickness>0.0020</thickness>
+              </tubecoupler>
+
+              <bulkhead>
+                <name>Bulkhead</name>
+                <position type="bottom">-0.08</position>
+                <material type="bulk" density="630.0">Plywood (birch)</material>
+                <length>0.0060</length>
+                <radialposition>0.0</radialposition>
+                <radialdirection>0.0</radialdirection>
+                <outerradius>auto</outerradius>
+              </bulkhead>
+
+              <shockcord>
+                <name>Shock cord</name>
+                <position type="bottom">-0.1</position>
+                <overridemass>0.15</overridemass>
+                <overridesubcomponents>false</overridesubcomponents>
+                <packedlength>0.03</packedlength>
+                <packedradius>0.04</packedradius>
+                <radialposition>0.0</radialposition>
+                <radialdirection>0.0</radialdirection>
+                <cordlength>10.0</cordlength>
+                <material type="line" density="0.0016">Elastic cord (flat 25mm, 1 in)</material>
+              </shockcord>
+
+              <parachute>
+                <name>Drogue parachute</name>
+                <position type="bottom">-0.12</position>
+                <overridemass>0.03</overridemass>
+                <overridesubcomponents>false</overridesubcomponents>
+                <comment>The drouge parachute of the rocket is deployed by an altimeter at apogee, therefore it is set to deploy at &quot;Apogee&quot;.</comment>
+                <packedlength>0.07</packedlength>
+                <packedradius>0.035</packedradius>
+                <radialposition>0.0</radialposition>
+                <radialdirection>0.0</radialdirection>
+                <cd>auto</cd>
+                <deployevent>apogee</deployevent>
+                <deployaltitude>200.0</deployaltitude>
+                <deploydelay>0.0</deploydelay>
+                <material type="surface" density="0.067">Ripstop nylon</material>
+                <diameter>0.5</diameter>
+                <linecount>6</linecount>
+                <linelength>1.0</linelength>
+                <linematerial type="line" density="0.0035">Braided nylon (3 mm, 1/8 in)</linematerial>
+              </parachute>
+            </subcomponents>
+          </bodytube>
+
+          <bodytube>
+            <name>Lower section of rear body tube</name>
+            <finish>normal</finish>
+            <material type="bulk" density="680.0">Cardboard</material>
+            <length>0.74</length>
+            <thickness>0.0020</thickness>
+            <radius>auto</radius>
+
+            <subcomponents>
+              <innertube>
+                <name>Motor mount tube</name>
+                <position type="bottom">-0.01</position>
+                <material type="bulk" density="680.0">Cardboard</material>
+                <length>0.6900000000000001</length>
+                <radialposition>0.0</radialposition>
+                <radialdirection>0.0</radialdirection>
+                <outerradius>0.027999999999999997</outerradius>
+                <thickness>0.0010000000000000009</thickness>
+                <clusterconfiguration>single</clusterconfiguration>
+                <clusterscale>1.0</clusterscale>
+                <clusterrotation>0.0</clusterrotation>
+                <motormount>
+                  <motor configid="18fb418a-f06c-4932-bf00-d1b0bc98d284">
+                    <manufacturer>HyperTEK</manufacturer>
+                    <designation>I145</designation>
+                    <diameter>0.054</diameter>
+                    <length>0.546</length>
+                    <delay>none</delay>
+                  </motor>
+                  <motor configid="35ee425c-d252-4f71-9159-06501cbd9db6">
+                    <manufacturer>HyperTEK</manufacturer>
+                    <designation>J115</designation>
+                    <diameter>0.054</diameter>
+                    <length>0.614</length>
+                    <delay>0.0</delay>
+                  </motor>
+                  <motor configid="5333860a-6bfa-4e75-bf9e-6608bf53ee08">
+                    <manufacturer>HyperTEK</manufacturer>
+                    <designation>J330</designation>
+                    <diameter>0.054</diameter>
+                    <length>0.787</length>
+                    <delay>0.0</delay>
+                  </motor>
+                  <ignitionevent>automatic</ignitionevent>
+                  <ignitiondelay>0.0</ignitiondelay>
+                  <overhang>0.02</overhang>
+                </motormount>
+              </innertube>
+
+              <centeringring>
+                <name>Centering ring</name>
+                <position type="bottom">-0.65</position>
+                <material type="bulk" density="630.0">Plywood (birch)</material>
+                <length>0.0060</length>
+                <radialposition>0.0</radialposition>
+                <radialdirection>0.0</radialdirection>
+                <outerradius>auto</outerradius>
+                <innerradius>auto</innerradius>
+              </centeringring>
+
+              <centeringring>
+                <name>Centering ring</name>
+                <position type="bottom">-0.29</position>
+                <material type="bulk" density="630.0">Plywood (birch)</material>
+                <length>0.0060</length>
+                <radialposition>0.0</radialposition>
+                <radialdirection>0.0</radialdirection>
+                <outerradius>auto</outerradius>
+                <innerradius>auto</innerradius>
+              </centeringring>
+
+              <centeringring>
+                <name>Centering ring</name>
+                <position type="bottom">-0.01</position>
+                <material type="bulk" density="630.0">Plywood (birch)</material>
+                <length>0.0060</length>
+                <radialposition>0.0</radialposition>
+                <radialdirection>0.0</radialdirection>
+                <outerradius>auto</outerradius>
+                <innerradius>auto</innerradius>
+              </centeringring>
+
+              <freeformfinset>
+                <name>Freeform fin set</name>
+                <position type="bottom">0.0</position>
+                <finish>normal</finish>
+                <material type="bulk" density="630.0">Plywood (birch)</material>
+                <fincount>3</fincount>
+                <rotation>0.0</rotation>
+                <thickness>0.0030</thickness>
+                <crosssection>rounded</crosssection>
+                <cant>0.0</cant>
+                <finpoints>
+                  <point x="0.0" y="0.0"/>
+                  <point x="0.18" y="0.11"/>
+                  <point x="0.235" y="0.11"/>
+                  <point x="0.28501473684210527" y="0.0142821052631579"/>
+                  <point x="0.28500000000000003" y="0.0"/>
+                </finpoints>
+              </freeformfinset>
+
+              <engineblock>
+                <name>Engine block</name>
+                <position type="bottom">0.0</position>
+                <overridemass>0.048</overridemass>
+                <overridesubcomponents>false</overridesubcomponents>
+                <comment>This engine block holds the motor from falling out of the rear end.</comment>
+                <material type="bulk" density="680.0">Cardboard</material>
+                <length>0.0010</length>
+                <radialposition>0.0</radialposition>
+                <radialdirection>0.0</radialdirection>
+                <outerradius>auto</outerradius>
+                <thickness>0.026499999999999996</thickness>
+              </engineblock>
+
+              <launchlug>
+                <name>Rail pin</name>
+                <position type="bottom">-0.03</position>
+                <overridemass>0.01</overridemass>
+                <overridesubcomponents>false</overridesubcomponents>
+                <comment>Rail pins can be approximated by launch lugs that have approximately the same frontal area and length of the rail pin.</comment>
+                <finish>normal</finish>
+                <material type="bulk" density="680.0">Cardboard</material>
+                <radius>0.0034999999999999996</radius>
+                <length>0.006999999999999999</length>
+                <thickness>0.0034999999999999996</thickness>
+                <radialdirection>59.99999999999999</radialdirection>
+              </launchlug>
+
+              <launchlug>
+                <name>Rail pin</name>
+                <position type="bottom">-0.77</position>
+                <overridemass>0.01</overridemass>
+                <overridesubcomponents>false</overridesubcomponents>
+                <comment>Rail pins can be approximated by launch lugs that have approximately the same frontal area and length of the rail pin.</comment>
+                <finish>normal</finish>
+                <material type="bulk" density="680.0">Cardboard</material>
+                <radius>0.0034999999999999996</radius>
+                <length>0.006999999999999999</length>
+                <thickness>0.0034999999999999996</thickness>
+                <radialdirection>59.99999999999999</radialdirection>
+              </launchlug>
+            </subcomponents>
+          </bodytube>
+        </subcomponents>
+      </stage>
+    </subcomponents>
+  </rocket>
+
+  <simulations>
+    <simulation status="uptodate">
+      <name>Simulation 1</name>
+      <simulator>RK4Simulator</simulator>
+      <calculator>BarrowmanCalculator</calculator>
+      <conditions>
+        <configid>18fb418a-f06c-4932-bf00-d1b0bc98d284</configid>
+        <launchrodlength>2.5</launchrodlength>
+        <launchrodangle>0.0</launchrodangle>
+        <launchroddirection>0.0</launchroddirection>
+        <windaverage>2.0</windaverage>
+        <windturbulence>0.1</windturbulence>
+        <launchaltitude>0.0</launchaltitude>
+        <launchlatitude>65.0</launchlatitude>
+        <atmosphere model="isa"/>
+        <timestep>0.05</timestep>
+      </conditions>
+      <flightdata maxaltitude="657.30" maxvelocity="108.76" maxacceleration="66.562" maxmach="0.32023" timetoapogee="12.061" flighttime="66.249" groundhitvelocity="6.5965">
+        <databranch name="Main" types="Time,Altitude,Vertical velocity,Vertical acceleration,Total velocity,Total acceleration,Position upwind,Position parallel to wind,Lateral distance,Lateral direction,Lateral velocity,Lateral acceleration,Angle of attack,Roll rate,Pitch rate,Yaw rate,Mass,CP location,CG location,Stability margin calibers,Mach number,Reynolds number,Thrust,Drag force,Drag coefficient,Axial drag coefficient,Friction drag coefficient,Pressure drag coefficient,Base drag coefficient,Normal force coefficient,Pitch moment coefficient,Yaw moment coefficient,Side force coefficient,Roll moment coefficient,Roll forcing coefficient,Roll damping coefficient,Pitch damping coefficient,Reference length,Reference area,Vertical orientation (zenith),Lateral orientation (azimuth),Wind velocity,Air temperature,Air pressure,Speed of sound,Simulation time step,Computation time">
+          <event time="0" type="launch"/>
+          <event time="0" type="ignition"/>
+          <event time="0.050000" type="liftoff"/>
+          <event time="0.30000" type="launchrod"/>
+          <event time="3.7107" type="burnout"/>
+          <event time="12.161" type="apogee"/>
+          <event time="12.211" type="recoverydevicedeployment"/>
+          <event time="38.567" type="recoverydevicedeployment"/>
+          <event time="66.249" type="groundhit"/>
+          <event time="66.249" type="simulationend"/>
+          <datapoint>0,0,0,21.230,2.2483,21.230,0,0,0,0,0,0,1.5708,0,0,0,3.6180,NaN,NaN,NaN,0.0066051,286507,112.37,0,0.62576,0,0.48901,0.016744,0.12001,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,0.10200,0.0081713,1.5708,0,2.2483,288.15,101325,340.39,0.050000,0.0087198</datapoint>
+          <datapoint>0.25000,1.7035,14.277,59.128,14.437,59.128,0,0,0,0,0,0,0.14878,0,0,0,3.6068,NaN,NaN,NaN,0.042413,1839453,249.29,0.57983,0.48318,0.55597,0.34616,0.016785,0.12023,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,0.10200,0.0081713,1.5708,0,2.1399,288.14,101305,340.38,0.050000,0.070739</datapoint>
+          <datapoint>0.50000,7.0779,28.545,54.982,28.618,54.982,-0.011636,0,0.011636,3.1416,0.10586,0.28487,0.064037,0,0.080595,0,3.5935,1.3163,1.1214,1.9102,0.084080,3644888,234.93,2.0529,0.48381,0.50117,0.34598,0.016910,0.12092,0.67390,1.2856,0,0,0,0,0,0.0017118,0.10200,0.0081713,1.5633,0,2.1501,288.10,101242,340.36,0.050000,0.17293</datapoint>
+          <datapoint>0.75000,15.888,41.760,50.680,41.824,50.728,-0.026071,0,0.026071,3.1416,0.094125,2.2172,0.013666,0,0.18440,0,3.5798,1.3582,1.1195,2.3403,0.12289,5323380,220.99,4.2456,0.48477,0.48566,0.34570,0.017102,0.12196,0.12720,0.29349,0,0,0,0,0,0.0041880,0.10200,0.0081713,1.5290,0,2.2227,288.05,101139,340.33,0.050000,0.27580</datapoint>
+          <datapoint>0.99540,27.617,53.637,46.192,53.734,46.555,0.10087,0,0.10087,0,1.0948,5.7998,0.024310,0,-0.10838,0,3.5663,1.3910,1.1176,2.6799,0.15791,6833181,207.86,7.0441,0.48594,0.48872,0.34536,0.017338,0.12324,0.26267,0.70480,0,0,0,0,0,-8.7490e-4,0.10200,0.0081713,1.4865,0,2.1275,287.97,101001,340.28,0.036720,0.36789</datapoint>
+          <datapoint>1.2633,43.606,65.644,45.259,65.814,45.477,0.60897,0,0.60897,0,2.6386,4.4464,0.0039831,0,0.14505,0,3.5209,1.4101,1.1111,2.9313,0.19345,8359285,205.11,10.526,0.48743,0.48751,0.34493,0.017641,0.12486,0.041111,0.11947,0,0,0,0,0,0.0010385,0.10200,0.0081713,1.4948,0,2.0957,287.87,100814,340.22,0.041878,0.41176</datapoint>
+          <datapoint>1.5156,61.615,76.977,42.475,77.147,42.499,1.3748,0,1.3748,0,3.2965,1.4100,0.015570,0,0.0013326,0,3.4538,1.3574,1.1012,2.5120,0.22681,9785359,195.17,14.520,0.48912,0.49028,0.34444,0.017985,0.12669,0.14604,0.36684,0,0,0,0,0,6.3282e-8,0.10200,0.0081713,1.5199,0,1.8269,287.75,100602,340.15,0.033267,0.47974</datapoint>
+          <datapoint>1.7806,83.463,87.705,38.417,87.913,38.691,2.3197,0,2.3197,0,3.9917,4.5916,0.0076680,0,-0.096421,0,3.4298,1.4073,1.0975,3.0366,0.25852,11132330,185.04,18.854,0.49097,0.49126,0.34391,0.018368,0.12869,0.080015,0.24323,0,0,0,0,0,-2.5446e-4,0.10200,0.0081713,1.4944,0,2.0470,287.61,100346,340.06,0.038910,0.57102</datapoint>
+          <datapoint>2.0221,105.73,96.554,34.644,96.803,34.773,3.4211,0,3.4211,0,5.0546,2.9969,0.0011845,0,-0.094533,0,3.4022,1.3721,1.0933,2.7337,0.28474,12237184,174.52,22.879,0.49268,0.49269,0.34342,0.018727,0.13054,0.010720,0.029506,0,0,0,0,0,-2.0114e-4,0.10200,0.0081713,1.5002,0,1.8854,287.46,100085,339.97,0.043934,0.61670</datapoint>
+          <datapoint>2.2726,130.92,103.98,21.976,104.23,22.048,4.7516,0,4.7516,0,5.5142,1.7831,0.0022801,0,0.070746,0,3.3504,1.3714,1.0851,2.8066,0.30666,13150140,133.26,26.544,0.49425,0.49428,0.34297,0.019059,0.13223,0.020716,0.058046,0,0,0,0,0,9.6697e-5,0.10200,0.0081713,1.5044,0,1.6420,287.30,99790,339.87,0.044050,0.69505</datapoint>
+          <datapoint>2.5285,158.06,107.53,7.2745,107.80,7.3796,6.2359,0,6.2359,0,6.0664,1.2412,1.2412e-4,0,0.053539,0,3.3312,1.4154,1.0820,3.2687,0.31727,13572458,85.486,28.367,0.49505,0.49505,0.34274,0.019229,0.13309,0.0012759,0.0041189,0,0,0,0,0,5.1683e-5,0.10200,0.0081713,1.4996,0,1.5859,287.12,99471,339.77,0.044675,0.70803</datapoint>
+          <datapoint>2.7637,183.49,108.47,0.73115,108.75,0.98436,7.6775,0,7.6775,0,6.1685,0.65909,6.1352e-4,0,0.061067,0,3.3228,1.3733,1.0807,2.8690,0.32018,13665813,63.965,28.815,0.49528,0.49528,0.34267,0.019277,0.13333,0.0055531,0.015866,0,0,0,0,0,6.6016e-5,0.10200,0.0081713,1.4993,0,1.6709,286.96,99173,339.67,0.049105,0.71850</datapoint>
+          <datapoint>3.0112,210.30,107.82,-5.9963,108.11,6.0166,9.2341,0,9.2341,0,6.4032,0.49426,0.0011525,0,0.047621,0,3.3140,1.4144,1.0792,3.2865,0.31839,13556861,41.178,28.395,0.49514,0.49515,0.34271,0.019248,0.13318,0.011876,0.038991,0,0,0,0,0,4.0595e-5,0.10200,0.0081713,1.4957,0,1.5817,286.78,98859,339.56,0.049850,0.74715</datapoint>
+          <datapoint>3.2608,236.95,105.45,-12.825,105.77,12.835,10.823,0,10.823,0,6.2949,0.50455,0.0018412,0,0.061200,0,3.3075,1.3719,1.0782,2.8799,0.31158,13235396,17.066,27.080,0.49462,0.49464,0.34286,0.019137,0.13262,0.016713,0.048061,0,0,0,0,0,7.0015e-5,0.10200,0.0081713,1.4952,0,1.8888,286.61,98546,339.46,0.049975,0.76044</datapoint>
+          <datapoint>3.5107,262.87,101.90,-15.412,102.24,15.423,12.395,0,12.395,0,6.2885,0.56415,8.1483e-4,0,-0.029303,0,3.3070,1.3728,1.0781,2.8892,0.30127,12767397,6.6384,25.199,0.49385,0.49386,0.34308,0.018974,0.13180,0.0073724,0.021318,0,0,0,0,0,-1.7179e-5,0.10200,0.0081713,1.4904,0,2.0057,286.44,98242,339.35,0.049995,0.77515</datapoint>
+          <datapoint>3.7607,287.84,97.794,-16.793,98.125,16.803,13.942,0,13.942,0,6.0839,0.57765,3.6228e-5,0,0.040520,0,3.3070,1.3734,1.0781,2.8950,0.28924,12229762,0,23.116,0.49300,0.49300,0.34333,0.018793,0.13088,3.2692e-4,9.1079e-4,0,0,0,0,0,3.5659e-5,0.10200,0.0081713,1.4887,0,1.9638,286.28,97949,339.26,0.049999,0.79714</datapoint>
+          <datapoint>4.0107,311.77,93.668,-16.176,94.010,16.194,15.453,0,15.453,0,5.9934,0.76701,0.0020026,0,-0.015331,0,3.3070,1.3712,1.0781,2.8738,0.27718,11694744,0,21.134,0.49217,0.49219,0.34356,0.018620,0.12999,0.018157,0.052186,0,0,0,0,0,-5.5610e-6,0.10200,0.0081713,1.4874,0,2.0213,286.12,97668,339.16,0.050000,0.80760</datapoint>
+          <datapoint>4.2607,334.69,89.692,-15.646,90.024,15.653,16.929,0,16.929,0,5.8266,0.47396,2.3381e-4,0,-0.021814,0,3.3070,1.4146,1.0781,3.2992,0.26550,11178515,0,19.306,0.49141,0.49141,0.34378,0.018460,0.12916,0.0023982,0.0079244,0,0,0,0,0,-1.2279e-5,0.10200,0.0081713,1.4846,0,1.8989,285.97,97400,339.07,0.050000,0.81799</datapoint>
+          <datapoint>4.5107,356.62,85.844,-15.125,86.200,15.139,18.372,0,18.372,0,5.7178,0.63562,0.0016313,0,0.0056786,0,3.3070,1.3713,1.0781,2.8743,0.25429,10684983,0,17.638,0.49070,0.49072,0.34398,0.018314,0.12841,0.014763,0.042431,0,0,0,0,0,9.0749e-7,0.10200,0.0081713,1.4815,0,2.1123,285.83,97142,338.98,0.050000,0.84451</datapoint>
+          <datapoint>4.7607,377.62,82.118,-14.690,82.456,14.692,19.785,0,19.785,0,5.6030,0.23191,0.0021479,0,-0.0024582,0,3.3070,1.4124,1.0781,3.2780,0.24331,10203737,0,16.085,0.49005,0.49007,0.34417,0.018177,0.12770,0.022112,0.072483,0,0,0,0,0,-1.8585e-7,0.10200,0.0081713,1.4781,0,1.8565,285.70,96896,338.90,0.050000,0.85511</datapoint>
+          <datapoint>5.0107,397.69,78.505,-14.206,78.858,14.230,21.175,0,21.175,0,5.4943,0.83173,0.0052921,0,0.0020562,0,3.3070,1.3673,1.0781,2.8358,0.23274,9742710,0,14.668,0.48944,0.48958,0.34435,0.018052,0.12704,0.048323,0.13704,0,0,0,0,0,1.4218e-7,0.10200,0.0081713,1.4815,0,1.9566,285.56,96661,338.82,0.050000,0.86548</datapoint>
+          <datapoint>5.2607,416.88,74.999,-13.863,75.357,13.864,22.526,0,22.526,0,5.3468,0.21688,0.0021872,0,-0.047323,0,3.3070,1.4122,1.0781,3.2753,0.22246,9295757,0,13.350,0.48888,0.48890,0.34451,0.017937,0.12643,0.022501,0.073780,0,0,0,0,0,-8.2468e-5,0.10200,0.0081713,1.4711,0,1.9885,285.44,96436,338.75,0.050000,0.88060</datapoint>
+          <datapoint>5.5107,435.20,71.581,-13.484,71.979,13.489,23.856,0,23.856,0,5.2795,0.33886,6.4111e-4,0,-0.011887,0,3.3070,1.4136,1.0781,3.2892,0.21253,8865893,0,12.145,0.48836,0.48836,0.34466,0.017831,0.12587,0.0065691,0.021613,0,0,0,0,0,-5.7035e-6,0.10200,0.0081713,1.4650,0,2.2789,285.32,96221,338.67,0.050000,0.89145</datapoint>
+          <datapoint>5.7607,452.68,68.254,-13.136,68.660,13.142,25.164,0,25.164,0,5.1843,0.39453,5.6934e-4,0,0.013050,0,3.3070,1.3717,1.0781,2.8786,0.20277,8445059,0,11.020,0.48788,0.48788,0.34480,0.017731,0.12535,0.0051282,0.014754,0,0,0,0,0,7.5550e-6,0.10200,0.0081713,1.4626,0,2.2658,285.21,96016,338.61,0.050000,0.90169</datapoint>
+          <datapoint>6.0107,469.33,65.009,-12.840,65.411,12.841,26.448,0,26.448,0,5.0911,0.21008,0.0020566,0,-0.018134,0,3.3070,1.4120,1.0781,3.2737,0.19322,8034618,0,9.9768,0.48742,0.48744,0.34493,0.017639,0.12485,0.021130,0.069190,0,0,0,0,0,-1.6072e-5,0.10200,0.0081713,1.4578,0,2.1477,285.10,95820,338.54,0.050000,0.91288</datapoint>
+          <datapoint>6.2607,485.19,61.838,-12.531,62.246,12.536,27.713,0,27.713,0,5.0248,0.34342,6.7778e-4,0,0.0010023,0,3.3070,1.3714,1.0781,2.8756,0.18390,7635906,0,9.0121,0.48700,0.48700,0.34505,0.017553,0.12440,0.0061033,0.017551,0,0,0,0,0,5.4215e-8,0.10200,0.0081713,1.4570,0,2.0862,285.00,95635,338.48,0.050000,0.96360</datapoint>
+          <datapoint>6.5107,500.26,58.741,-12.259,59.149,12.264,28.958,0,28.958,0,4.9328,0.33957,0.0012049,0,0.018289,0,3.3070,1.3708,1.0781,2.8696,0.17478,7247103,0,8.1191,0.48661,0.48662,0.34517,0.017474,0.12397,0.010863,0.031151,0,0,0,0,0,1.9992e-5,0.10200,0.0081713,1.4544,0,2.0076,284.90,95458,338.42,0.050000,0.97395</datapoint>
+          <datapoint>6.7607,514.56,55.706,-12.024,56.109,12.026,30.182,0,30.182,0,4.8647,0.19861,0.0014822,0,-0.016716,0,3.3070,1.4123,1.0781,3.2769,0.16582,6867078,0,7.2906,0.48625,0.48626,0.34527,0.017400,0.12357,0.015196,0.049814,0,0,0,0,0,-1.8561e-5,0.10200,0.0081713,1.4494,0,1.8480,284.81,95298,338.36,0.050000,1.0020</datapoint>
+          <datapoint>7.0107,528.12,52.730,-11.780,53.143,11.784,31.392,0,31.392,0,4.8087,0.28986,0.0012845,0,0.0076673,0,3.3070,1.3705,1.0781,2.8672,0.15709,6497416,0,6.5274,0.48591,0.48592,0.34537,0.017332,0.12321,0.011577,0.033190,0,0,0,0,0,4.3528e-6,0.10200,0.0081713,1.4473,0,1.8067,284.72,95147,338.31,0.050000,1.0124</datapoint>
+          <datapoint>7.2607,540.93,49.815,-11.570,50.247,11.573,32.581,0,32.581,0,4.7126,0.25427,7.7538e-4,0,0.043239,0,3.3070,1.3710,1.0781,2.8716,0.14855,6137270,0,5.8244,0.48560,0.48560,0.34546,0.017269,0.12287,0.0069777,0.019882,0,0,0,0,0,1.5485e-4,0.10200,0.0081713,1.4403,0,1.8644,284.63,95004,338.26,0.050000,1.0231</datapoint>
+          <datapoint>7.5107,553.03,46.945,-11.367,47.423,11.371,33.754,0,33.754,0,4.6684,0.29886,0.0028113,0,0.030008,0,3.3070,1.3689,1.0781,2.8509,0.14022,5787006,0,5.1795,0.48531,0.48535,0.34554,0.017211,0.12256,0.025434,0.072427,0,0,0,0,0,8.3730e-5,0.10200,0.0081713,1.4314,0,2.0518,284.56,94868,338.21,0.050000,1.0522</datapoint>
+          <datapoint>7.7607,564.41,44.125,-11.196,44.622,11.198,34.912,0,34.912,0,4.6008,0.20779,7.1807e-5,0,0.044076,0,3.3070,1.3716,1.0781,2.8774,0.13195,5440454,0,4.5779,0.48504,0.48504,0.34562,0.017157,0.12226,6.4475e-4,0.0016511,0,0,0,0,0,2.0403e-4,0.10200,0.0081713,1.4215,0,2.0417,284.48,94741,338.17,0.050000,1.0631</datapoint>
+          <datapoint>8.0107,575.09,41.345,-11.050,41.840,11.050,36.057,0,36.057,0,4.5651,0.052979,0.0054703,0,-0.028226,0,3.3070,1.4081,1.0781,3.2359,0.12374,5097025,0,4.0199,0.48479,0.48494,0.34569,0.017107,0.12199,0.056561,0.18312,0,0,0,0,0,-9.5171e-5,0.10200,0.0081713,1.4114,0,1.8505,284.41,94622,338.12,0.050000,1.0733</datapoint>
+          <datapoint>8.2607,585.09,38.607,-10.863,39.162,10.866,37.194,0,37.194,0,4.5230,0.25626,0.0041859,0,0.023229,0,3.3070,1.3673,1.0781,2.8359,0.11584,4767132,0,3.5164,0.48457,0.48465,0.34576,0.017062,0.12174,0.037992,0.10767,0,0,0,0,0,7.3572e-5,0.10200,0.0081713,1.4064,0,2.0484,284.35,94510,338.08,0.050000,1.0835</datapoint>
+          <datapoint>8.5107,594.40,35.912,-10.706,36.531,10.712,38.315,0,38.315,0,4.4451,0.34166,0.010473,0,0.057556,0,3.3070,1.3612,1.0781,2.7754,0.10807,4443686,0,3.0586,0.48436,0.48489,0.34582,0.017020,0.12152,0.096638,0.26770,0,0,0,0,0,5.1907e-4,0.10200,0.0081713,1.3968,0,2.2558,284.29,94406,338.05,0.050000,1.1007</datapoint>
+          <datapoint>8.7607,603.05,33.250,-10.594,33.909,10.596,39.417,0,39.417,0,4.3731,0.22329,0.0048470,0,0.088685,0,3.3070,1.3666,1.0781,2.8286,0.10032,4121946,0,2.6297,0.48417,0.48428,0.34588,0.016982,0.12131,0.044059,0.12320,0,0,0,0,0,0.0014304,0.10200,0.0081713,1.3781,0,2.2818,284.23,94310,338.01,0.050000,1.1110</datapoint>
+          <datapoint>9.0107,611.03,30.616,-10.484,31.367,10.485,40.504,0,40.504,0,4.3194,0.17832,0.0025970,0,0.10426,0,3.3070,1.3688,1.0781,2.8502,0.092808,3810619,0,2.2474,0.48399,0.48403,0.34593,0.016947,0.12112,0.023462,0.064560,0,0,0,0,0,0.0023103,0.10200,0.0081713,1.3540,0,2.5058,284.18,94220,337.98,0.050000,1.1215</datapoint>
+          <datapoint>9.2607,618.35,28.004,-10.403,28.796,10.404,41.580,0,41.580,0,4.2942,0.054358,0.0069518,0,-0.092478,0,3.3070,1.4065,1.0781,3.2200,0.085206,3496197,0,1.8928,0.48383,0.48407,0.34597,0.016915,0.12094,0.072085,0.23427,0,0,0,0,0,-0.0021568,0.10200,0.0081713,1.3289,0,2.4093,284.13,94139,337.95,0.050000,1.1705</datapoint>
+          <datapoint>9.5107,625.03,25.414,-10.318,26.223,10.318,42.653,0,42.653,0,4.2897,0.0021116,0.012127,0,-0.061425,0,3.3070,1.4016,1.0781,3.1717,0.077600,3182209,0,1.5698,0.48368,0.48439,0.34602,0.016885,0.12078,0.12726,0.40477,0,0,0,0,0,-0.0011474,0.10200,0.0081713,1.3096,0,2.1748,284.09,94064,337.93,0.050000,1.1943</datapoint>
+          <datapoint>9.7607,631.06,22.846,-10.211,23.686,10.211,43.725,0,43.725,0,4.2898,0.063362,0.0051103,0,-0.030316,0,3.3070,1.4082,1.0781,3.2368,0.070098,2873027,0,1.2781,0.48355,0.48368,0.34605,0.016859,0.12064,0.052751,0.17109,0,0,0,0,0,-3.4254e-4,0.10200,0.0081713,1.2985,0,1.9649,284.05,93997,337.90,0.050000,1.2060</datapoint>
+          <datapoint>10.011,636.46,20.305,-10.099,21.226,10.100,44.795,0,44.795,0,4.2662,0.18085,0.016482,0,0.029641,0,3.3070,1.3553,1.0781,2.7179,0.062821,2573523,0,1.0281,0.48344,0.48473,0.34609,0.016836,0.12051,0.15441,0.41928,0,0,0,0,0,4.0778e-4,0.10200,0.0081713,1.2917,0,1.9171,284.01,93936,337.88,0.050000,1.2216</datapoint>
+          <datapoint>10.261,641.22,17.794,-9.9898,18.897,9.9954,45.855,0,45.855,0,4.2030,0.33531,0.052754,0,0.068221,0,3.3070,1.3246,1.0781,2.4172,0.055932,2290323,0,0.83253,0.48334,0.49546,0.34612,0.016817,0.12041,0.54062,1.3040,0,0,0,0,0,0.0027253,0.10200,0.0081713,1.2802,0,2.1587,283.98,93883,337.86,0.050000,1.2482</datapoint>
+          <datapoint>10.511,645.36,15.304,-9.9347,16.447,9.9389,46.895,0,46.895,0,4.1223,0.29038,0.060503,0,0.12131,0,3.3070,1.3187,1.0781,2.3596,0.048683,1992761,0,0.63476,0.48325,0.49888,0.34614,0.016799,0.12031,0.63136,1.4784,0,0,0,0,0,0.011376,0.10200,0.0081713,1.2563,0,1.9019,283.96,93837,337.85,0.050000,1.2590</datapoint>
+          <datapoint>10.761,648.87,12.827,-9.8751,14.133,9.8794,47.917,0,47.917,0,4.0530,0.29170,0.082677,0,0.16625,0,3.3070,1.3031,1.0781,2.2065,0.041833,1711845,0,0.47958,0.48317,0.51067,0.34616,0.016784,0.12023,0.90697,1.9723,0,0,0,0,0,0.028938,0.10200,0.0081713,1.2203,0,1.8792,283.93,93798,337.83,0.050000,1.2693</datapoint>
+          <datapoint>11.011,651.77,10.364,-9.8253,11.865,9.8293,48.922,0,48.922,0,3.9862,0.28013,0.11110,0,0.20841,0,3.3070,1.2853,1.0781,2.0320,0.035122,1436853,0,0.35248,0.48657,0.53264,0.34964,0.016772,0.12016,1.2947,2.5663,0,0,0,0,0,0.064518,0.10200,0.0081713,1.1734,0,1.7910,283.91,93765,337.82,0.050000,1.2796</datapoint>
+          <datapoint>11.261,654.06,7.9197,-9.7305,10.009,9.7385,49.908,0,49.908,0,3.8993,0.39566,0.20242,0,0.25735,0,3.3070,1.2410,1.0781,1.5971,0.029629,1211858,0,0.28813,0.49821,0.61199,0.36134,0.016764,0.12011,2.7949,4.3256,0,0,0,0,0,0.13824,0.10200,0.0081713,1.1153,0,2.2210,283.90,93740,337.81,0.050000,1.2898</datapoint>
+          <datapoint>11.511,655.73,5.4937,-9.6753,7.9842,9.6829,50.871,0,50.871,0,3.8023,0.38238,0.28607,0,0.30422,0,3.3070,1.2122,1.0781,1.3154,0.023635,966577,0,0.20022,0.51463,0.66843,0.37780,0.016756,0.12007,4.4932,5.6069,0,0,0,0,0,0.30359,0.10200,0.0081713,1.0449,0,1.9914,283.89,93721,337.81,0.050000,1.3008</datapoint>
+          <datapoint>11.761,656.80,3.0842,-9.6007,6.3041,9.6086,51.809,0,51.809,0,3.7055,0.38993,0.45288,0,0.33738,0,3.3070,1.1751,1.0781,0.95166,0.018662,763114,0,0.11954,0.53302,0.64020,0.39623,0.016751,0.12005,7.9622,3.1227,0,0,0,0,0,0.59895,0.10200,0.0081713,0.96410,0,1.7926,283.88,93709,337.80,0.050000,1.3169</datapoint>
+          <datapoint>12.011,657.28,0.70167,-9.4336,5.4505,9.4469,52.723,0,52.723,0,3.5974,0.50171,0.75047,0,0.33249,0,3.3070,1.1444,1.0781,0.64980,0.016135,659768,0,0.054597,0.54503,0.39117,0.40825,0.016749,0.12003,15.105,-6.7150,0,0,0,0,0,0.77815,0.10200,0.0081713,0.87956,0,1.8077,283.88,93704,337.80,0.050000,1.3706</datapoint>
+          <datapoint>12.262,657.15,-1.7215,-9.6405,5.5922,9.6764,53.619,0,53.619,0,3.5048,0.83336,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.016555,676916,0,2.8243,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9089,283.88,93704,337.80,0.051672,1.3939</datapoint>
+          <datapoint>12.528,656.36,-4.2108,-9.1713,6.4681,9.2189,54.519,0,54.519,0,3.2744,0.93556,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.019148,782988,0,3.7787,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9708,283.88,93712,337.80,0.054236,1.3950</datapoint>
+          <datapoint>12.753,655.19,-6.1960,-8.5984,7.8925,8.6785,55.229,0,55.229,0,3.0323,1.1767,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.023364,955496,0,5.6268,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.3584,283.89,93723,337.81,0.057614,1.3958</datapoint>
+          <datapoint>12.995,653.44,-8.1723,-7.8856,9.2558,7.9931,55.927,0,55.927,0,2.7262,1.3066,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.027399,1120682,0,7.7397,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.3595,283.90,93741,337.81,0.062554,1.3964</datapoint>
+          <datapoint>13.263,650.98,-10.139,-6.9950,10.742,7.1310,56.610,0,56.610,0,2.3654,1.3860,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.031799,1300901,0,10.428,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2594,283.91,93766,337.82,0.070116,1.3970</datapoint>
+          <datapoint>13.489,648.52,-11.607,-6.2085,11.908,6.3615,57.111,0,57.111,0,2.0576,1.3867,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.035248,1442293,0,12.816,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0943,283.93,93792,337.83,0.078598,1.3974</datapoint>
+          <datapoint>13.749,645.31,-13.065,-5.3151,13.120,5.4805,57.600,0,57.600,0,1.7029,1.3363,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.038835,1589478,0,15.562,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9008,283.95,93824,337.84,0.091232,1.3979</datapoint>
+          <datapoint>13.950,642.59,-14.024,-4.6294,14.033,4.8382,57.912,0,57.912,0,1.4214,1.4061,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.041535,1700386,0,17.807,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0976,283.96,93852,337.85,0.10334,1.3982</datapoint>
+          <datapoint>14.180,639.25,-14.966,-3.9125,14.917,4.1669,58.201,0,58.201,0,1.0855,1.4338,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.044150,1807901,0,20.127,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2566,283.98,93885,337.86,0.11999,1.3985</datapoint>
+          <datapoint>14.457,634.97,-15.899,-3.2008,15.693,3.4263,58.451,0,58.451,0,0.72602,1.2225,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.046445,1902522,0,22.284,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9426,284.01,93927,337.88,0.14593,1.3988</datapoint>
+          <datapoint>14.622,632.31,-16.364,-2.8201,16.103,3.0365,58.555,0,58.555,0,0.54066,1.1257,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.047658,1952640,0,23.470,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8281,284.02,93953,337.89,0.16467,1.3990</datapoint>
+          <datapoint>14.810,629.19,-16.819,-2.4168,16.543,2.6547,58.637,0,58.637,0,0.33376,1.0985,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.048957,2006327,0,24.774,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8850,284.04,93983,337.90,0.18834,1.3991</datapoint>
+          <datapoint>15.029,625.47,-17.256,-2.0024,16.990,2.2933,58.684,0,58.684,0,0.090057,1.1178,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.050279,2061057,0,26.139,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0688,284.06,94018,337.91,0.21803,1.3993</datapoint>
+          <datapoint>15.295,620.81,-17.687,-1.6169,17.370,1.8731,58.674,0,58.674,0,0.16238,0.94568,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.051401,2107756,0,27.331,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8974,284.08,94059,337.93,0.26693,1.3994</datapoint>
+          <datapoint>15.628,614.85,-18.089,-1.2080,17.782,1.5018,58.570,0,58.570,0,0.45942,0.89219,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.052617,2158535,0,28.656,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9932,284.11,94111,337.94,0.33294,1.3996</datapoint>
+          <datapoint>16.067,606.84,-18.449,-0.81964,18.159,1.1408,58.293,0,58.293,0,0.80719,0.79344,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.053731,2205410,0,29.904,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0528,284.15,94178,337.97,0.43830,1.3998</datapoint>
+          <datapoint>16.567,597.56,-18.686,-0.47393,18.475,0.68922,57.827,0,57.827,0,1.0574,0.50041,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.054660,2245132,0,30.976,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7942,284.21,94267,338.00,0.50000,1.3999</datapoint>
+          <datapoint>17.067,588.19,-18.800,-0.22816,18.703,0.47734,57.246,0,57.246,0,1.2670,0.41928,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.055330,2274523,0,31.775,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8735,284.27,94371,338.04,0.50000,1.4001</datapoint>
+          <datapoint>17.567,578.78,-18.852,-0.10551,18.811,0.34800,56.571,0,56.571,0,1.4328,0.33162,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.055641,2289218,0,32.169,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9083,284.33,94476,338.07,0.50000,1.4002</datapoint>
+          <datapoint>18.067,569.34,-18.874,-0.043588,18.860,0.28983,55.818,0,55.818,0,1.5761,0.28653,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.055782,2296960,0,32.369,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9850,284.39,94581,338.11,0.50000,1.4004</datapoint>
+          <datapoint>18.567,559.91,-18.882,-0.015407,18.876,0.13702,55.013,0,55.013,0,1.6442,0.13615,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.055822,2300524,0,32.451,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8380,284.45,94686,338.15,0.50000,1.4005</datapoint>
+          <datapoint>19.067,550.46,-18.881,0.0010719,18.883,0.10832,54.178,0,54.178,0,1.6983,0.10832,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.055837,2303054,0,32.504,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8523,284.51,94792,338.18,0.50000,1.4007</datapoint>
+          <datapoint>19.567,541.03,-18.877,0.0087377,18.881,0.014637,53.327,0,53.327,0,1.7042,0.011743,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.055826,2304522,0,32.528,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7209,284.57,94897,338.22,0.50000,1.4009</datapoint>
+          <datapoint>20.067,531.59,-18.870,0.012989,18.877,0.016296,52.476,0,52.476,0,1.6993,0.0098409,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.055806,2305658,0,32.542,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.6853,284.63,95002,338.26,0.50000,1.4010</datapoint>
+          <datapoint>20.567,522.15,-18.863,0.015043,18.871,0.030802,51.623,0,51.623,0,1.7127,0.026879,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.055781,2306539,0,32.549,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7508,284.69,95108,338.29,0.50000,1.4012</datapoint>
+          <datapoint>21.067,512.73,-18.853,0.019061,18.869,0.24871,50.736,0,50.736,0,1.8367,0.24798,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.055770,2308007,0,32.572,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1878,284.76,95213,338.33,0.50000,1.4013</datapoint>
+          <datapoint>21.567,503.30,-18.845,0.016555,18.857,0.18890,49.794,0,49.794,0,1.9308,0.18817,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.055729,2308192,0,32.560,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1971,284.82,95319,338.37,0.50000,1.4015</datapoint>
+          <datapoint>22.067,493.88,-18.837,0.015300,18.846,0.094044,48.817,0,48.817,0,1.9772,0.092791,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.055690,2308518,0,32.551,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1085,284.88,95424,338.41,0.50000,1.4019</datapoint>
+          <datapoint>22.567,484.46,-18.830,0.015964,18.838,0.020386,47.827,0,47.827,0,1.9835,0.012679,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.055659,2309218,0,32.552,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0015,284.94,95533,338.44,0.50000,1.4021</datapoint>
+          <datapoint>23.067,475.05,-18.821,0.017702,18.831,0.12915,46.819,0,46.819,0,2.0475,0.12793,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.055634,2310212,0,32.560,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2282,285.00,95643,338.48,0.50000,1.4023</datapoint>
+          <datapoint>23.567,465.64,-18.812,0.016857,18.821,0.016861,45.795,0,45.795,0,2.0473,3.7858e-4,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.055597,2310707,0,32.555,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0468,285.06,95753,338.52,0.50000,1.4024</datapoint>
+          <datapoint>24.067,456.24,-18.804,0.017336,18.812,0.041566,44.767,0,44.767,0,2.0662,0.037778,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.055567,2311462,0,32.556,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1195,285.12,95864,338.55,0.50000,1.4026</datapoint>
+          <datapoint>24.567,446.84,-18.795,0.017528,18.804,0.053449,43.740,0,43.740,0,2.0410,0.050493,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.055535,2312180,0,32.557,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9698,285.18,95974,338.59,0.50000,1.4027</datapoint>
+          <datapoint>25.067,437.44,-18.786,0.018148,18.796,0.12173,42.735,0,42.735,0,1.9808,0.12037,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.055507,2313011,0,32.561,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8112,285.25,96084,338.63,0.50000,1.4030</datapoint>
+          <datapoint>25.567,428.05,-18.777,0.017146,18.786,0.039895,41.740,0,41.740,0,1.9988,0.036022,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.055470,2313500,0,32.556,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0495,285.31,96195,338.67,0.50000,1.4031</datapoint>
+          <datapoint>26.067,418.67,-18.769,0.017279,18.777,0.029000,40.743,0,40.743,0,1.9871,0.023290,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.055439,2314195,0,32.556,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9544,285.37,96305,338.70,0.50000,1.4033</datapoint>
+          <datapoint>26.567,409.29,-18.760,0.017573,18.769,0.070955,39.741,0,39.741,0,2.0215,0.068745,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.055408,2314937,0,32.558,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1182,285.43,96415,338.74,0.50000,1.4037</datapoint>
+          <datapoint>27.067,399.91,-18.751,0.017332,18.760,0.046180,38.736,0,38.736,0,2.0001,0.042804,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.055375,2315573,0,32.556,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9399,285.49,96525,338.78,0.50000,1.4039</datapoint>
+          <datapoint>27.567,390.53,-18.742,0.017421,18.751,0.060371,37.743,0,37.743,0,1.9712,0.057803,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.055344,2316272,0,32.557,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8900,285.55,96635,338.81,0.50000,1.4041</datapoint>
+          <datapoint>28.067,381.17,-18.733,0.018528,18.745,0.16304,36.778,0,36.778,0,1.8902,0.16198,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.055319,2317217,0,32.565,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.6629,285.61,96745,338.85,0.50000,1.4042</datapoint>
+          <datapoint>28.567,371.80,-18.725,0.016810,18.734,0.075210,35.842,0,35.842,0,1.8536,0.073308,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.055280,2317567,0,32.555,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7507,285.67,96855,338.89,0.50000,1.4044</datapoint>
+          <datapoint>29.067,362.44,-18.716,0.016849,18.725,0.044974,34.920,0,34.920,0,1.8327,0.041698,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.055248,2318224,0,32.555,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7743,285.73,96964,338.92,0.50000,1.4046</datapoint>
+          <datapoint>29.567,353.08,-18.708,0.017211,18.717,0.074491,33.995,0,33.995,0,1.8690,0.072476,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.055218,2318962,0,32.557,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9705,285.79,97074,338.96,0.50000,1.4047</datapoint>
+          <datapoint>30.067,343.73,-18.699,0.017065,18.708,0.056718,33.053,0,33.053,0,1.8960,0.054090,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.055186,2319603,0,32.556,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9717,285.85,97184,339.00,0.50000,1.4049</datapoint>
+          <datapoint>30.567,334.39,-18.690,0.017330,18.700,0.088798,32.095,0,32.095,0,1.9395,0.087091,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.055156,2320332,0,32.557,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0614,285.92,97294,339.03,0.50000,1.4050</datapoint>
+          <datapoint>31.067,325.04,-18.682,0.016881,18.691,0.040030,31.120,0,31.120,0,1.9577,0.036296,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.055123,2320911,0,32.555,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0085,285.98,97403,339.07,0.50000,1.4052</datapoint>
+          <datapoint>31.567,315.70,-18.673,0.018048,18.684,0.15149,30.123,0,30.123,0,2.0329,0.15041,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.055098,2321844,0,32.562,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2431,286.04,97513,339.11,0.50000,1.4053</datapoint>
+          <datapoint>32.067,306.37,-18.664,0.018038,18.676,0.18331,29.083,0,29.083,0,2.1241,0.18242,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.055068,2322573,0,32.564,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.3789,286.10,97622,339.15,0.50000,1.4055</datapoint>
+          <datapoint>32.567,297.04,-18.656,0.016491,18.665,0.11926,28.006,0,28.006,0,2.1832,0.11811,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.055030,2322939,0,32.556,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.3481,286.16,97732,339.18,0.50000,1.4056</datapoint>
+          <datapoint>33.067,287.71,-18.647,0.017603,18.659,0.17788,26.937,0,26.937,0,2.0947,0.17701,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.055005,2323838,0,32.562,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8477,286.22,97841,339.22,0.50000,1.4058</datapoint>
+          <datapoint>33.567,278.39,-18.639,0.016404,18.648,0.12410,25.905,0,25.905,0,2.0332,0.12301,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.054969,2324261,0,32.556,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8616,286.28,97951,339.26,0.50000,1.4060</datapoint>
+          <datapoint>34.067,269.08,-18.631,0.015897,18.639,0.027382,24.886,0,24.886,0,2.0443,0.022295,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.054934,2324774,0,32.551,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0754,286.34,98060,339.29,0.50000,1.4061</datapoint>
+          <datapoint>34.567,259.76,-18.622,0.017558,18.633,0.15486,23.883,0,23.883,0,1.9674,0.15386,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.054911,2325768,0,32.561,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7531,286.40,98169,339.33,0.50000,1.4063</datapoint>
+          <datapoint>35.067,250.45,-18.614,0.016029,18.622,0.044284,22.904,0,22.904,0,1.9467,0.041282,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.054873,2326113,0,32.552,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8893,286.46,98278,339.37,0.50000,1.4064</datapoint>
+          <datapoint>35.567,241.15,-18.606,0.016448,18.614,0.053104,21.925,0,21.925,0,1.9720,0.050493,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.054844,2326824,0,32.554,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0422,286.52,98388,339.40,0.50000,1.4066</datapoint>
+          <datapoint>36.067,231.85,-18.597,0.017743,18.608,0.16035,20.919,0,20.919,0,2.0517,0.15936,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.054820,2327769,0,32.562,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2732,286.58,98497,339.44,0.50000,1.4067</datapoint>
+          <datapoint>36.567,222.55,-18.589,0.016173,18.597,0.077299,19.883,0,19.883,0,2.0895,0.075588,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.054783,2328118,0,32.553,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1945,286.64,98606,339.48,0.50000,1.4069</datapoint>
+          <datapoint>37.067,213.26,-18.581,0.016145,18.589,0.025886,18.836,0,18.836,0,2.0996,0.020234,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.054752,2328735,0,32.552,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1277,286.70,98715,339.51,0.50000,1.4071</datapoint>
+          <datapoint>37.567,203.97,-18.572,0.016740,18.581,0.088034,17.797,0,17.797,0,2.0564,0.086428,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.054724,2329498,0,32.555,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9364,286.76,98824,339.55,0.50000,1.4073</datapoint>
+          <datapoint>38.067,194.69,-18.564,0.016265,18.572,0.017462,16.768,0,16.768,0,2.0595,0.0063548,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.054691,2330046,0,32.553,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0683,286.82,98933,339.59,0.50000,1.4074</datapoint>
+          <datapoint>38.567,185.41,-18.556,0.016398,18.564,0.016564,15.739,0,15.739,0,2.0584,0.0023413,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.054661,2330709,0,32.553,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0551,286.88,99042,339.62,0.50000,1.4076</datapoint>
+          <datapoint>38.802,182.20,-10.557,17.309,11.060,17.319,15.266,0,15.266,0,1.9381,0.59742,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.032560,1389838,0,89.761,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7120,286.96,99184,339.67,0.028869,1.4101</datapoint>
+          <datapoint>39.061,179.85,-8.0577,6.4272,8.5578,6.4277,14.770,0,14.770,0,1.9273,0.085761,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.025194,1075602,0,53.754,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9658,286.98,99208,339.68,0.077788,1.4857</datapoint>
+          <datapoint>39.345,177.72,-7.0589,2.8558,7.5589,2.8569,14.215,0,14.215,0,1.9736,0.080877,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.022253,950164,0,41.944,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0076,286.99,99226,339.68,0.17501,1.4862</datapoint>
+          <datapoint>39.749,174.96,-6.5595,1.2353,7.0590,1.2368,13.412,0,13.412,0,1.9981,0.060773,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.020781,887421,0,36.584,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0124,286.99,99241,339.69,0.40428,1.4863</datapoint>
+          <datapoint>40.249,171.65,-6.6942,-0.26924,6.5616,0.36096,12.443,0,12.443,0,1.8779,0.24042,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.019316,825063,0,31.618,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8331,287.01,99273,339.70,0.50000,1.4865</datapoint>
+          <datapoint>40.749,168.32,-6.6274,0.13345,6.6984,0.37999,11.459,0,11.459,0,2.0558,0.35578,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.019718,842483,0,32.961,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1170,287.03,99312,339.71,0.50000,1.4866</datapoint>
+          <datapoint>41.249,165.00,-6.6604,-0.066023,6.6283,0.16832,10.451,0,10.451,0,1.9784,0.15483,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.019511,833874,0,32.285,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9507,287.06,99351,339.73,0.50000,1.4868</datapoint>
+          <datapoint>41.749,161.67,-6.6438,0.033346,6.6604,0.033352,9.4615,0,9.4615,0,1.9781,6.6617e-4,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.019605,838137,0,32.609,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9780,287.08,99390,339.74,0.50000,1.4870</datapoint>
+          <datapoint>42.249,158.35,-6.6485,-0.0094731,6.6461,0.25768,8.4403,0,8.4403,0,2.1068,0.25751,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.019561,836542,0,32.479,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1523,287.10,99429,339.75,0.50000,1.4872</datapoint>
+          <datapoint>42.749,155.03,-6.6461,0.0049019,6.6489,0.11215,7.4009,0,7.4009,0,2.0508,0.11205,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.019569,837120,0,32.517,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0311,287.12,99468,339.77,0.50000,1.4873</datapoint>
+          <datapoint>43.249,151.70,-6.6451,0.0019374,6.6473,0.18870,6.3991,0,6.3991,0,1.9565,0.18869,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.019564,837126,0,32.511,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9232,287.14,99507,339.78,0.50000,1.4875</datapoint>
+          <datapoint>43.749,148.38,-6.6442,0.0017059,6.6460,0.16204,5.4411,0,5.4411,0,1.8754,0.16203,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.019559,837178,0,32.509,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8469,287.16,99546,339.79,0.50000,1.4876</datapoint>
+          <datapoint>44.249,145.06,-6.6426,0.0032223,6.6458,0.21122,4.4770,0,4.4770,0,1.9810,0.21119,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.019558,837365,0,32.517,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0182,287.19,99585,339.80,0.50000,1.4878</datapoint>
+          <datapoint>44.749,141.74,-6.6427,-7.4415e-5,6.6431,0.11152,3.5004,0,3.5004,0,1.9253,0.11152,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.019549,837237,0,32.501,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9057,287.21,99624,339.82,0.50000,1.4880</datapoint>
+          <datapoint>45.249,138.42,-6.6348,0.015782,6.6516,0.51198,2.4738,0,2.4738,0,2.1812,0.51174,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.019573,838534,0,32.595,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2706,287.23,99663,339.83,0.50000,1.4881</datapoint>
+          <datapoint>45.749,135.10,-6.6436,-0.017611,6.6349,0.053285,1.3769,0,1.3769,0,2.2063,0.050291,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.019523,836633,0,32.441,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2152,287.25,99702,339.84,0.50000,1.4883</datapoint>
+          <datapoint>46.249,131.78,-6.6374,0.012412,6.6442,0.14048,0.25627,0,0.25627,0,2.2763,0.13993,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.019550,838031,0,32.543,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.3008,287.27,99741,339.86,0.50000,1.4884</datapoint>
+          <datapoint>46.749,128.46,-6.6392,-0.0037388,6.6375,0.048840,-0.88795,0,0.88795,3.1416,2.3006,0.048697,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.019529,837388,0,32.487,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.3092,287.29,99779,339.87,0.50000,1.4886</datapoint>
+          <datapoint>47.249,125.15,-6.6183,0.041891,6.6643,0.85941,-1.9310,0,1.9310,3.1416,1.8714,0.85839,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.019608,840991,0,32.761,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7232,287.32,99818,339.88,0.50000,1.4887</datapoint>
+          <datapoint>47.749,121.83,-6.6415,-0.046425,6.6235,0.39035,-2.9151,0,2.9151,3.1416,2.0652,0.38758,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.019487,836053,0,32.371,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1337,287.34,99857,339.90,0.50000,1.4889</datapoint>
+          <datapoint>48.249,118.51,-6.6314,0.020135,6.6432,0.22112,-3.9752,0,3.9752,3.1416,2.1753,0.22021,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.019544,838750,0,32.574,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2137,287.36,99896,339.91,0.50000,1.4894</datapoint>
+          <datapoint>48.749,115.20,-6.6360,-0.0090614,6.6314,0.011309,-5.0621,0,5.0621,3.1416,2.1719,0.0067666,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.019509,837483,0,32.469,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1707,287.38,99935,339.92,0.50000,1.4895</datapoint>
+          <datapoint>49.249,111.88,-6.6322,0.0075304,6.6360,0.041420,-6.1531,0,6.1531,3.1416,2.1923,0.040730,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.019521,838276,0,32.524,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1994,287.40,99974,339.94,0.50000,1.4897</datapoint>
+          <datapoint>49.749,108.56,-6.6284,0.0076849,6.6378,0.40464,-7.1987,0,7.1987,3.1416,1.9900,0.40457,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.019526,838715,0,32.552,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9195,287.42,100013,339.95,0.50000,1.4898</datapoint>
+          <datapoint>50.249,105.25,-6.6321,-0.0074502,6.6294,0.17060,-8.2150,0,8.2150,3.1416,2.0752,0.17044,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.019500,837860,0,32.479,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1051,287.44,100052,339.96,0.50000,1.4900</datapoint>
+          <datapoint>50.749,101.93,-6.6274,0.0093612,6.6349,0.28662,-9.2168,0,9.2168,3.1416,1.9320,0.28647,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.019516,838773,0,32.544,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8821,287.47,100091,339.97,0.50000,1.4902</datapoint>
+          <datapoint>51.249,98.620,-6.6251,0.0046927,6.6344,0.45034,-10.239,0,10.239,3.1416,2.1571,0.45031,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.019514,838917,0,32.548,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2355,287.49,100129,339.99,0.50000,1.4903</datapoint>
+          <datapoint>51.749,95.308,-6.6232,0.0037484,6.6340,0.51059,-11.254,0,11.254,3.1416,1.9019,0.51058,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.019512,839084,0,32.555,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8131,287.51,100168,340.00,0.50000,1.4905</datapoint>
+          <datapoint>52.249,91.995,-6.6288,-0.011163,6.6237,0.12618,-12.189,0,12.189,3.1416,1.8390,0.12569,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.019481,837998,0,32.465,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8171,287.53,100207,340.01,0.50000,1.4906</datapoint>
+          <datapoint>52.749,88.681,-6.6249,0.0077984,6.6289,0.053084,-13.115,0,13.115,3.1416,1.8653,0.052508,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.019495,838860,0,32.525,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8744,287.55,100246,340.03,0.50000,1.4908</datapoint>
+          <datapoint>53.249,85.370,-6.6217,0.0063934,6.6297,0.37735,-14.095,0,14.095,3.1416,2.0539,0.37730,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.019497,839184,0,32.544,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1195,287.57,100285,340.04,0.50000,1.4910</datapoint>
+          <datapoint>53.749,82.058,-6.6251,-0.0068577,6.6219,0.088102,-15.133,0,15.133,3.1416,2.0978,0.087835,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.019473,838408,0,32.477,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1131,287.60,100324,340.05,0.50000,1.4911</datapoint>
+          <datapoint>54.249,78.746,-6.6216,0.0070237,6.6258,0.14264,-16.200,0,16.200,3.1416,2.1691,0.14246,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.019484,839109,0,32.525,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1938,287.62,100363,340.07,0.50000,1.4913</datapoint>
+          <datapoint>54.749,75.439,-6.6098,0.023651,6.6384,0.70377,-17.196,0,17.196,3.1416,1.8174,0.70337,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.019520,840923,0,32.660,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.6963,287.64,100401,340.08,0.50000,1.4916</datapoint>
+          <datapoint>55.249,72.131,-6.6218,-0.024087,6.6160,0.42779,-18.158,0,18.158,3.1416,2.0309,0.42711,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.019454,838296,0,32.450,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1054,287.66,100440,340.09,0.50000,1.4918</datapoint>
+          <datapoint>55.749,68.820,-6.6191,0.0054330,6.6218,0.023256,-19.177,0,19.177,3.1416,2.0422,0.022612,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.019470,839241,0,32.517,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0462,287.68,100479,340.10,0.50000,1.4919</datapoint>
+          <datapoint>56.249,65.512,-6.6155,0.0071608,6.6236,0.36486,-20.243,0,20.243,3.1416,2.2246,0.36479,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.019475,839683,0,32.545,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2878,287.70,100518,340.12,0.50000,1.4921</datapoint>
+          <datapoint>56.749,62.203,-6.6191,-0.0071266,6.6155,0.030388,-21.359,0,21.359,3.1416,2.2394,0.029540,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.019450,838867,0,32.475,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2445,287.72,100557,340.13,0.50000,1.4922</datapoint>
+          <datapoint>57.249,58.894,-6.6157,0.0066906,6.6192,0.066323,-22.471,0,22.471,3.1416,2.2064,0.065985,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.019460,839545,0,32.522,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1950,287.75,100595,340.14,0.50000,1.4924</datapoint>
+          <datapoint>57.749,55.587,-6.6157,8.7867e-5,6.6161,0.099236,-23.562,0,23.562,3.1416,2.1568,0.099236,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.019450,839356,0,32.501,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1396,287.77,100634,340.16,0.50000,1.4925</datapoint>
+          <datapoint>58.249,52.279,-6.6144,0.0025178,6.6157,0.012483,-24.641,0,24.641,3.1416,2.1629,0.012227,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.019448,839519,0,32.507,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1650,287.79,100673,340.17,0.50000,1.4927</datapoint>
+          <datapoint>58.749,48.972,-6.6133,0.0021522,6.6146,0.080661,-25.713,0,25.713,3.1416,2.1226,0.080632,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.019444,839598,0,32.507,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1086,287.81,100712,340.18,0.50000,1.4929</datapoint>
+          <datapoint>59.249,45.666,-6.6098,0.0071737,6.6171,0.32913,-26.733,0,26.733,3.1416,1.9581,0.32905,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.019451,840114,0,32.541,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9013,287.83,100751,340.20,0.50000,1.4932</datapoint>
+          <datapoint>59.749,42.361,-6.6101,-6.1955e-4,6.6133,0.32350,-27.672,0,27.672,3.1416,1.7963,0.32350,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.019439,839854,0,32.514,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7405,287.85,100789,340.21,0.50000,1.4933</datapoint>
+          <datapoint>60.249,39.056,-6.6107,-0.0013459,6.6105,0.11124,-28.556,0,28.556,3.1416,1.7407,0.11124,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.019430,839703,0,32.496,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7215,287.87,100828,340.22,0.50000,1.4935</datapoint>
+          <datapoint>60.749,35.754,-6.5996,0.022339,6.6237,0.61742,-29.503,0,29.503,3.1416,2.0492,0.61702,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.019468,841591,0,32.637,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1548,287.90,100867,340.24,0.50000,1.4936</datapoint>
+          <datapoint>61.249,32.452,-6.6079,-0.016736,6.6065,0.45140,-30.584,0,30.584,3.1416,2.2748,0.45109,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.019417,839622,0,32.478,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.3527,287.92,100906,340.25,0.50000,1.4938</datapoint>
+          <datapoint>61.749,29.149,-6.6017,0.012498,6.6158,0.48007,-31.662,0,31.662,3.1416,2.0348,0.47990,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.019443,841007,0,32.579,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9525,287.94,100944,340.26,0.50000,1.4940</datapoint>
+          <datapoint>62.249,25.847,-6.6090,-0.014633,6.6018,0.046321,-32.674,0,32.674,3.1416,2.0128,0.043949,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.019401,839433,0,32.451,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0052,287.96,100983,340.27,0.50000,1.4941</datapoint>
+          <datapoint>62.749,22.543,-6.6040,0.010095,6.6090,0.024350,-33.683,0,33.683,3.1416,2.0239,0.022159,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.019422,840567,0,32.532,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0277,287.98,101022,340.29,0.50000,1.4943</datapoint>
+          <datapoint>63.249,19.242,-6.6017,0.0045239,6.6083,0.35605,-34.739,0,34.739,3.1416,2.2019,0.35603,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.019419,840683,0,32.535,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2630,288.00,101061,340.30,0.50000,1.4944</datapoint>
+          <datapoint>63.749,15.941,-6.6037,-0.0039659,6.6028,0.18008,-35.818,0,35.818,3.1416,2.1119,0.18004,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.019402,840195,0,32.491,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0809,288.02,101099,340.31,0.50000,1.4946</datapoint>
+          <datapoint>64.249,12.641,-6.5955,0.016395,6.6125,0.50818,-36.810,0,36.810,3.1416,1.8579,0.50792,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.019430,841634,0,32.596,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7712,288.05,101138,340.33,0.50000,1.4948</datapoint>
+          <datapoint>64.749,9.3409,-6.6043,-0.017528,6.5958,0.10289,-37.752,0,37.752,3.1416,1.9086,0.10139,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.019380,839726,0,32.443,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9261,288.07,101177,340.34,0.50000,1.4949</datapoint>
+          <datapoint>65.249,6.0402,-6.5987,0.011124,6.6043,0.036156,-38.702,0,38.702,3.1416,1.8914,0.034402,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.019404,841012,0,32.536,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8855,288.09,101215,340.35,0.50000,1.4951</datapoint>
+          <datapoint>65.749,2.7414,-6.5964,0.0046004,6.6034,0.37325,-39.694,0,39.694,3.1416,2.0780,0.37322,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.019401,841113,0,32.537,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1419,288.11,101254,340.37,0.50000,1.4953</datapoint>
+          <datapoint>66.249,-0.55752,-6.5995,-0.0061656,6.5965,0.052435,-40.727,0,40.727,3.1416,2.0520,0.052071,NaN,NaN,NaN,NaN,3.3070,NaN,NaN,NaN,0.019380,840435,0,32.479,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0431,288.13,101293,340.38,0.50000,1.4954</datapoint>
+        </databranch>
+      </flightdata>
+    </simulation>
+
+    <simulation status="uptodate">
+      <name>Simulation 2</name>
+      <simulator>RK4Simulator</simulator>
+      <calculator>BarrowmanCalculator</calculator>
+      <conditions>
+        <configid>35ee425c-d252-4f71-9159-06501cbd9db6</configid>
+        <launchrodlength>2.5</launchrodlength>
+        <launchrodangle>0.0</launchrodangle>
+        <launchroddirection>0.0</launchroddirection>
+        <windaverage>2.0</windaverage>
+        <windturbulence>0.1</windturbulence>
+        <launchaltitude>0.0</launchaltitude>
+        <launchlatitude>65.0</launchlatitude>
+        <atmosphere model="isa"/>
+        <timestep>0.05</timestep>
+      </conditions>
+      <flightdata maxaltitude="812.75" maxvelocity="107.72" maxacceleration="66.565" maxmach="0.31741" timetoapogee="14.109" flighttime="75.602" groundhitvelocity="6.7214">
+        <databranch name="Main" types="Time,Altitude,Vertical velocity,Vertical acceleration,Total velocity,Total acceleration,Position upwind,Position parallel to wind,Lateral distance,Lateral direction,Lateral velocity,Lateral acceleration,Angle of attack,Roll rate,Pitch rate,Yaw rate,Mass,CP location,CG location,Stability margin calibers,Mach number,Reynolds number,Thrust,Drag force,Drag coefficient,Axial drag coefficient,Friction drag coefficient,Pressure drag coefficient,Base drag coefficient,Normal force coefficient,Pitch moment coefficient,Yaw moment coefficient,Side force coefficient,Roll moment coefficient,Roll forcing coefficient,Roll damping coefficient,Pitch damping coefficient,Reference length,Reference area,Vertical orientation (zenith),Lateral orientation (azimuth),Wind velocity,Air temperature,Air pressure,Speed of sound,Simulation time step,Computation time">
+          <event time="0" type="launch"/>
+          <event time="0" type="ignition"/>
+          <event time="0.050000" type="liftoff"/>
+          <event time="0.40000" type="launchrod"/>
+          <event time="6.7088" type="burnout"/>
+          <event time="6.7088" type="ejectioncharge"/>
+          <event time="14.159" type="apogee"/>
+          <event time="14.209" type="recoverydevicedeployment"/>
+          <event time="48.120" type="recoverydevicedeployment"/>
+          <event time="75.602" type="groundhit"/>
+          <event time="75.602" type="simulationend"/>
+          <datapoint>0,0,0,1.2126,2.0238,1.2126,0,0,0,0,0,0,1.5708,0,0,0,3.8322,NaN,NaN,NaN,0.0059454,257893,42.307,0,0.63762,0,0.50087,0.016744,0.12000,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,0.10200,0.0081713,1.5708,0,2.0238,288.15,101325,340.39,0.050000,0.010059</datapoint>
+          <datapoint>0.25000,0.95676,9.4698,48.925,9.7698,48.925,0,0,0,0,0,0,0.24844,0,0,0,3.8268,NaN,NaN,NaN,0.028702,1244905,225.13,0.30317,0.49632,0.63468,0.35945,0.016762,0.12011,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,0.10200,0.0081713,1.5708,0,2.4023,288.14,101314,340.39,0.050000,0.061699</datapoint>
+          <datapoint>0.50000,4.8728,21.827,48.301,21.928,48.304,-0.0032026,0,0.0032026,3.1416,0.063128,0.57855,0.094383,0,0.032346,0,3.8185,1.2956,1.1396,1.5290,0.064425,2793355,223.20,1.2464,0.48346,0.51815,0.34608,0.016841,0.12054,1.0621,1.6236,0,0,0,0,0,4.7891e-4,0.10200,0.0081713,1.5692,0,2.1637,288.12,101268,340.37,0.050000,0.074468</datapoint>
+          <datapoint>0.75000,11.788,33.154,40.083,33.205,40.088,-0.028820,0,0.028820,3.1416,0.090315,0.59049,0.034285,0,0.12617,0,3.8077,1.3397,1.1384,1.9738,0.097565,4227706,192.75,2.6981,0.48410,0.48947,0.34589,0.016969,0.12124,0.33615,0.66031,0,0,0,0,0,0.0031731,0.10200,0.0081713,1.5492,0,1.9444,288.07,101187,340.34,0.050000,0.17255</datapoint>
+          <datapoint>1.0000,21.204,41.822,31.868,41.879,31.979,-0.012936,0,0.012936,3.1416,0.30320,2.6546,0.0072982,0,-0.15564,0,3.7956,1.4064,1.1369,2.6415,0.12306,5328193,162.83,4.2491,0.48477,0.48503,0.34570,0.017103,0.12197,0.075785,0.20322,0,0,0,0,0,-0.0030303,0.10200,0.0081713,1.5114,0,1.8775,288.01,101076,340.31,0.050000,0.28675</datapoint>
+          <datapoint>1.2481,32.542,49.507,30.646,49.593,30.964,0.16561,0,0.16561,0,1.2112,4.4231,0.026794,0,-0.027970,0,3.7810,1.3887,1.1352,2.4854,0.14575,6304228,159.90,5.9991,0.48550,0.48885,0.34549,0.017249,0.12276,0.29105,0.72345,0,0,0,0,0,-6.9655e-5,0.10200,0.0081713,1.4851,0,1.7058,287.94,100943,340.26,0.042995,0.30060</datapoint>
+          <datapoint>1.5122,46.688,57.641,30.585,57.785,30.702,0.63242,0,0.63242,0,2.2411,2.6752,0.0021795,0,-0.11719,0,3.7620,1.3697,1.1329,2.3219,0.16985,7337737,160.46,8.0937,0.48641,0.48643,0.34522,0.017433,0.12375,0.019698,0.046636,0,0,0,0,0,-8.9837e-4,0.10200,0.0081713,1.5025,0,1.8254,287.85,100777,340.20,0.048066,0.36413</datapoint>
+          <datapoint>1.7516,61.351,64.816,29.285,64.991,29.299,1.2225,0,1.2225,0,2.6173,0.91232,0.021172,0,0.013977,0,3.7425,1.3519,1.1305,2.1700,0.19107,8243605,156.65,10.288,0.48732,0.48945,0.34496,0.017619,0.12475,0.20123,0.43665,0,0,0,0,0,1.0076e-5,0.10200,0.0081713,1.5186,0,2.1477,287.75,100605,340.15,0.041246,0.41577</datapoint>
+          <datapoint>2.0198,79.767,72.417,27.357,72.608,27.557,1.9758,0,1.9758,0,3.1126,3.3154,0.0055711,0,-0.12269,0,3.7182,1.4088,1.1276,2.7571,0.21351,9196842,151.59,12.795,0.48841,0.48857,0.34465,0.017841,0.12593,0.057754,0.15985,0,0,0,0,0,-6.2011e-4,0.10200,0.0081713,1.4928,0,2.1438,287.63,100389,340.07,0.048604,0.45893</datapoint>
+          <datapoint>2.2625,98.131,78.852,25.671,79.094,25.920,2.8474,0,2.8474,0,4.0799,3.5802,0.0064910,0,0.073716,0,3.6943,1.4081,1.1246,2.7797,0.23263,10004339,146.98,15.190,0.48944,0.48964,0.34435,0.018051,0.12703,0.067480,0.18739,0,0,0,0,0,1.8806e-4,0.10200,0.0081713,1.4862,0,2.0941,287.51,100174,340.00,0.042199,0.49235</datapoint>
+          <datapoint>2.4908,116.79,84.517,23.958,84.770,23.991,3.8512,0,3.8512,0,4.6152,1.2548,0.010973,0,-0.030973,0,3.6705,1.3620,1.1216,2.3576,0.24938,10707041,141.51,17.466,0.49041,0.49100,0.34407,0.018252,0.12808,0.10177,0.23998,0,0,0,0,0,-2.8818e-5,0.10200,0.0081713,1.5045,0,1.9289,287.39,99955,339.93,0.043808,0.56848</datapoint>
+          <datapoint>2.7549,139.93,90.595,21.920,90.865,22.148,5.1196,0,5.1196,0,5.0800,3.1691,0.0048178,0,-0.090896,0,3.6410,1.4101,1.1178,2.8662,0.26738,11456446,136.20,20.050,0.49153,0.49164,0.34375,0.018485,0.12929,0.049958,0.14340,0,0,0,0,0,-2.1523e-4,0.10200,0.0081713,1.4888,0,1.9220,287.24,99684,339.84,0.048024,0.62664</datapoint>
+          <datapoint>3.0223,164.90,96.105,19.370,96.429,19.507,6.5979,0,6.5979,0,5.9299,2.3059,6.4642e-4,0,-0.059753,0,3.6103,1.3727,1.1138,2.5381,0.28383,12134557,128.31,22.572,0.49262,0.49262,0.34343,0.018714,0.13047,0.0058414,0.014909,0,0,0,0,0,-8.2283e-5,0.10200,0.0081713,1.4895,0,1.9675,287.08,99391,339.74,0.047521,0.66067</datapoint>
+          <datapoint>3.2638,188.65,100.52,17.121,100.87,17.212,8.0799,0,8.0799,0,6.3108,1.7682,0.0030274,0,0.067356,0,3.5817,1.3705,1.1100,2.5538,0.29698,12669784,121.41,24.691,0.49354,0.49359,0.34317,0.018909,0.13147,0.027549,0.070259,0,0,0,0,0,9.5241e-5,0.10200,0.0081713,1.4910,0,2.0313,286.92,99112,339.65,0.048663,0.72950</datapoint>
+          <datapoint>3.5098,213.87,104.36,14.065,104.74,14.220,9.7091,0,9.7091,0,6.9438,2.0943,2.6860e-4,0,0.033005,0,3.5529,1.4152,1.1061,3.0297,0.30847,13130390,111.81,26.602,0.49439,0.49439,0.34293,0.019087,0.13237,0.0027608,0.0083434,0,0,0,0,0,2.1141e-5,0.10200,0.0081713,1.4851,0,1.9922,286.76,98817,339.55,0.049699,0.75713</datapoint>
+          <datapoint>3.7589,240.22,106.81,5.3413,107.21,5.5027,11.484,0,11.484,0,7.2728,1.3229,2.7092e-5,0,-0.042278,0,3.5299,1.4155,1.1030,3.0641,0.31585,13412591,81.579,27.833,0.49494,0.49494,0.34277,0.019206,0.13297,2.7841e-4,8.8609e-4,0,0,0,0,0,-3.3026e-5,0.10200,0.0081713,1.4841,0,2.0084,286.59,98508,339.44,0.049949,0.77652</datapoint>
+          <datapoint>4.0088,267.00,107.24,-1.7048,107.67,1.7772,13.345,0,13.345,0,7.5827,0.50187,0.0014968,0,-0.012976,0,3.5128,1.3724,1.1006,2.6641,0.31730,13441888,56.583,28.007,0.49506,0.49507,0.34274,0.019230,0.13309,0.013578,0.036176,0,0,0,0,0,-3.0789e-6,0.10200,0.0081713,1.4822,0,2.1032,286.41,98194,339.34,0.049992,0.79305</datapoint>
+          <datapoint>4.2588,293.71,106.35,-4.9450,106.81,5.0065,15.250,0,15.250,0,7.6811,0.78250,0.0019505,0,-0.024440,0,3.4985,1.4136,1.0986,3.0880,0.31485,13305844,44.740,27.477,0.49487,0.49489,0.34279,0.019190,0.13289,0.020134,0.062184,0,0,0,0,0,-1.1084e-5,0.10200,0.0081713,1.4765,0,2.1636,286.24,97880,339.23,0.049999,0.82139</datapoint>
+          <datapoint>4.5088,320.13,104.93,-6.1838,105.40,6.1880,17.189,0,17.189,0,7.8033,0.22745,8.0517e-4,0,-0.0027750,0,3.4853,1.3729,1.0968,2.7075,0.31080,13102864,39.388,26.671,0.49456,0.49456,0.34288,0.019124,0.13256,0.0072882,0.019733,0,0,0,0,0,-1.4655e-7,0.10200,0.0081713,1.4776,0,2.0945,286.07,97570,339.13,0.050000,0.83514</datapoint>
+          <datapoint>4.7588,346.16,103.26,-7.2714,103.74,7.2840,19.145,0,19.145,0,7.8461,0.42874,0.0011528,0,-0.025416,0,3.4729,1.4143,1.0950,3.1296,0.30599,12869554,34.732,25.753,0.49420,0.49421,0.34298,0.019048,0.13217,0.011872,0.037167,0,0,0,0,0,-1.2675e-5,0.10200,0.0081713,1.4734,0,2.1243,285.90,97265,339.03,0.050000,0.85100</datapoint>
+          <datapoint>5.0088,371.73,101.31,-8.2517,101.79,8.2526,21.120,0,21.120,0,7.9374,0.12452,2.1422e-4,0,-0.018261,0,3.4617,1.3734,1.0934,2.7445,0.30033,12601961,30.181,24.711,0.49379,0.49379,0.34310,0.018960,0.13173,0.0019350,0.0053173,0,0,0,0,0,-6.7893e-6,0.10200,0.0081713,1.4742,0,1.8987,285.73,96965,338.92,0.050000,0.86422</datapoint>
+          <datapoint>5.2588,396.79,99.130,-9.2175,99.615,9.2194,23.103,0,23.103,0,7.9190,0.18672,0.0019477,0,0.023415,0,3.4516,1.3715,1.0920,2.7406,0.29400,12308120,25.620,23.588,0.49333,0.49335,0.34323,0.018864,0.13124,0.017671,0.048416,0,0,0,0,0,1.1644e-5,0.10200,0.0081713,1.4740,0,1.9009,285.57,96671,338.83,0.050000,0.88463</datapoint>
+          <datapoint>5.5088,421.28,96.704,-10.153,97.214,10.157,25.081,0,25.081,0,7.9282,0.29881,0.0024327,0,-0.014276,0,3.4428,1.4127,1.0907,3.1569,0.28700,11987739,21.382,22.388,0.49284,0.49287,0.34337,0.018760,0.13071,0.025106,0.079263,0,0,0,0,0,-4.5408e-6,0.10200,0.0081713,1.4659,0,2.0163,285.41,96384,338.73,0.050000,0.93690</datapoint>
+          <datapoint>5.7588,445.13,94.077,-10.839,94.590,10.840,27.065,0,27.065,0,7.9337,0.17047,5.7571e-4,0,-0.011224,0,3.4352,1.3727,1.0896,2.7751,0.27933,11641674,17.607,21.122,0.49232,0.49232,0.34352,0.018650,0.13014,0.0052004,0.014435,0,0,0,0,0,-2.9626e-6,0.10200,0.0081713,1.4672,0,1.9057,285.26,96104,338.64,0.050000,0.96520</datapoint>
+          <datapoint>6.0088,468.30,91.285,-11.509,91.814,11.518,29.041,0,29.041,0,7.8587,0.46036,0.0026402,0,0.026576,0,3.4289,1.3705,1.0887,2.7626,0.27120,11278710,13.935,19.835,0.49178,0.49181,0.34368,0.018537,0.12956,0.023973,0.066210,0,0,0,0,0,1.7620e-5,0.10200,0.0081713,1.4660,0,1.9854,285.11,95833,338.54,0.050000,0.97627</datapoint>
+          <datapoint>6.2588,490.76,88.320,-12.131,88.869,12.131,30.996,0,30.996,0,7.8073,0.028167,0.0025486,0,-0.019025,0,3.4239,1.4123,1.0880,3.1796,0.26257,10896892,10.695,18.520,0.49122,0.49125,0.34384,0.018421,0.12896,0.026282,0.083575,0,0,0,0,0,-9.6339e-6,0.10200,0.0081713,1.4571,0,2.0519,284.96,95569,338.46,0.050000,0.98915</datapoint>
+          <datapoint>6.5088,512.45,85.201,-13.205,85.716,13.218,32.949,0,32.949,0,7.7879,0.57898,0.0022996,0,-0.041068,0,3.4209,1.3706,1.0875,2.7749,0.25332,10492430,5.4705,17.173,0.49065,0.49067,0.34400,0.018301,0.12834,0.020846,0.057894,0,0,0,0,0,-4.8243e-5,0.10200,0.0081713,1.4633,0,1.6024,284.82,95322,338.37,0.050000,1.0196</datapoint>
+          <datapoint>6.7588,533.32,81.684,-14.374,82.191,14.394,34.871,0,34.871,0,7.5767,0.74197,0.0028961,0,0.051205,0,3.4209,1.3698,1.0875,2.7677,0.24296,10044796,0,15.739,0.49003,0.49007,0.34418,0.018173,0.12767,0.026285,0.072668,0,0,0,0,0,8.1573e-5,0.10200,0.0081713,1.4626,0,1.5325,284.68,95089,338.29,0.050000,1.0398</datapoint>
+          <datapoint>7.0088,553.29,78.130,-14.039,78.659,14.040,36.750,0,36.750,0,7.4905,0.16673,0.0038116,0,-0.0057481,0,3.4209,1.4107,1.0875,3.1682,0.23258,9598487,0,14.371,0.48943,0.48951,0.34435,0.018051,0.12703,0.039377,0.12475,0,0,0,0,0,-1.1223e-6,0.10200,0.0081713,1.4510,0,1.6158,284.55,94865,338.21,0.050000,1.0531</datapoint>
+          <datapoint>7.2588,572.39,74.679,-13.592,75.261,13.616,38.609,0,38.609,0,7.3529,0.81848,0.0050961,0,0.020721,0,3.4209,1.3674,1.0875,2.7438,0.22258,9170278,0,13.119,0.48889,0.48902,0.34451,0.017938,0.12644,0.046492,0.12755,0,0,0,0,0,1.5931e-5,0.10200,0.0081713,1.4515,0,1.9857,284.43,94652,338.13,0.050000,1.0661</datapoint>
+          <datapoint>7.5088,590.64,71.316,-13.332,71.875,13.332,40.428,0,40.428,0,7.2282,0.10061,0.0047798,0,-0.028518,0,3.4209,1.4095,1.0875,3.1568,0.21261,8745409,0,11.932,0.48837,0.48848,0.34466,0.017831,0.12588,0.049457,0.15616,0,0,0,0,0,-3.3086e-5,0.10200,0.0081713,1.4412,0,1.7205,284.31,94448,338.06,0.050000,1.0784</datapoint>
+          <datapoint>7.7588,608.06,68.029,-12.949,68.612,12.962,42.230,0,42.230,0,7.1619,0.57419,0.0029298,0,-0.017017,0,3.4209,1.3693,1.0875,2.7627,0.20300,8337121,0,10.843,0.48789,0.48793,0.34480,0.017733,0.12536,0.026558,0.073383,0,0,0,0,0,-1.2928e-5,0.10200,0.0081713,1.4433,0,1.7632,284.20,94254,337.99,0.050000,1.1327</datapoint>
+          <datapoint>8.0088,624.66,64.831,-12.664,65.407,12.672,44.000,0,44.000,0,7.0051,0.46562,0.0017076,0,0.040069,0,3.4209,1.3704,1.0875,2.7737,0.19355,7937417,0,9.8279,0.48744,0.48745,0.34493,0.017642,0.12487,0.015424,0.042701,0,0,0,0,0,7.8875e-5,0.10200,0.0081713,1.4397,0,1.6547,284.09,94068,337.93,0.050000,1.1561</datapoint>
+          <datapoint>8.2588,640.48,61.699,-12.411,62.327,12.415,45.737,0,45.737,0,6.8951,0.31516,0.0010375,0,-0.056030,0,3.4209,1.4129,1.0875,3.1900,0.18447,7554408,0,8.9031,0.48703,0.48703,0.34505,0.017558,0.12442,0.010631,0.034084,0,0,0,0,0,-1.6984e-4,0.10200,0.0081713,1.4276,0,1.9352,283.99,93891,337.87,0.050000,1.1697</datapoint>
+          <datapoint>8.5088,655.52,58.622,-12.160,59.270,12.163,47.456,0,47.456,0,6.8603,0.27800,0.0014634,0,0.0052827,0,3.4209,1.4124,1.0875,3.1851,0.17545,7175366,0,8.0330,0.48664,0.48665,0.34516,0.017479,0.12400,0.015006,0.047796,0,0,0,0,0,1.6696e-6,0.10200,0.0081713,1.4214,0,1.8781,283.89,93723,337.81,0.050000,1.1863</datapoint>
+          <datapoint>8.7588,669.80,55.620,-11.878,56.325,11.893,49.157,0,49.157,0,6.7329,0.59346,0.0069582,0,0.036412,0,3.4209,1.3650,1.0875,2.7202,0.16677,6811316,0,7.2428,0.48628,0.48652,0.34526,0.017407,0.12362,0.063692,0.17317,0,0,0,0,0,8.7830e-5,0.10200,0.0081713,1.4193,0,2.1532,283.80,93564,337.75,0.050000,1.2151</datapoint>
+          <datapoint>9.0088,683.33,52.669,-11.721,53.344,11.722,50.828,0,50.828,0,6.6508,0.15883,0.0037509,0,-0.037947,0,3.4209,1.4100,1.0875,3.1618,0.15796,6443969,0,6.4812,0.48594,0.48601,0.34536,0.017338,0.12324,0.038655,0.12233,0,0,0,0,0,-1.0635e-4,0.10200,0.0081713,1.4078,0,1.8103,283.71,93413,337.70,0.050000,1.2256</datapoint>
+          <datapoint>9.2588,696.13,49.766,-11.508,50.463,11.510,52.485,0,52.485,0,6.6023,0.21163,0.0020473,0,-0.0097700,0,3.4209,1.4116,1.0875,3.1775,0.14946,6089839,0,5.7886,0.48563,0.48565,0.34545,0.017275,0.12290,0.021009,0.066766,0,0,0,0,0,-7.8776e-6,0.10200,0.0081713,1.4023,0,1.7595,283.63,93270,337.65,0.050000,1.2363</datapoint>
+          <datapoint>9.5088,708.22,46.920,-11.274,47.698,11.285,54.125,0,54.125,0,6.5048,0.49431,0.0083612,0,0.037505,0,3.4209,1.3634,1.0875,2.7048,0.14128,5750590,0,5.1658,0.48535,0.48569,0.34553,0.017218,0.12259,0.076774,0.20753,0,0,0,0,0,1.2994e-4,0.10200,0.0081713,1.3983,0,2.0735,283.55,93135,337.60,0.050000,1.2471</datapoint>
+          <datapoint>9.7588,719.60,44.121,-11.133,44.923,11.137,55.737,0,55.737,0,6.3992,0.28627,0.0015069,0,0.077136,0,3.4209,1.3701,1.0875,2.7705,0.13308,5411244,0,4.5716,0.48508,0.48509,0.34561,0.017164,0.12230,0.013583,0.037012,0,0,0,0,0,6.1964e-4,0.10200,0.0081713,1.3830,0,2.0546,283.47,93007,337.55,0.050000,1.2584</datapoint>
+          <datapoint>10.009,730.28,41.354,-11.013,42.198,11.014,57.329,0,57.329,0,6.3484,0.083189,0.0064415,0,-0.064668,0,3.4209,1.4072,1.0875,3.1341,0.12503,5078649,0,4.0291,0.48483,0.48503,0.34568,0.017114,0.12203,0.066757,0.20972,0,0,0,0,0,-4.9358e-4,0.10200,0.0081713,1.3640,0,2.0500,283.40,92888,337.51,0.050000,1.2760</datapoint>
+          <datapoint>10.259,740.28,38.620,-10.864,39.496,10.864,58.914,0,58.914,0,6.3252,0.084138,0.0064265,0,-0.026262,0,3.4209,1.4072,1.0875,3.1338,0.11703,4749721,0,3.5245,0.48460,0.48480,0.34575,0.017068,0.12178,0.066589,0.20877,0,0,0,0,0,-9.2920e-5,0.10200,0.0081713,1.3533,0,1.9493,283.34,92776,337.47,0.050000,1.2868</datapoint>
+          <datapoint>10.509,749.59,35.927,-10.682,36.879,10.685,60.490,0,60.490,0,6.2768,0.28932,0.0055727,0,0.020853,0,3.4209,1.3659,1.0875,2.7294,0.10929,4431764,0,3.0686,0.48439,0.48454,0.34581,0.017026,0.12155,0.050761,0.13848,0,0,0,0,0,6.7191e-5,0.10200,0.0081713,1.3486,0,2.0501,283.28,92672,337.44,0.050000,1.3359</datapoint>
+          <datapoint>10.759,758.24,33.272,-10.551,34.244,10.555,62.051,0,62.051,0,6.2077,0.29939,0.0086382,0,0.042286,0,3.4209,1.3629,1.0875,2.6997,0.10149,4112181,0,2.6434,0.48419,0.48456,0.34587,0.016987,0.12134,0.079319,0.21381,0,0,0,0,0,3.2048e-4,0.10200,0.0081713,1.3407,0,1.8896,283.22,92576,337.40,0.050000,1.3574</datapoint>
+          <datapoint>11.009,766.23,30.649,-10.448,31.637,10.450,63.594,0,63.594,0,6.1359,0.23313,0.0061294,0,0.070499,0,3.4209,1.3653,1.0875,2.7232,0.093774,3796708,0,2.2528,0.48401,0.48420,0.34592,0.016951,0.12114,0.055902,0.15119,0,0,0,0,0,0.0010436,0.10200,0.0081713,1.3264,0,1.7074,283.17,92486,337.37,0.050000,1.3691</datapoint>
+          <datapoint>11.259,773.57,28.051,-10.350,29.105,10.352,65.120,0,65.120,0,6.0769,0.20033,0.0054139,0,0.090313,0,3.4209,1.3660,1.0875,2.7298,0.086279,3490893,0,1.9046,0.48385,0.48400,0.34597,0.016919,0.12097,0.049277,0.13249,0,0,0,0,0,0.0020236,0.10200,0.0081713,1.3062,0,1.6878,283.12,92404,337.34,0.050000,1.3793</datapoint>
+          <datapoint>11.509,780.26,25.475,-10.247,26.662,10.249,66.634,0,66.634,0,6.0297,0.22955,0.011312,0,0.10204,0,3.4209,1.3602,1.0875,2.6735,0.079042,3196152,0,1.5983,0.48371,0.48433,0.34601,0.016891,0.12081,0.10457,0.27649,0,0,0,0,0,0.0030782,0.10200,0.0081713,1.2825,0,1.8393,283.08,92330,337.32,0.050000,1.4130</datapoint>
+          <datapoint>11.759,786.31,22.923,-10.165,24.221,10.167,68.134,0,68.134,0,5.9764,0.20696,0.012415,0,0.12251,0,3.4209,1.3591,1.0875,2.6629,0.071811,2902134,0,1.3183,0.48358,0.48432,0.34605,0.016865,0.12067,0.11509,0.30111,0,0,0,0,0,0.0053764,0.10200,0.0081713,1.2543,0,1.8470,283.04,92262,337.29,0.050000,1.4233</datapoint>
+          <datapoint>12.009,791.72,20.393,-10.083,21.869,10.085,69.621,0,69.621,0,5.9187,0.21628,0.018864,0,0.14953,0,3.4209,1.3531,1.0875,2.6038,0.064841,2619155,0,1.0759,0.48347,0.48515,0.34608,0.016842,0.12055,0.17782,0.45318,0,0,0,0,0,0.0098253,0.10200,0.0081713,1.2202,0,1.9780,283.00,92202,337.27,0.050000,1.4360</datapoint>
+          <datapoint>12.259,796.51,17.882,-10.017,19.532,10.019,71.094,0,71.094,0,5.8643,0.19879,0.022652,0,0.17612,0,3.4209,1.3497,1.0875,2.5699,0.057915,2338374,0,0.85895,0.48337,0.48577,0.34611,0.016822,0.12044,0.21560,0.53699,0,0,0,0,0,0.017089,0.10200,0.0081713,1.1795,0,1.9929,282.97,92148,337.25,0.050000,1.4485</datapoint>
+          <datapoint>12.509,800.67,15.386,-9.9423,17.316,9.9448,72.554,0,72.554,0,5.8141,0.22328,0.038167,0,0.20132,0,3.4209,1.3363,1.0875,2.4386,0.051346,2072326,0,0.68047,0.48328,0.48986,0.34613,0.016805,0.12034,0.37763,0.89246,0,0,0,0,0,0.028411,0.10200,0.0081713,1.1324,0,2.1290,282.95,92102,337.24,0.050000,1.4594</datapoint>
+          <datapoint>12.759,804.20,12.903,-9.9106,14.913,9.9118,74.001,0,74.001,0,5.7701,0.15577,0.033283,0,0.22383,0,3.4209,1.3403,1.0875,2.4785,0.044222,1784254,0,0.50290,0.48320,0.48826,0.34616,0.016789,0.12025,0.32535,0.75904,0,0,0,0,0,0.047348,0.10200,0.0081713,1.0790,0,1.7060,282.92,92062,337.22,0.050000,1.4700</datapoint>
+          <datapoint>13.009,807.12,10.436,-9.8400,12.802,9.8418,75.438,0,75.438,0,5.7241,0.19203,0.066844,0,0.24984,0,3.4209,1.3141,1.0875,2.2212,0.037964,1531313,0,0.38083,0.48314,0.50189,0.34617,0.016777,0.12019,0.70773,1.4920,0,0,0,0,0,0.080047,0.10200,0.0081713,1.0199,0,1.6906,282.90,92030,337.21,0.050000,1.4804</datapoint>
+          <datapoint>13.259,809.42,7.9893,-9.7212,11.109,9.7262,76.862,0,76.862,0,5.6626,0.31301,0.15058,0,0.28626,0,3.4209,1.2641,1.0875,1.7309,0.032944,1328575,0,0.32407,0.49186,0.56730,0.35495,0.016769,0.12014,1.8962,3.1425,0,0,0,0,0,0.13955,0.10200,0.0081713,0.95321,0,2.0560,282.89,92004,337.20,0.050000,1.5321</datapoint>
+          <datapoint>13.509,811.12,5.5710,-9.6231,9.3449,9.6300,78.267,0,78.267,0,5.5778,0.36289,0.23723,0,0.33188,0,3.4209,1.2279,1.0875,1.3764,0.027714,1117466,0,0.25842,0.50397,0.63938,0.36711,0.016761,0.12010,3.4656,4.5049,0,0,0,0,0,0.26507,0.10200,0.0081713,0.87594,0,1.9249,282.88,91985,337.19,0.050000,1.5425</datapoint>
+          <datapoint>13.759,812.21,3.1886,-9.4193,8.3367,9.4323,79.649,0,79.649,0,5.4714,0.49529,0.39463,0,0.37784,0,3.4209,1.1858,1.0875,0.96332,0.024724,996815,0,0.20738,0.51233,0.64477,0.37549,0.016757,0.12008,6.7948,4.4548,0,0,0,0,0,0.43172,0.10200,0.0081713,0.78711,0,2.2314,282.87,91973,337.19,0.050000,1.5681</datapoint>
+          <datapoint>14.009,812.71,0.85435,-9.2151,7.5438,9.2321,81.001,0,81.001,0,5.3434,0.55860,0.57670,0,0.38949,0,3.4209,1.1584,1.0875,0.69452,0.022373,901969,0,0.14027,0.51987,0.53265,0.38305,0.016755,0.12007,10.752,-1.8083,0,0,0,0,0,0.56024,0.10200,0.0081713,0.69020,0,2.1519,282.87,91967,337.19,0.050000,1.5808</datapoint>
+          <datapoint>14.260,812.64,-1.4549,-9.6397,7.5114,9.7489,82.324,0,82.324,0,5.1456,1.4551,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.022277,898101,0,5.0191,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2296,282.87,91967,337.19,0.051288,1.5907</datapoint>
+          <datapoint>14.525,811.93,-3.9256,-9.1427,7.6719,9.2447,83.634,0,83.634,0,4.7635,1.3690,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.022753,917333,0,5.2361,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0244,282.87,91974,337.19,0.054085,1.5914</datapoint>
+          <datapoint>14.748,810.83,-5.9010,-8.6369,8.4637,8.7550,84.664,0,84.664,0,4.4510,1.4332,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.025100,1012083,0,6.3733,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9779,282.88,91985,337.19,0.057110,1.5920</datapoint>
+          <datapoint>14.987,809.18,-7.8705,-7.9879,9.5828,8.1319,85.686,0,85.686,0,4.1037,1.5239,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.028419,1146051,0,8.1714,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9163,282.89,92001,337.20,0.061486,1.5931</datapoint>
+          <datapoint>15.248,806.86,-9.8266,-7.1551,10.997,7.3454,86.705,0,86.705,0,3.6875,1.6611,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.032612,1315409,0,10.763,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0054,282.90,92025,337.21,0.068069,1.5965</datapoint>
+          <datapoint>15.466,804.56,-11.281,-6.4553,12.002,6.6599,87.468,0,87.468,0,3.3195,1.6379,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.035592,1435898,0,12.824,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8016,282.91,92049,337.22,0.075076,1.5970</datapoint>
+          <datapoint>15.711,801.62,-12.723,-5.6183,13.207,5.8703,88.230,0,88.230,0,2.9063,1.7016,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.039163,1580327,0,15.531,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8988,282.93,92079,337.23,0.085174,1.6115</datapoint>
+          <datapoint>15.995,797.80,-14.139,-4.6769,14.468,5.0052,88.985,0,88.985,0,2.4140,1.7829,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.042901,1731715,0,18.645,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1405,282.96,92118,337.24,0.099897,1.6120</datapoint>
+          <datapoint>16.215,794.58,-15.064,-4.0342,15.231,4.3839,89.475,0,89.475,0,2.0332,1.7158,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.045161,1823443,0,20.669,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0965,282.97,92151,337.25,0.11405,1.6123</datapoint>
+          <datapoint>16.472,790.59,-15.970,-3.3589,15.996,3.7270,89.944,0,89.944,0,1.6118,1.6151,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.047429,1915662,0,22.807,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0466,283.00,92191,337.27,0.13416,1.6126</datapoint>
+          <datapoint>16.785,785.44,-16.856,-2.6630,16.743,3.0262,90.375,0,90.375,0,1.1470,1.4374,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.049640,2005797,0,24.997,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9092,283.03,92241,337.28,0.16522,1.6129</datapoint>
+          <datapoint>16.972,782.25,-17.285,-2.2973,17.134,2.6763,90.565,0,90.565,0,0.89044,1.3730,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.050797,2053060,0,26.184,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9265,283.04,92272,337.30,0.18683,1.6131</datapoint>
+          <datapoint>17.185,778.53,-17.695,-1.9230,17.533,2.3465,90.724,0,90.724,0,0.60391,1.3447,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.051980,2101479,0,27.429,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0501,283.07,92307,337.31,0.21309,1.6133</datapoint>
+          <datapoint>17.440,773.97,-18.096,-1.5760,17.872,1.9644,90.840,0,90.840,0,0.30542,1.1727,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.052983,2142775,0,28.511,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9109,283.09,92349,337.32,0.25453,1.6134</datapoint>
+          <datapoint>17.743,768.43,-18.462,-1.2074,18.249,1.6494,90.881,0,90.881,0,0.035236,1.1238,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.054097,2188705,0,29.738,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0538,283.12,92400,337.34,0.30313,1.6136</datapoint>
+          <datapoint>18.120,761.40,-18.790,-0.87045,18.576,1.3249,90.796,0,90.796,0,0.41218,0.99880,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.055063,2228943,0,30.831,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0940,283.16,92462,337.36,0.37740,1.6137</datapoint>
+          <datapoint>18.620,751.94,-19.076,-0.57044,18.850,0.93230,90.498,0,90.498,0,0.78089,0.73742,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.055870,2263039,0,31.767,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9091,283.20,92540,337.39,0.50000,1.6139</datapoint>
+          <datapoint>19.120,742.36,-19.223,-0.29545,19.102,0.58196,90.045,0,90.045,0,1.0316,0.50139,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.056610,2295029,0,32.653,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7843,283.26,92646,337.43,0.50000,1.6140</datapoint>
+          <datapoint>19.620,732.73,-19.291,-0.13474,19.257,0.58775,89.458,0,89.458,0,1.3176,0.57210,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.057063,2315389,0,33.215,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1662,283.32,92753,337.46,0.50000,1.6142</datapoint>
+          <datapoint>20.120,723.08,-19.323,-0.064139,19.311,0.45455,88.743,0,88.743,0,1.5426,0.45000,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.057218,2323702,0,33.434,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2068,283.39,92861,337.50,0.50000,1.6147</datapoint>
+          <datapoint>20.620,713.41,-19.337,-0.028312,19.332,0.29942,87.934,0,87.934,0,1.6917,0.29808,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.057272,2327950,0,33.537,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1304,283.45,92968,337.54,0.50000,1.6149</datapoint>
+          <datapoint>21.120,703.75,-19.341,-0.0079217,19.339,0.16291,87.068,0,87.068,0,1.7730,0.16272,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.057289,2330678,0,33.596,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0121,283.51,93076,337.58,0.50000,1.6150</datapoint>
+          <datapoint>21.620,694.08,-19.339,0.0042619,19.341,0.075415,86.191,0,86.191,0,1.7354,0.075294,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.057288,2332682,0,33.634,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.6249,283.58,93184,337.62,0.50000,1.6152</datapoint>
+          <datapoint>22.120,684.41,-19.333,0.011525,19.340,0.10008,85.311,0,85.311,0,1.7851,0.099415,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.057276,2334253,0,33.659,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9308,283.64,93293,337.65,0.50000,1.6153</datapoint>
+          <datapoint>22.620,674.74,-19.326,0.014372,19.333,0.019378,84.420,0,84.420,0,1.7786,0.012998,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.057250,2335215,0,33.668,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7596,283.70,93401,337.69,0.50000,1.6155</datapoint>
+          <datapoint>23.120,665.08,-19.317,0.016464,19.326,0.068595,83.522,0,83.522,0,1.8119,0.066590,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.057224,2336171,0,33.675,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9093,283.76,93509,337.73,0.50000,1.6156</datapoint>
+          <datapoint>23.620,655.43,-19.309,0.017114,19.318,0.044348,82.621,0,82.621,0,1.7914,0.040913,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.057192,2336911,0,33.677,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7316,283.83,93616,337.77,0.50000,1.6158</datapoint>
+          <datapoint>24.120,645.77,-19.300,0.017568,19.309,0.047866,81.720,0,81.720,0,1.8137,0.044526,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.057160,2337645,0,33.679,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8788,283.89,93724,337.81,0.50000,1.6160</datapoint>
+          <datapoint>24.620,636.13,-19.291,0.018310,19.301,0.11512,80.799,0,80.799,0,1.8705,0.11365,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.057131,2338476,0,33.683,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0365,283.95,93832,337.85,0.50000,1.6161</datapoint>
+          <datapoint>25.120,626.48,-19.282,0.017528,19.291,0.045062,79.869,0,79.869,0,1.8498,0.041513,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.057094,2338991,0,33.679,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7892,284.02,93940,337.88,0.50000,1.6163</datapoint>
+          <datapoint>25.620,616.84,-19.273,0.018283,19.284,0.11691,78.958,0,78.958,0,1.7920,0.11547,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.057065,2339825,0,33.683,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.6236,284.08,94048,337.92,0.50000,1.6164</datapoint>
+          <datapoint>26.120,607.21,-19.264,0.017456,19.273,0.045923,78.057,0,78.057,0,1.8133,0.042477,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.057028,2340329,0,33.678,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8752,284.14,94155,337.96,0.50000,1.6166</datapoint>
+          <datapoint>26.620,597.58,-19.256,0.017593,19.264,0.040590,77.155,0,77.155,0,1.7950,0.036579,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.056996,2341013,0,33.679,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7417,284.20,94263,338.00,0.50000,1.6167</datapoint>
+          <datapoint>27.120,587.95,-19.246,0.019702,19.260,0.20471,76.232,0,76.232,0,1.8969,0.20376,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.056975,2342176,0,33.693,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1934,284.27,94371,338.04,0.50000,1.6169</datapoint>
+          <datapoint>27.620,578.33,-19.237,0.016725,19.246,0.058695,75.277,0,75.277,0,1.9250,0.056261,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.056929,2342258,0,33.676,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0069,284.33,94478,338.07,0.50000,1.6171</datapoint>
+          <datapoint>28.120,568.72,-19.229,0.017374,19.238,0.083379,74.304,0,74.304,0,1.9658,0.081548,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.056899,2343023,0,33.679,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0843,284.39,94586,338.11,0.50000,1.6172</datapoint>
+          <datapoint>28.620,559.10,-19.220,0.017336,19.229,0.062078,73.314,0,73.314,0,1.9956,0.059608,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.056866,2343664,0,33.678,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0822,284.45,94693,338.15,0.50000,1.6174</datapoint>
+          <datapoint>29.120,549.50,-19.211,0.017472,19.220,0.064733,72.308,0,72.308,0,2.0267,0.062331,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.056834,2344346,0,33.679,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1173,284.52,94800,338.19,0.50000,1.6176</datapoint>
+          <datapoint>29.620,539.89,-19.202,0.019052,19.215,0.18655,71.318,0,71.318,0,1.9339,0.18558,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.056810,2345380,0,33.689,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.6646,284.58,94908,338.22,0.50000,1.6177</datapoint>
+          <datapoint>30.120,530.29,-19.193,0.017052,19.203,0.10540,70.364,0,70.364,0,1.8819,0.10402,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.056769,2345660,0,33.679,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7311,284.64,95015,338.26,0.50000,1.6179</datapoint>
+          <datapoint>30.620,520.70,-19.184,0.018181,19.196,0.17142,69.402,0,69.402,0,1.9672,0.17046,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.056743,2346563,0,33.686,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2142,284.70,95122,338.30,0.50000,1.6180</datapoint>
+          <datapoint>31.120,511.11,-19.176,0.016531,19.185,0.068060,68.410,0,68.410,0,2.0002,0.066022,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.056702,2346875,0,33.676,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0958,284.77,95230,338.34,0.50000,1.6182</datapoint>
+          <datapoint>31.620,501.52,-19.167,0.017007,19.176,0.074540,67.401,0,67.401,0,2.0365,0.072573,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.056672,2347593,0,33.677,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1415,284.83,95337,338.38,0.50000,1.6183</datapoint>
+          <datapoint>32.120,491.94,-19.159,0.016939,19.167,0.030676,66.386,0,66.386,0,2.0237,0.025575,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.056639,2348211,0,33.676,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9867,284.89,95444,338.41,0.50000,1.6185</datapoint>
+          <datapoint>32.620,482.37,-19.150,0.018389,19.161,0.12993,65.390,0,65.390,0,1.9594,0.12862,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.056612,2349188,0,33.684,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7734,284.95,95555,338.45,0.50000,1.6186</datapoint>
+          <datapoint>33.120,472.79,-19.141,0.017572,19.150,0.038409,64.406,0,64.406,0,1.9764,0.034154,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.056574,2349714,0,33.679,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0258,285.01,95668,338.49,0.50000,1.6188</datapoint>
+          <datapoint>33.620,463.22,-19.132,0.018447,19.142,0.10776,63.431,0,63.431,0,1.9234,0.10617,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.056545,2350595,0,33.683,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7700,285.08,95780,338.53,0.50000,1.6190</datapoint>
+          <datapoint>34.120,453.66,-19.123,0.017915,19.132,0.057261,62.476,0,62.476,0,1.8962,0.054387,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.056509,2351195,0,33.680,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8177,285.14,95892,338.56,0.50000,1.6191</datapoint>
+          <datapoint>34.620,444.10,-19.114,0.017914,19.123,0.021864,61.526,0,61.526,0,1.9024,0.012534,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.056476,2351890,0,33.680,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9205,285.20,96004,338.60,0.50000,1.6193</datapoint>
+          <datapoint>35.120,434.55,-19.105,0.018275,19.114,0.072192,60.566,0,60.566,0,1.9373,0.069840,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.056444,2352672,0,33.682,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0380,285.26,96116,338.64,0.50000,1.6194</datapoint>
+          <datapoint>35.620,425.00,-19.096,0.017943,19.105,0.019563,59.597,0,59.597,0,1.9412,0.0077936,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.056410,2353312,0,33.680,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9525,285.33,96228,338.68,0.50000,1.6196</datapoint>
+          <datapoint>36.120,415.45,-19.087,0.018219,19.096,0.067882,58.618,0,58.618,0,1.9739,0.065391,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.056378,2354077,0,33.681,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0681,285.39,96340,338.71,0.50000,1.6197</datapoint>
+          <datapoint>36.620,405.91,-19.078,0.017993,19.087,0.046226,57.636,0,57.636,0,1.9526,0.042581,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.056344,2354741,0,33.680,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8914,285.45,96452,338.75,0.50000,1.6199</datapoint>
+          <datapoint>37.120,396.37,-19.069,0.018062,19.078,0.060199,56.653,0,56.653,0,1.9814,0.057426,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.056312,2355462,0,33.681,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0639,285.51,96564,338.79,0.50000,1.6200</datapoint>
+          <datapoint>37.620,386.84,-19.060,0.017888,19.069,0.038055,55.666,0,55.666,0,1.9646,0.033589,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.056278,2356131,0,33.680,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9163,285.57,96676,338.83,0.50000,1.6202</datapoint>
+          <datapoint>38.120,377.31,-19.050,0.018195,19.060,0.086115,54.695,0,54.695,0,1.9225,0.084170,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.056247,2356904,0,33.682,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8016,285.64,96788,338.87,0.50000,1.6204</datapoint>
+          <datapoint>38.620,367.79,-19.042,0.017943,19.051,0.076824,53.724,0,53.724,0,1.9598,0.074699,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.056214,2357564,0,33.681,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0670,285.70,96900,338.90,0.50000,1.6205</datapoint>
+          <datapoint>39.120,358.27,-19.033,0.017594,19.042,0.018226,52.745,0,52.745,0,1.9575,0.0047559,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.056180,2358187,0,33.679,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9506,285.76,97011,338.94,0.50000,1.6207</datapoint>
+          <datapoint>39.620,348.76,-19.024,0.017900,19.033,0.067337,51.758,0,51.758,0,1.9899,0.064914,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.056149,2358945,0,33.680,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0829,285.82,97123,338.98,0.50000,1.6208</datapoint>
+          <datapoint>40.120,339.25,-19.015,0.017605,19.024,0.020811,50.762,0,50.762,0,1.9955,0.011098,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.056115,2359579,0,33.679,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0114,285.88,97235,339.02,0.50000,1.6765</datapoint>
+          <datapoint>40.620,329.74,-19.006,0.017731,19.015,0.045124,49.769,0,49.769,0,1.9747,0.041494,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.056083,2360297,0,33.679,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9153,285.94,97346,339.05,0.50000,1.6769</datapoint>
+          <datapoint>41.120,320.24,-18.997,0.017602,19.006,0.017605,48.782,0,48.782,0,1.9746,3.1076e-4,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.056050,2360963,0,33.679,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9741,286.01,97458,339.09,0.50000,1.6771</datapoint>
+          <datapoint>41.620,310.75,-18.988,0.018577,18.999,0.13945,47.812,0,47.812,0,1.9055,0.13821,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.056024,2361886,0,33.685,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7079,286.07,97569,339.13,0.50000,1.6773</datapoint>
+          <datapoint>42.120,301.26,-18.979,0.017275,18.988,0.063482,46.851,0,46.851,0,1.9360,0.061086,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.055986,2362324,0,33.678,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0233,286.13,97680,339.16,0.50000,1.6775</datapoint>
+          <datapoint>42.620,291.77,-18.969,0.019834,18.984,0.22792,45.912,0,45.912,0,1.8225,0.22706,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.055968,2363610,0,33.695,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.4984,286.19,97792,339.20,0.50000,1.6776</datapoint>
+          <datapoint>43.120,282.29,-18.961,0.016225,18.970,0.068367,45.009,0,45.009,0,1.7893,0.066414,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.055919,2363575,0,33.675,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.6945,286.25,97903,339.24,0.50000,1.6795</datapoint>
+          <datapoint>43.620,272.81,-18.953,0.016663,18.961,0.028312,44.117,0,44.117,0,1.7778,0.022889,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.055888,2364287,0,33.675,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7452,286.32,98014,339.28,0.50000,1.6796</datapoint>
+          <datapoint>44.120,263.33,-18.944,0.018456,18.956,0.16895,43.207,0,43.207,0,1.8618,0.16794,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.055865,2365354,0,33.686,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1011,286.38,98125,339.31,0.50000,1.6798</datapoint>
+          <datapoint>44.620,253.86,-18.935,0.018185,18.947,0.18523,42.253,0,42.253,0,1.9540,0.18433,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.055833,2366038,0,33.686,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2165,286.44,98237,339.35,0.50000,1.6799</datapoint>
+          <datapoint>45.120,244.40,-18.927,0.016167,18.935,0.056838,41.269,0,41.269,0,1.9812,0.054490,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.055791,2366285,0,33.674,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0588,286.50,98348,339.39,0.50000,1.6801</datapoint>
+          <datapoint>45.620,234.94,-18.918,0.016607,18.927,0.020184,40.280,0,40.280,0,1.9755,0.011472,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.055761,2366998,0,33.675,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9591,286.56,98459,339.43,0.50000,1.6803</datapoint>
+          <datapoint>46.120,225.48,-18.910,0.016983,18.918,0.034533,39.289,0,39.289,0,1.9905,0.030069,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.055730,2367725,0,33.677,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0332,286.62,98570,339.46,0.50000,1.6804</datapoint>
+          <datapoint>46.620,216.03,-18.901,0.017751,18.911,0.11817,38.279,0,38.279,0,2.0489,0.11682,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.055703,2368570,0,33.681,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2149,286.68,98681,339.50,0.50000,1.6806</datapoint>
+          <datapoint>47.120,206.58,-18.893,0.016768,18.901,0.021667,37.253,0,37.253,0,2.0558,0.013722,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.055667,2369042,0,33.676,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0753,286.75,98791,339.54,0.50000,1.6807</datapoint>
+          <datapoint>47.620,197.13,-18.884,0.016984,18.893,0.030506,36.222,0,36.222,0,2.0684,0.025341,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.055636,2369743,0,33.677,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1044,286.81,98902,339.58,0.50000,1.6809</datapoint>
+          <datapoint>48.120,187.69,-18.876,0.017023,18.884,0.022714,35.189,0,35.189,0,2.0609,0.015039,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.055605,2370416,0,33.677,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0396,286.87,99013,339.61,0.50000,1.6811</datapoint>
+          <datapoint>48.384,184.12,-10.376,15.542,10.876,15.543,34.652,0,34.652,0,2.0322,0.20800,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.032020,1366552,0,86.789,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1147,286.95,99162,339.66,0.032168,1.6837</datapoint>
+          <datapoint>48.593,182.19,-8.3758,7.0719,8.8759,7.0726,34.227,0,34.227,0,2.0320,0.10248,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.026131,1115382,0,57.812,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9854,286.96,99181,339.67,0.070695,1.6843</datapoint>
+          <datapoint>48.832,180.32,-7.3769,3.4838,7.8769,3.4848,33.748,0,33.748,0,1.9886,0.080557,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.023190,989956,0,45.537,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9525,286.97,99197,339.67,0.14348,1.6851</datapoint>
+          <datapoint>49.102,178.39,-6.8769,1.8490,7.3769,1.8490,33.210,0,33.210,0,1.9907,0.0076977,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.021717,927194,0,39.943,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9934,286.98,99210,339.68,0.27042,1.6852</datapoint>
+          <datapoint>49.602,174.99,-6.7161,0.32172,6.8769,0.32292,32.212,0,32.212,0,2.0046,0.027878,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.020245,864483,0,34.719,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0095,286.99,99233,339.69,0.50000,1.6855</datapoint>
+          <datapoint>50.102,171.62,-6.7882,-0.14432,6.7161,0.15057,31.204,0,31.204,0,2.0261,0.042939,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.019771,844489,0,33.125,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0344,287.01,99273,339.70,0.50000,1.6856</datapoint>
+          <datapoint>50.602,168.23,-6.7458,0.084776,6.7997,0.58420,30.119,0,30.119,0,2.3151,0.57802,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.020016,855228,0,33.966,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.4219,287.03,99312,339.71,0.50000,1.6858</datapoint>
+          <datapoint>51.102,164.85,-6.7681,-0.044566,6.7510,0.38603,29.009,0,29.009,0,2.1233,0.38345,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.019872,849321,0,33.492,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0507,287.06,99352,339.73,0.50000,1.6860</datapoint>
+          <datapoint>51.602,161.47,-6.7588,0.018555,6.7700,0.23435,27.977,0,27.977,0,2.0065,0.23362,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.019927,851935,0,33.691,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9628,287.08,99392,339.74,0.50000,1.6861</datapoint>
+          <datapoint>52.102,158.09,-6.7545,0.0087529,6.7704,0.57517,27.045,0,27.045,0,1.7190,0.57510,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.019927,852203,0,33.706,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.6114,287.10,99431,339.75,0.50000,1.6863</datapoint>
+          <datapoint>52.602,154.72,-6.7627,-0.016477,6.7552,0.14751,26.204,0,26.204,0,1.6457,0.14658,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.019882,850516,0,33.566,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.6181,287.12,99471,339.77,0.50000,1.6864</datapoint>
+          <datapoint>53.102,151.34,-6.7578,0.0098125,6.7629,0.074108,25.372,0,25.372,0,1.6824,0.073455,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.019904,851705,0,33.653,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.6962,287.14,99510,339.78,0.50000,1.6866</datapoint>
+          <datapoint>53.602,147.96,-6.7415,0.032505,6.7812,0.82248,24.428,0,24.428,0,2.0933,0.82183,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.019957,854237,0,33.846,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2457,287.17,99550,339.79,0.50000,1.6867</datapoint>
+          <datapoint>54.102,144.58,-6.7642,-0.045303,6.7418,0.092149,23.371,0,23.371,0,2.1335,0.080244,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.019840,849488,0,33.464,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1486,287.19,99590,339.81,0.50000,1.6869</datapoint>
+          <datapoint>54.602,141.21,-6.7506,0.027116,6.7668,0.27301,22.339,0,22.339,0,1.9976,0.27166,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.019913,852859,0,33.724,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9470,287.21,99629,339.82,0.50000,1.6871</datapoint>
+          <datapoint>55.102,137.83,-6.7567,-0.012195,6.7511,0.12028,21.325,0,21.325,0,2.0575,0.11966,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.019866,851111,0,33.579,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0799,287.23,99669,339.83,0.50000,1.6872</datapoint>
+          <datapoint>55.602,134.45,-6.7526,0.0081545,6.7569,0.061030,20.289,0,20.289,0,2.0877,0.060483,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.019882,852055,0,33.647,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0990,287.25,99709,339.85,0.50000,1.6874</datapoint>
+          <datapoint>56.102,131.08,-6.7481,0.0091827,6.7595,0.44239,19.300,0,19.300,0,1.8666,0.44230,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.019889,852607,0,33.684,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7841,287.28,99748,339.86,0.50000,1.6875</datapoint>
+          <datapoint>56.602,127.70,-6.7499,-0.0037144,6.7530,0.37752,18.414,0,18.414,0,1.6778,0.37750,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.019869,852016,0,33.630,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.6072,287.30,99788,339.87,0.50000,1.6877</datapoint>
+          <datapoint>57.102,124.33,-6.7507,-0.0015204,6.7505,0.13226,17.558,0,17.558,0,1.7439,0.13225,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.019861,851921,0,33.616,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7687,287.32,99827,339.89,0.50000,1.6878</datapoint>
+          <datapoint>57.602,120.95,-6.7492,0.0029773,6.7507,0.023763,16.689,0,16.689,0,1.7321,0.023576,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.019861,852163,0,33.629,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7277,287.34,99867,339.90,0.50000,1.6880</datapoint>
+          <datapoint>58.102,117.58,-6.7480,0.0023036,6.7496,0.10358,15.810,0,15.810,0,1.7839,0.10356,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.019857,852241,0,33.628,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8032,287.36,99906,339.91,0.50000,1.6882</datapoint>
+          <datapoint>58.602,114.20,-6.7459,0.0042175,6.7499,0.22930,14.947,0,14.947,0,1.6693,0.22926,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.019857,852501,0,33.642,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.6266,287.39,99946,339.93,0.50000,1.6883</datapoint>
+          <datapoint>59.102,110.83,-6.7458,1.8103e-4,6.7470,0.17949,14.090,0,14.090,0,1.7590,0.17949,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.019848,852365,0,33.625,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7925,287.41,99986,339.94,0.50000,1.6885</datapoint>
+          <datapoint>59.602,107.46,-6.7398,0.012053,6.7531,0.45804,13.153,0,13.153,0,1.9880,0.45788,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.019865,853355,0,33.696,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0730,287.43,100025,339.95,0.50000,1.6886</datapoint>
+          <datapoint>60.102,104.09,-6.7405,-0.0013939,6.7478,0.47814,12.219,0,12.219,0,1.7489,0.47814,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.019848,852899,0,33.653,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.6600,287.45,100065,339.97,0.50000,1.6888</datapoint>
+          <datapoint>60.602,100.72,-6.7439,-0.0066941,6.7413,0.15070,11.326,0,11.326,0,1.8242,0.15055,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.019829,852299,0,33.599,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8522,287.47,100104,339.98,0.50000,1.6890</datapoint>
+          <datapoint>61.102,97.347,-6.7413,0.0050393,6.7439,0.0056074,10.413,0,10.413,0,1.8254,0.0024593,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.019835,852842,0,33.636,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8259,287.50,100144,339.99,0.50000,1.6892</datapoint>
+          <datapoint>61.602,93.976,-6.7401,0.0023751,6.7424,0.17470,9.5225,0,9.5225,0,1.7381,0.17469,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.019830,852878,0,33.632,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7056,287.52,100183,340.01,0.50000,1.6893</datapoint>
+          <datapoint>62.102,90.609,-6.7268,0.026621,6.7581,0.71956,8.5636,0,8.5636,0,2.0976,0.71907,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.019876,855081,0,33.799,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2299,287.54,100223,340.02,0.50000,1.6895</datapoint>
+          <datapoint>62.602,87.242,-6.7429,-0.032224,6.7289,0.24270,7.5449,0,7.5449,0,1.9773,0.24055,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.019789,851605,0,33.518,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9324,287.56,100262,340.03,0.50000,1.7088</datapoint>
+          <datapoint>63.102,83.875,-6.7268,0.032221,6.7548,0.58584,6.4831,0,6.4831,0,2.2698,0.58495,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.019864,855108,0,33.788,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.3774,287.58,100302,340.05,0.50000,1.7092</datapoint>
+          <datapoint>63.602,80.508,-6.7406,-0.027563,6.7278,0.16712,5.3276,0,5.3276,0,2.3522,0.16483,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.019784,851907,0,33.529,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.3829,287.60,100341,340.06,0.50000,1.7184</datapoint>
+          <datapoint>64.102,77.140,-6.7306,0.020014,6.7445,0.33433,4.1098,0,4.1098,0,2.5191,0.33373,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.019833,854241,0,33.706,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.5807,287.63,100381,340.07,0.50000,1.7451</datapoint>
+          <datapoint>64.602,73.774,-6.7335,-0.0057203,6.7347,0.34355,2.8932,0,2.8932,0,2.3473,0.34350,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.019803,853224,0,33.619,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2837,287.65,100420,340.09,0.50000,1.7453</datapoint>
+          <datapoint>65.102,70.407,-6.7320,0.0028963,6.7356,0.24931,1.7507,0,1.7507,0,2.2227,0.24929,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.019805,853558,0,33.639,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1766,287.67,100460,340.10,0.50000,1.7455</datapoint>
+          <datapoint>65.602,67.042,-6.7279,0.0083180,6.7387,0.43710,0.69397,0,0.69397,0,2.0042,0.43702,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.019813,854161,0,33.680,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9236,287.69,100499,340.11,0.50000,1.7456</datapoint>
+          <datapoint>66.102,63.677,-6.7328,-0.0099219,6.7282,0.098012,-0.32030,0,0.32030,3.1416,2.0529,0.097508,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.019782,853053,0,33.586,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0710,287.71,100539,340.12,0.50000,1.7458</datapoint>
+          <datapoint>66.602,60.313,-6.7259,0.013914,6.7374,0.36428,-1.3923,0,1.3923,3.1416,2.2349,0.36402,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.019808,854442,0,33.689,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.3020,287.74,100578,340.14,0.50000,1.7460</datapoint>
+          <datapoint>67.102,56.949,-6.7304,-0.0090978,6.7265,0.13491,-2.4929,0,2.4929,3.1416,2.1676,0.13460,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.019775,853274,0,33.590,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1427,287.76,100618,340.15,0.50000,1.7461</datapoint>
+          <datapoint>67.602,53.585,-6.7257,0.0094777,6.7325,0.24746,-3.6076,0,3.6076,3.1416,2.2913,0.24728,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.019792,854259,0,33.661,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.3368,287.78,100657,340.16,0.50000,1.7463</datapoint>
+          <datapoint>68.102,50.221,-6.7279,-0.0043670,6.7257,0.0075428,-4.7525,0,4.7525,3.1416,2.2882,0.0061500,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.019771,853607,0,33.603,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2871,287.80,100697,340.18,0.50000,1.7464</datapoint>
+          <datapoint>68.602,46.858,-6.7253,0.0052106,6.7279,0.043935,-5.8911,0,5.8911,3.1416,2.2664,0.043625,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.019777,854110,0,33.636,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2583,287.82,100736,340.19,0.50000,1.7466</datapoint>
+          <datapoint>69.102,43.496,-6.7234,0.0038093,6.7275,0.25125,-7.0557,0,7.0557,3.1416,2.3920,0.25123,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.019775,854268,0,33.642,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.4382,287.85,100775,340.20,0.50000,1.7467</datapoint>
+          <datapoint>69.602,40.134,-6.7243,-0.0018007,6.7234,0.036298,-8.2563,0,8.2563,3.1416,2.4101,0.036254,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.019762,853971,0,33.612,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.4168,287.87,100815,340.22,0.50000,1.7469</datapoint>
+          <datapoint>70.102,36.772,-6.7217,0.0051185,6.7251,0.15731,-9.4810,0,9.4810,3.1416,2.4887,0.15723,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.019766,854406,0,33.640,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.5176,287.89,100854,340.23,0.50000,1.7475</datapoint>
+          <datapoint>70.602,33.413,-6.7176,0.0081068,6.7276,0.41244,-10.674,0,10.674,3.1416,2.2826,0.41236,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.019773,854940,0,33.676,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2069,287.91,100894,340.24,0.50000,1.7477</datapoint>
+          <datapoint>71.102,30.053,-6.7218,-0.0083852,6.7183,0.13325,-11.798,0,11.798,3.1416,2.2161,0.13299,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.019745,853970,0,33.593,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1916,287.93,100933,340.26,0.50000,1.7478</datapoint>
+          <datapoint>71.602,26.693,-6.7167,0.010249,6.7247,0.28717,-12.871,0,12.871,3.1416,2.0726,0.28699,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.019763,855005,0,33.668,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0200,287.95,100973,340.27,0.50000,1.7480</datapoint>
+          <datapoint>72.102,23.335,-6.7173,-0.0011425,6.7199,0.30379,-13.869,0,13.869,3.1416,1.9207,0.30379,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.019748,854615,0,33.630,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8649,287.98,101012,340.28,0.50000,1.7482</datapoint>
+          <datapoint>72.602,19.976,-6.7150,0.0045720,6.7211,0.33352,-14.871,0,14.871,3.1416,2.0874,0.33349,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.019751,854988,0,33.653,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1485,288.00,101051,340.30,0.50000,1.7483</datapoint>
+          <datapoint>73.102,16.619,-6.7166,-0.0031482,6.7160,0.17371,-15.893,0,15.893,3.1416,2.0006,0.17368,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.019735,854556,0,33.613,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9687,288.02,101091,340.31,0.50000,1.7485</datapoint>
+          <datapoint>73.602,13.261,-6.7150,0.0030661,6.7166,0.034501,-16.889,0,16.889,3.1416,1.9834,0.034364,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.019736,854845,0,33.629,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9771,288.04,101130,340.32,0.50000,1.7486</datapoint>
+          <datapoint>74.102,9.9036,-6.7132,0.0036199,6.7164,0.19932,-17.856,0,17.856,3.1416,1.8838,0.19928,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.019735,855037,0,33.638,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8473,288.06,101169,340.34,0.50000,1.7488</datapoint>
+          <datapoint>74.602,6.5520,-6.6931,0.040205,6.7411,0.90128,-18.910,0,18.910,3.1416,2.3339,0.90038,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.019806,858398,0,33.896,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.4963,288.09,101209,340.35,0.50000,1.7489</datapoint>
+          <datapoint>75.102,3.1995,-6.7170,-0.047771,6.6990,0.41212,-20.026,0,20.026,3.1416,2.1293,0.40934,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.019682,853249,0,33.484,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0538,288.11,101248,340.36,0.50000,1.7492</datapoint>
+          <datapoint>75.602,-0.15615,-6.7055,0.023082,6.7214,0.35790,-21.046,0,21.046,3.1416,1.9507,0.35715,NaN,NaN,NaN,NaN,3.4209,NaN,NaN,NaN,0.019747,856323,0,33.719,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8857,288.13,101287,340.38,0.50000,1.7493</datapoint>
+        </databranch>
+      </flightdata>
+    </simulation>
+
+    <simulation status="uptodate">
+      <name>Simulation 3</name>
+      <simulator>RK4Simulator</simulator>
+      <calculator>BarrowmanCalculator</calculator>
+      <conditions>
+        <configid>5333860a-6bfa-4e75-bf9e-6608bf53ee08</configid>
+        <launchrodlength>2.5</launchrodlength>
+        <launchrodangle>0.0</launchrodangle>
+        <launchroddirection>0.0</launchroddirection>
+        <windaverage>2.0</windaverage>
+        <windturbulence>0.1</windturbulence>
+        <launchaltitude>0.0</launchaltitude>
+        <launchlatitude>65.0</launchlatitude>
+        <atmosphere model="isa"/>
+        <timestep>0.05</timestep>
+      </conditions>
+      <flightdata maxaltitude="1296.9" maxvelocity="193.60" maxacceleration="106.94" maxmach="0.57070" timetoapogee="15.340" flighttime="101.49" groundhitvelocity="6.7109">
+        <databranch name="Main" types="Time,Altitude,Vertical velocity,Vertical acceleration,Total velocity,Total acceleration,Position upwind,Position parallel to wind,Lateral distance,Lateral direction,Lateral velocity,Lateral acceleration,Angle of attack,Roll rate,Pitch rate,Yaw rate,Mass,CP location,CG location,Stability margin calibers,Mach number,Reynolds number,Thrust,Drag force,Drag coefficient,Axial drag coefficient,Friction drag coefficient,Pressure drag coefficient,Base drag coefficient,Normal force coefficient,Pitch moment coefficient,Yaw moment coefficient,Side force coefficient,Roll moment coefficient,Roll forcing coefficient,Roll damping coefficient,Pitch damping coefficient,Reference length,Reference area,Vertical orientation (zenith),Lateral orientation (azimuth),Wind velocity,Air temperature,Air pressure,Speed of sound,Simulation time step,Computation time">
+          <event time="0" type="launch"/>
+          <event time="0" type="ignition"/>
+          <event time="0.050000" type="liftoff"/>
+          <event time="0.25000" type="launchrod"/>
+          <event time="3.5572" type="burnout"/>
+          <event time="3.5572" type="ejectioncharge"/>
+          <event time="15.390" type="apogee"/>
+          <event time="15.440" type="recoverydevicedeployment"/>
+          <event time="74.018" type="recoverydevicedeployment"/>
+          <event time="101.49" type="groundhit"/>
+          <event time="101.49" type="simulationend"/>
+          <datapoint>0,0,0,30.354,1.7635,30.354,0,0,0,0,0,0,1.5708,0,0,0,4.1494,NaN,NaN,NaN,0.0051808,224727,166.73,0,0.65381,0,0.51706,0.016744,0.12000,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,0.10200,0.0081713,1.5708,0,1.7635,288.15,101325,340.39,0.050000,0.0084251</datapoint>
+          <datapoint>0.25000,2.7918,24.195,106.23,24.252,106.24,0,0,0,0,0,0.51832,0.068501,0,0,0,4.1345,1.3130,1.1408,1.6887,0.071250,3089849,481.34,1.4809,0.48357,0.50320,0.34605,0.016863,0.12066,0.72818,1.2297,0,0,0,0,0,0,0.10200,0.0081713,1.5708,0,1.6600,288.13,101292,340.38,0.050000,0.047800</datapoint>
+          <datapoint>0.50000,12.110,50.094,99.903,50.125,99.908,-0.012811,0,0.012811,3.1416,0.044400,0.92607,0.021366,0,0.12092,0,4.1045,1.3513,1.1381,2.0900,0.14728,6381782,456.52,6.1261,0.48555,0.48771,0.34547,0.017260,0.12282,0.20297,0.42293,0,0,0,0,0,0.0012786,0.10200,0.0081713,1.5567,0,1.8218,288.07,101183,340.34,0.050000,0.077349</datapoint>
+          <datapoint>0.75000,27.648,73.835,91.069,73.872,91.261,0.056156,0,0.056156,0,0.81392,5.9276,0.015795,0,-0.077428,0,4.0608,1.3992,1.1342,2.5978,0.21709,9394111,423.75,13.343,0.48860,0.48980,0.34459,0.017879,0.12613,0.16768,0.43585,0,0,0,0,0,-2.4030e-4,0.10200,0.0081713,1.5232,0,1.5317,287.97,101001,340.28,0.032039,0.17707</datapoint>
+          <datapoint>0.99639,48.601,96.151,88.590,96.239,88.662,0.43292,0,0.43292,0,2.1294,3.5480,0.0032181,0,-0.075343,0,4.0034,1.3701,1.1289,2.3640,0.28289,12219056,416.99,22.732,0.49256,0.49261,0.34345,0.018701,0.13040,0.029280,0.069352,0,0,0,0,0,-1.3329e-4,0.10200,0.0081713,1.5313,0,1.9769,287.83,100755,340.20,0.045291,0.24654</datapoint>
+          <datapoint>1.2260,73.072,117.22,92.579,117.31,92.651,0.99915,0,0.99915,0,2.8083,3.6756,0.0016094,0,0.064989,0,3.9341,1.3727,1.1224,2.4544,0.34493,14866938,437.15,34.019,0.49728,0.49729,0.34210,0.019708,0.13547,0.014625,0.035829,0,0,0,0,0,6.6300e-5,0.10200,0.0081713,1.5324,0,1.8792,287.68,100468,340.10,0.047740,0.28996</datapoint>
+          <datapoint>1.4956,107.91,140.73,81.439,140.85,81.492,1.9234,0,1.9234,0,4.0039,2.9337,0.0028439,0,-0.033441,0,3.8413,1.3729,1.1132,2.5462,0.41432,17802701,400.27,49.518,0.50373,0.50377,0.34028,0.021136,0.14232,0.026036,0.066304,0,0,0,0,0,-1.2073e-5,0.10200,0.0081713,1.5314,0,1.9487,287.45,100059,339.96,0.046856,0.35390</datapoint>
+          <datapoint>1.7307,143.19,159.19,75.773,159.35,75.910,2.9478,0,2.9478,0,4.7996,4.5596,0.0018382,0,-0.019648,0,3.7509,1.4167,1.1039,3.0672,0.46891,20085620,385.44,63.910,0.50971,0.50973,0.33861,0.022518,0.14858,0.019159,0.058766,0,0,0,0,0,-3.2312e-6,0.10200,0.0081713,1.5251,0,2.1945,287.22,99646,339.82,0.048883,0.43244</datapoint>
+          <datapoint>1.9693,183.18,175.47,61.032,175.65,61.112,4.1998,0,4.1998,0,5.5883,3.1409,2.5105e-4,0,0.055883,0,3.6568,1.3782,1.0936,2.7902,0.51713,22072464,337.64,78.267,0.51569,0.51569,0.33697,0.023963,0.15476,0.0023003,0.0063970,0,0,0,0,0,2.1354e-5,0.10200,0.0081713,1.5252,0,2.4703,286.96,99177,339.67,0.045103,0.45714</datapoint>
+          <datapoint>2.2199,228.90,188.47,36.517,188.65,36.535,5.7103,0,5.7103,0,6.3079,1.1298,0.0018385,0,0.026876,0,3.5660,1.3781,1.0832,2.8907,0.55570,23622088,256.10,90.812,0.52097,0.52099,0.33553,0.025297,0.16014,0.016974,0.049063,0,0,0,0,0,4.2551e-6,0.10200,0.0081713,1.5285,0,2.0111,286.66,98640,339.49,0.034413,0.53662</datapoint>
+          <datapoint>2.4613,275.11,193.21,6.2468,193.40,6.2485,7.2810,0,7.2810,0,6.6205,0.14354,0.0011589,0,0.019194,0,3.5053,1.3794,1.0760,2.9746,0.56999,24128749,151.70,95.392,0.52305,0.52306,0.33498,0.025837,0.16224,0.010695,0.031810,0,0,0,0,0,2.0577e-6,0.10200,0.0081713,1.5272,0,2.0237,286.36,98098,339.31,0.046410,0.55349</datapoint>
+          <datapoint>2.7187,324.83,192.28,-11.939,192.46,11.954,9.0025,0,9.0025,0,6.6838,0.59917,0.0010607,0,0.019438,0,3.4633,1.3794,1.0708,3.0250,0.56756,23917579,86.553,93.950,0.52269,0.52270,0.33507,0.025744,0.16188,0.0097839,0.029594,0,0,0,0,0,2.1263e-6,0.10200,0.0081713,1.5278,0,1.7983,286.04,97515,339.11,0.046541,0.59075</datapoint>
+          <datapoint>2.9591,370.60,188.14,-21.724,188.34,21.740,10.603,0,10.603,0,6.6248,0.83643,6.4560e-4,0,-0.012131,0,3.4394,1.3793,1.0679,3.0533,0.55568,23319220,48.260,89.266,0.52097,0.52097,0.33553,0.025296,0.16014,0.0059420,0.018143,0,0,0,0,0,-8.6397e-7,0.10200,0.0081713,1.5254,0,2.0385,285.74,96978,338.93,0.049419,0.60462</datapoint>
+          <datapoint>3.2075,416.60,182.01,-26.948,182.20,26.961,12.226,0,12.226,0,6.4404,0.81867,8.9379e-5,0,0.0045748,0,3.4255,1.3791,1.0661,3.0690,0.53787,22476271,24.054,82.769,0.51848,0.51848,0.33621,0.024659,0.15761,8.2009e-4,0.0025167,0,0,0,0,0,1.3120e-7,0.10200,0.0081713,1.5252,0,1.8724,285.44,96439,338.75,0.049902,0.62171</datapoint>
+          <datapoint>3.4572,461.19,174.97,-30.132,175.16,30.143,13.809,0,13.809,0,6.2371,0.83965,2.2489e-4,0,0.0065503,0,3.4191,1.4196,1.0653,3.4732,0.51735,21529663,6.2717,75.753,0.51572,0.51572,0.33696,0.023970,0.15479,0.0023445,0.0081427,0,0,0,0,0,2.9096e-7,0.10200,0.0081713,1.5245,0,1.8281,285.15,95916,338.57,0.049984,0.64317</datapoint>
+          <datapoint>3.7072,503.96,167.31,-29.883,167.49,29.888,15.335,0,15.335,0,5.9977,0.53932,9.8970e-4,0,0.012453,0,3.4191,1.4182,1.0653,3.4599,0.49493,20515082,0,68.585,0.51286,0.51286,0.33774,0.023269,0.15184,0.010316,0.035692,0,0,0,0,0,1.1501e-6,0.10200,0.0081713,1.5238,0,1.7052,284.87,95417,338.40,0.049997,0.65814</datapoint>
+          <datapoint>3.9572,544.87,160.08,-28.023,160.26,28.029,16.803,0,16.803,0,5.7558,0.58178,7.7065e-4,0,-0.0075128,0,3.4191,1.4179,1.0653,3.4569,0.47379,19568237,0,62.236,0.51029,0.51029,0.33845,0.022654,0.14918,0.0080152,0.027708,0,0,0,0,0,-4.5725e-7,0.10200,0.0081713,1.5231,0,1.7573,284.61,94959,338.24,0.050000,0.70059</datapoint>
+          <datapoint>4.2072,584.04,153.29,-26.377,153.47,26.382,18.216,0,18.216,0,5.5435,0.53752,8.1631e-4,0,-0.0096738,0,3.4191,1.4174,1.0653,3.4519,0.45393,18682801,0,56.606,0.50799,0.50799,0.33909,0.022114,0.14679,0.0084780,0.029266,0,0,0,0,0,-8.2669e-7,0.10200,0.0081713,1.5216,0,1.8722,284.35,94522,338.09,0.050000,0.71494</datapoint>
+          <datapoint>4.4572,621.55,146.89,-24.886,147.06,24.903,19.580,0,19.580,0,5.3356,0.91764,7.2529e-4,0,0.025817,0,3.4191,1.3755,1.0653,3.0418,0.43516,17850582,0,51.580,0.50592,0.50592,0.33967,0.021634,0.14462,0.0066120,0.020106,0,0,0,0,0,6.4125e-6,0.10200,0.0081713,1.5230,0,1.7966,284.11,94103,337.94,0.050000,0.74309</datapoint>
+          <datapoint>4.7072,657.51,140.83,-23.568,141.01,23.587,20.895,0,20.895,0,5.1598,0.95103,0.0010858,0,0.019059,0,3.4191,1.3748,1.0653,3.0342,0.41743,17068351,0,47.085,0.50405,0.50406,0.34019,0.021208,0.14265,0.0098962,0.030023,0,0,0,0,0,3.8009e-6,0.10200,0.0081713,1.5213,0,1.9660,283.88,93701,337.80,0.050000,0.75716</datapoint>
+          <datapoint>4.9572,691.99,135.08,-22.380,135.25,22.401,22.168,0,22.168,0,5.0380,0.96449,0.0015741,0,-0.038597,0,3.4191,1.3739,1.0653,3.0257,0.40054,16326916,0,43.028,0.50235,0.50236,0.34067,0.020825,0.14086,0.014349,0.043434,0,0,0,0,0,-1.6944e-5,0.10200,0.0081713,1.5227,0,1.6815,283.65,93316,337.66,0.050000,0.79255</datapoint>
+          <datapoint>5.2031,724.55,129.71,-21.368,129.88,21.369,23.376,0,23.376,0,4.8350,0.17595,0.0018528,0,-0.019391,0,3.4191,1.4149,1.0653,3.4277,0.38479,15638663,0,39.436,0.50083,0.50085,0.34110,0.020486,0.13925,0.019198,0.065809,0,0,0,0,0,-4.6375e-6,0.10200,0.0081713,1.5172,0,1.8773,283.44,92952,337.53,0.049616,0.81503</datapoint>
+          <datapoint>5.4367,754.27,124.83,-20.410,125.01,20.442,24.495,0,24.495,0,4.6833,1.1440,0.0031156,0,0.031787,0,3.4191,1.3717,1.0653,3.0044,0.37049,15016839,0,36.335,0.49951,0.49956,0.34147,0.020194,0.13784,0.028467,0.085512,0,0,0,0,0,1.3452e-5,0.10200,0.0081713,1.5200,0,2.0491,283.25,92620,337.42,0.048481,0.82639</datapoint>
+          <datapoint>5.7061,787.17,119.45,-19.477,119.65,19.490,25.738,0,25.738,0,4.5801,0.72435,0.0010266,0,-0.033847,0,3.4191,1.3735,1.0653,3.0218,0.35473,14334788,0,33.080,0.49811,0.49812,0.34187,0.019889,0.13636,0.0093193,0.028178,0,0,0,0,0,-1.6650e-5,0.10200,0.0081713,1.5146,0,2.2651,283.03,92252,337.29,0.045208,0.83956</datapoint>
+          <datapoint>5.9428,814.91,114.93,-18.730,115.12,18.735,26.799,0,26.799,0,4.4003,0.42961,4.5442e-4,0,-0.028997,0,3.4191,1.4155,1.0653,3.4336,0.34142,13761888,0,30.472,0.49699,0.49699,0.34219,0.019644,0.13515,0.0046809,0.016085,0,0,0,0,0,-1.3201e-5,0.10200,0.0081713,1.5132,0,2.1793,282.85,91943,337.18,0.049195,0.84975</datapoint>
+          <datapoint>6.1906,842.82,110.38,-17.996,110.59,18.003,27.877,0,27.877,0,4.2936,0.49086,3.0680e-5,0,-0.0049412,0,3.4191,1.4157,1.0653,3.4355,0.32808,13190201,0,27.980,0.49590,0.49590,0.34250,0.019411,0.13399,3.1548e-4,0.0010842,0,0,0,0,0,-4.1538e-7,0.10200,0.0081713,1.5101,0,2.4064,282.67,91631,337.07,0.049865,0.86056</datapoint>
+          <datapoint>6.4402,869.82,105.98,-17.326,106.19,17.331,28.931,0,28.931,0,4.1659,0.42941,3.1668e-4,0,-0.010967,0,3.4191,1.4152,1.0653,3.4307,0.31514,12638225,0,25.679,0.49489,0.49489,0.34279,0.019194,0.13291,0.0032564,0.011174,0,0,0,0,0,-2.2192e-6,0.10200,0.0081713,1.5070,0,2.5693,282.50,91329,336.96,0.049977,0.90764</datapoint>
+          <datapoint>6.6902,895.77,101.72,-16.694,101.93,16.704,29.962,0,29.962,0,4.0758,0.56830,0.0011148,0,-0.019824,0,3.4191,1.3725,1.0653,3.0119,0.30258,12105369,0,23.553,0.49395,0.49396,0.34305,0.018995,0.13190,0.010095,0.030414,0,0,0,0,0,-7.8704e-6,0.10200,0.0081713,1.5087,0,2.3673,282.33,91039,336.86,0.049996,0.93512</datapoint>
+          <datapoint>6.9401,920.69,97.624,-16.129,97.832,16.136,30.961,0,30.961,0,3.9237,0.47319,5.6192e-4,0,0.033948,0,3.4191,1.3729,1.0653,3.0155,0.29051,11595266,0,21.606,0.49308,0.49309,0.34330,0.018812,0.13097,0.0050782,0.015288,0,0,0,0,0,2.5052e-5,0.10200,0.0081713,1.5061,0,2.4515,282.17,90761,336.76,0.049999,0.94546</datapoint>
+          <datapoint>7.1901,944.59,93.655,-15.626,93.867,15.627,31.932,0,31.932,0,3.8574,0.13378,0.0022215,0,0.011400,0,3.4191,1.4128,1.0653,3.4072,0.27881,11103596,0,19.811,0.49228,0.49231,0.34353,0.018643,0.13011,0.022907,0.078046,0,0,0,0,0,3.0689e-6,0.10200,0.0081713,1.5012,0,2.4589,282.01,90494,336.67,0.050000,0.95653</datapoint>
+          <datapoint>7.4401,967.52,89.814,-15.100,90.012,15.118,32.888,0,32.888,0,3.7682,0.74306,0.0042072,0,-0.017098,0,3.4191,1.3689,1.0653,2.9763,0.26743,10627445,0,18.150,0.49153,0.49162,0.34375,0.018486,0.12930,0.038356,0.11417,0,0,0,0,0,-7.5072e-6,0.10200,0.0081713,1.5086,0,2.2002,281.86,90237,336.58,0.050000,0.96678</datapoint>
+          <datapoint>7.6901,989.51,86.091,-14.693,86.267,14.693,33.811,0,33.811,0,3.6618,0.034860,0.0028326,0,-0.0066600,0,3.4191,1.4119,1.0653,3.3984,0.25637,10166745,0,16.609,0.49083,0.49087,0.34395,0.018340,0.12854,0.029223,0.099314,0,0,0,0,0,-1.2401e-6,0.10200,0.0081713,1.5042,0,1.8377,281.72,89992,336.49,0.050000,0.99308</datapoint>
+          <datapoint>7.9401,1010.6,82.474,-14.262,82.644,14.264,34.720,0,34.720,0,3.5965,0.27309,1.3700e-4,0,0.0077043,0,3.4191,1.4144,1.0653,3.4231,0.24567,9723466,0,15.191,0.49019,0.49019,0.34413,0.018206,0.12785,0.0014038,0.0048036,0,0,0,0,0,1.8081e-6,0.10200,0.0081713,1.5064,0,1.7082,281.58,89762,336.41,0.050000,1.0033</datapoint>
+          <datapoint>8.1901,1030.8,78.960,-13.866,79.153,13.875,35.607,0,35.607,0,3.4746,0.49137,0.0029299,0,0.049779,0,3.4191,1.3697,1.0653,2.9845,0.23534,9298119,0,13.892,0.48959,0.48963,0.34431,0.018083,0.12720,0.026587,0.079268,0,0,0,0,0,8.2289e-5,0.10200,0.0081713,1.5040,0,2.0411,281.45,89547,336.33,0.050000,1.0136</datapoint>
+          <datapoint>8.4401,1050.1,75.531,-13.554,75.722,13.554,36.469,0,36.469,0,3.4557,0.10661,0.0049604,0,0.014457,0,3.4191,1.4095,1.0653,3.3746,0.22519,8881853,0,12.678,0.48903,0.48915,0.34447,0.017967,0.12659,0.051370,0.17334,0,0,0,0,0,7.5840e-6,0.10200,0.0081713,1.4948,0,1.9218,281.32,89342,336.25,0.050000,1.0290</datapoint>
+          <datapoint>8.6901,1068.5,72.192,-13.177,72.389,13.188,37.327,0,37.327,0,3.3861,0.53760,0.0048480,0,-0.011082,0,3.4191,1.3676,1.0653,2.9635,0.21533,8478643,0,11.553,0.48851,0.48862,0.34462,0.017860,0.12603,0.044189,0.13096,0,0,0,0,0,-4.8758e-6,0.10200,0.0081713,1.5019,0,1.9503,281.20,89146,336.18,0.050000,1.0405</datapoint>
+          <datapoint>8.9401,1086.2,68.935,-12.894,69.130,12.895,38.158,0,38.158,0,3.2731,0.19555,5.7735e-4,0,-0.048624,0,3.4191,1.4136,1.0653,3.4146,0.20568,8085857,0,10.505,0.48802,0.48802,0.34476,0.017760,0.12550,0.0059135,0.020295,0,0,0,0,0,-1.0293e-4,0.10200,0.0081713,1.4950,0,1.9222,281.09,88958,336.11,0.050000,1.0509</datapoint>
+          <datapoint>9.1901,1103.0,65.745,-12.613,65.965,12.614,38.973,0,38.973,0,3.2536,0.17765,9.0530e-4,0,-4.5965e-4,0,3.4191,1.4132,1.0653,3.4105,0.19630,7705504,0,9.5412,0.48757,0.48757,0.34489,0.017668,0.12501,0.0092770,0.031639,0,0,0,0,0,-1.0102e-8,0.10200,0.0081713,1.4881,0,2.1371,280.98,88779,336.04,0.050000,1.0612</datapoint>
+          <datapoint>9.4401,1119.0,62.627,-12.333,62.868,12.339,39.778,0,39.778,0,3.1801,0.38313,0.0036442,0,0.020187,0,3.4191,1.3684,1.0653,2.9722,0.18712,7334480,0,8.6464,0.48715,0.48721,0.34501,0.017582,0.12455,0.033082,0.098305,0,0,0,0,0,2.1451e-5,0.10200,0.0081713,1.4869,0,2.3192,280.88,88608,335.98,0.050000,1.1103</datapoint>
+          <datapoint>9.6901,1134.3,59.571,-12.099,59.814,12.101,40.566,0,40.566,0,3.1340,0.23798,8.1507e-4,0,0.011789,0,3.4191,1.3712,1.0653,2.9991,0.17806,6969773,0,7.8078,0.48675,0.48675,0.34513,0.017502,0.12412,0.0073411,0.022009,0,0,0,0,0,8.0826e-6,0.10200,0.0081713,1.4815,0,2.2496,280.78,88446,335.92,0.050000,1.1330</datapoint>
+          <datapoint>9.9401,1148.8,56.573,-11.883,56.792,11.884,41.345,0,41.345,0,3.1034,0.073678,0.0025849,0,0.010948,0,3.4191,1.4113,1.0653,3.3920,0.16909,6610049,0,7.0239,0.48638,0.48641,0.34523,0.017426,0.12372,0.026573,0.090127,0,0,0,0,0,7.7324e-6,0.10200,0.0081713,1.4804,0,1.8772,280.68,88291,335.86,0.050000,1.1495</datapoint>
+          <datapoint>10.190,1162.6,53.631,-11.656,53.840,11.658,42.117,0,42.117,0,3.0632,0.23873,0.0023769,0,-0.015141,0,3.4191,1.3695,1.0653,2.9822,0.16033,6259593,0,6.2996,0.48603,0.48606,0.34533,0.017357,0.12334,0.021488,0.064099,0,0,0,0,0,-1.6455e-5,0.10200,0.0081713,1.4852,0,1.6690,280.59,88145,335.81,0.050000,1.1605</datapoint>
+          <datapoint>10.440,1175.7,50.743,-11.457,50.956,11.460,42.873,0,42.873,0,2.9848,0.27392,0.0042508,0,0.028771,0,3.4191,1.3675,1.0653,2.9632,0.15177,5918253,0,5.6327,0.48571,0.48580,0.34543,0.017292,0.12299,0.038615,0.11436,0,0,0,0,0,6.6326e-5,0.10200,0.0081713,1.4836,0,1.6684,280.51,88006,335.76,0.050000,1.1874</datapoint>
+          <datapoint>10.690,1188.0,47.902,-11.284,48.146,11.285,43.610,0,43.610,0,2.9165,0.18765,0.0015569,0,0.063452,0,3.4191,1.3702,1.0653,2.9889,0.14342,5586412,0,5.0187,0.48542,0.48543,0.34551,0.017233,0.12267,0.014039,0.041600,0,0,0,0,0,3.6136e-4,0.10200,0.0081713,1.4716,0,1.9277,280.43,87875,335.71,0.050000,1.1998</datapoint>
+          <datapoint>10.940,1199.6,45.100,-11.124,45.385,11.125,44.336,0,44.336,0,2.8940,0.11922,0.0010255,0,-0.045715,0,3.4191,1.4125,1.0653,3.4045,0.13521,5261196,0,4.4520,0.48515,0.48515,0.34559,0.017178,0.12238,0.010495,0.035943,0,0,0,0,0,-2.1109e-4,0.10200,0.0081713,1.4575,0,2.1906,280.35,87751,335.66,0.050000,1.2100</datapoint>
+          <datapoint>11.190,1210.5,42.337,-10.976,42.638,10.976,45.057,0,45.057,0,2.8776,0.058173,0.0033838,0,-0.021535,0,3.4191,1.4102,1.0653,3.3814,0.12704,4938358,0,3.9234,0.48489,0.48495,0.34566,0.017127,0.12210,0.034818,0.11778,0,0,0,0,0,-5.3073e-5,0.10200,0.0081713,1.4485,0,2.1791,280.28,87635,335.62,0.050000,1.2206</datapoint>
+          <datapoint>11.440,1220.8,39.611,-10.832,39.906,10.832,45.775,0,45.775,0,2.8645,0.057774,0.0031788,0,0.0030579,0,3.4191,1.4103,1.0653,3.3829,0.11892,4618143,0,3.4315,0.48465,0.48470,0.34573,0.017079,0.12184,0.032687,0.11057,0,0,0,0,0,1.2217e-6,0.10200,0.0081713,1.4460,0,1.9771,280.21,87526,335.58,0.050000,1.2374</datapoint>
+          <datapoint>11.690,1230.3,36.922,-10.681,37.231,10.683,46.488,0,46.488,0,2.8342,0.21051,0.0063607,0,-0.0027329,0,3.4191,1.3652,1.0653,2.9401,0.11096,4305325,0,2.9837,0.48443,0.48463,0.34580,0.017035,0.12160,0.058062,0.17071,0,0,0,0,0,-1.1210e-6,0.10200,0.0081713,1.4482,0,1.9551,280.15,87424,335.54,0.050000,1.2477</datapoint>
+          <datapoint>11.940,1239.2,34.268,-10.552,34.606,10.555,47.189,0,47.189,0,2.7700,0.27814,0.012764,0,0.038413,0,3.4191,1.3590,1.0653,2.8792,0.10314,3998864,0,2.5775,0.48423,0.48502,0.34586,0.016995,0.12138,0.11848,0.34088,0,0,0,0,0,2.5636e-4,0.10200,0.0081713,1.4438,0,2.0501,280.09,87330,335.51,0.050000,1.2590</datapoint>
+          <datapoint>12.190,1247.5,31.643,-10.446,32.017,10.448,47.873,0,47.873,0,2.7108,0.22638,0.011121,0,0.076090,0,3.4191,1.3605,1.0653,2.8941,0.095439,3697338,0,2.2029,0.48405,0.48465,0.34591,0.016959,0.12118,0.10278,0.29629,0,0,0,0,0,0.0011751,0.10200,0.0081713,1.4289,0,2.1690,280.04,87242,335.48,0.050000,1.2694</datapoint>
+          <datapoint>12.440,1255.1,29.043,-10.365,29.434,10.365,48.545,0,48.545,0,2.6692,0.077496,0.0010017,0,-0.096157,0,3.4191,1.4123,1.0653,3.4023,0.087747,3396962,0,1.8575,0.48388,0.48389,0.34596,0.016925,0.12100,0.010242,0.037067,0,0,0,0,0,-0.0022204,0.10200,0.0081713,1.4065,0,2.1151,279.99,87161,335.45,0.050000,1.3433</datapoint>
+          <datapoint>12.690,1262.0,26.460,-10.289,26.877,10.289,49.212,0,49.212,0,2.6686,0.0054668,0.0092913,0,-0.070378,0,3.4191,1.4043,1.0653,3.3234,0.080129,3100060,0,1.5485,0.48373,0.48415,0.34600,0.016895,0.12083,0.096866,0.32335,0,0,0,0,0,-0.0014266,0.10200,0.0081713,1.3852,0,2.0462,279.95,87088,335.42,0.050000,1.3535</datapoint>
+          <datapoint>12.940,1268.3,23.898,-10.207,24.335,10.207,49.879,0,49.879,0,2.6706,0.0049166,0.010019,0,-0.043938,0,3.4191,1.4035,1.0653,3.3163,0.072557,2805505,0,1.2685,0.48359,0.48408,0.34604,0.016867,0.12068,0.10463,0.34765,0,0,0,0,0,-6.7825e-4,0.10200,0.0081713,1.3709,0,1.9227,279.91,87021,335.39,0.050000,1.3639</datapoint>
+          <datapoint>13.190,1274.0,21.359,-10.114,21.863,10.114,50.545,0,50.545,0,2.6564,0.091215,0.0052551,0,0.040286,0,3.4191,1.3660,1.0653,2.9486,0.065190,2519329,0,1.0223,0.48347,0.48361,0.34608,0.016843,0.12055,0.047800,0.14024,0,0,0,0,0,7.0642e-4,0.10200,0.0081713,1.3609,0,2.0122,279.87,86960,335.37,0.050000,1.4012</datapoint>
+          <datapoint>13.440,1279.0,18.840,-10.035,19.418,10.037,51.206,0,51.206,0,2.6241,0.15340,0.022389,0,0.059102,0,3.4191,1.3499,1.0653,2.7904,0.057903,2236657,0,0.80952,0.48337,0.48572,0.34611,0.016822,0.12044,0.21295,0.59229,0,0,0,0,0,0.0019275,0.10200,0.0081713,1.3487,0,2.0753,279.84,86907,335.35,0.050000,1.4127</datapoint>
+          <datapoint>13.690,1283.4,16.338,-9.9848,16.903,9.9854,51.858,0,51.858,0,2.5927,0.10989,0.019886,0,0.079424,0,3.4191,1.3521,1.0653,2.8123,0.050407,1946317,0,0.61243,0.48327,0.48514,0.34614,0.016803,0.12033,0.18793,0.52392,0,0,0,0,0,0.0045936,0.10200,0.0081713,1.3313,0,1.7420,279.81,86860,335.33,0.050000,1.4235</datapoint>
+          <datapoint>13.940,1287.2,13.848,-9.9351,14.451,9.9356,52.502,0,52.502,0,2.5655,0.10534,0.028371,0,0.097351,0,3.4191,1.3446,1.0653,2.7381,0.043096,1663452,0,0.44910,0.48319,0.48691,0.34616,0.016787,0.12024,0.27395,0.74064,0,0,0,0,0,0.0094420,0.10200,0.0081713,1.3093,0,1.5649,279.78,86820,335.32,0.050000,1.4337</datapoint>
+          <datapoint>14.190,1290.3,11.371,-9.8792,12.149,9.8806,53.140,0,53.140,0,2.5317,0.16620,0.070954,0,0.12226,0,3.4191,1.3112,1.0653,2.4106,0.036232,1398106,0,0.33206,0.48842,0.50955,0.35147,0.016774,0.12017,0.75828,1.8069,0,0,0,0,0,0.021070,0.10200,0.0081713,1.2821,0,1.7445,279.76,86787,335.31,0.050000,1.4506</datapoint>
+          <datapoint>14.440,1292.8,8.9064,-9.8433,9.7963,9.8447,53.767,0,53.767,0,2.4896,0.16567,0.10632,0,0.15297,0,3.4191,1.2882,1.0653,2.1851,0.029217,1127130,0,0.23199,0.50336,0.54764,0.36649,0.016763,0.12011,1.2268,2.6299,0,0,0,0,0,0.050728,0.10200,0.0081713,1.2476,0,1.5899,279.75,86760,335.30,0.050000,1.4609</datapoint>
+          <datapoint>14.690,1294.8,6.4504,-9.8002,7.6184,9.8024,54.384,0,54.384,0,2.4453,0.20441,0.19603,0,0.18229,0,3.4191,1.2436,1.0653,1.7479,0.022722,876412,0,0.16313,0.52209,0.63686,0.38527,0.016755,0.12007,2.6775,4.5609,0,0,0,0,0,0.11912,0.10200,0.0081713,1.2058,0,1.6083,279.73,86739,335.29,0.050000,1.4936</datapoint>
+          <datapoint>14.940,1296.1,4.0074,-9.7356,5.8054,9.7397,54.989,0,54.989,0,2.3865,0.28247,0.39455,0,0.21211,0,3.4191,1.1858,1.0653,1.1816,0.017315,667776,0,0.10183,0.54402,0.68469,0.40723,0.016750,0.12004,6.7933,6.0926,0,0,0,0,0,0.27774,0.10200,0.0081713,1.1564,0,1.8139,279.73,86725,335.28,0.050000,1.5102</datapoint>
+          <datapoint>15.190,1296.8,1.5816,-9.6554,4.5541,9.6622,55.576,0,55.576,0,2.3095,0.36370,0.74733,0,0.21778,0,3.4191,1.1445,1.0653,0.77695,0.013583,523820,0,0.037419,0.56523,0.40888,0.42846,0.016747,0.12002,15.025,-4.4267,0,0,0,0,0,0.47578,0.10200,0.0081713,1.1020,0,1.9612,279.72,86718,335.28,0.050000,1.5207</datapoint>
+          <datapoint>15.390,1296.9,-0.37256,-9.7608,4.3796,9.7616,56.036,0,56.036,0,2.2858,0.12240,1.1436,0,0.21751,0,3.4191,1.3758,1.0653,3.0446,0.013063,503740,0,0.0070651,0.56880,0.083478,0.43204,0.016747,0.12002,5.6263,-2.0028,0,0,0,0,0,0.51319,0.10200,0.0081713,1.0584,0,2.0780,279.72,86717,335.28,0.050000,1.5424</datapoint>
+          <datapoint>15.647,1296.5,-2.8571,-9.5353,4.9912,9.5509,56.611,0,56.611,0,2.1669,0.54471,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.014886,574093,0,2.1131,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2036,279.72,86720,335.28,0.052351,1.5448</datapoint>
+          <datapoint>15.917,1295.4,-5.3515,-9.0506,6.4506,9.0761,57.172,0,57.172,0,1.9994,0.68015,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.019239,742020,0,3.5299,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2129,279.73,86730,335.29,0.055090,1.5458</datapoint>
+          <datapoint>16.146,1293.9,-7.3442,-8.4925,7.8573,8.5257,57.611,0,57.611,0,1.8290,0.75178,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.023434,903927,0,5.2379,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9827,279.74,86744,335.29,0.058646,1.5464</datapoint>
+          <datapoint>16.394,1291.8,-9.3328,-7.7191,9.6129,7.7718,58.039,0,58.039,0,1.6171,0.90313,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.028670,1106072,0,7.8417,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1102,279.75,86764,335.30,0.064335,1.5471</datapoint>
+          <datapoint>16.671,1289.0,-11.317,-6.7882,11.312,6.8509,58.454,0,58.454,0,1.3687,0.92489,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.033736,1301845,0,10.861,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8572,279.77,86792,335.31,0.072983,1.5494</datapoint>
+          <datapoint>16.909,1286.1,-12.797,-5.9362,12.735,6.0263,58.751,0,58.751,0,1.1238,1.0377,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.037978,1465890,0,13.769,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0716,279.78,86820,335.32,0.082970,1.5499</datapoint>
+          <datapoint>17.187,1282.3,-14.272,-5.0077,14.078,5.1078,59.024,0,59.024,0,0.84878,1.0060,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.041983,1621021,0,16.834,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9293,279.81,86857,335.33,0.097890,1.5503</datapoint>
+          <datapoint>17.404,1279.1,-15.246,-4.3164,15.026,4.4422,59.185,0,59.185,0,0.62569,1.0497,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.044807,1730517,0,19.181,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0677,279.82,86888,335.34,0.11256,1.5506</datapoint>
+          <datapoint>17.659,1275.1,-16.204,-3.5822,15.976,3.7520,59.308,0,59.308,0,0.33831,1.1160,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.047638,1840454,0,21.691,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.3232,279.85,86926,335.36,0.13326,1.5510</datapoint>
+          <datapoint>17.973,1269.9,-17.150,-2.8370,16.853,3.0123,59.362,0,59.362,0,0.014404,1.0125,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.050252,1942247,0,24.150,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2334,279.88,86974,335.38,0.16599,1.5513</datapoint>
+          <datapoint>18.164,1266.6,-17.619,-2.4551,17.281,2.6195,59.348,0,59.348,0,0.15995,0.91343,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.051526,1992024,0,25.399,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1105,279.90,87004,335.39,0.19088,1.5514</datapoint>
+          <datapoint>18.388,1262.5,-18.080,-2.0556,17.727,2.2300,59.291,0,59.291,0,0.35378,0.86449,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.052854,2043998,0,26.736,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1198,279.92,87039,335.40,0.22422,1.5516</datapoint>
+          <datapoint>18.662,1257.5,-18.532,-1.6542,18.161,1.8264,59.165,0,59.165,0,0.56572,0.77417,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.054143,2094618,0,28.070,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0663,279.94,87082,335.42,0.27377,1.5517</datapoint>
+          <datapoint>19.018,1250.8,-18.978,-1.2503,18.583,1.4021,58.923,0,58.923,0,0.79200,0.63451,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.055400,2144223,0,29.406,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9367,279.98,87135,335.44,0.35662,1.5519</datapoint>
+          <datapoint>19.518,1241.3,-19.396,-0.83454,19.013,0.99819,58.458,0,58.458,0,1.0658,0.54766,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.056679,2195065,0,30.804,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9478,280.02,87206,335.46,0.50000,1.5520</datapoint>
+          <datapoint>20.018,1231.5,-19.608,-0.42482,19.434,0.72662,57.852,0,57.852,0,1.3606,0.58949,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.057925,2245306,0,32.211,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2818,280.08,87308,335.50,0.50000,1.5522</datapoint>
+          <datapoint>20.518,1221.7,-19.717,-0.21769,19.628,0.48322,57.118,0,57.118,0,1.5763,0.43141,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.058496,2269503,0,32.889,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2409,280.15,87412,335.54,0.50000,1.5524</datapoint>
+          <datapoint>21.018,1211.8,-19.771,-0.10834,19.722,0.25535,56.301,0,56.301,0,1.6919,0.23123,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.058772,2282247,0,33.240,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0454,280.21,87517,335.58,0.50000,1.5525</datapoint>
+          <datapoint>21.518,1201.9,-19.793,-0.044572,19.778,0.26814,55.422,0,55.422,0,1.8241,0.26440,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.058931,2290512,0,33.460,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2263,280.27,87622,335.62,0.50000,1.5527</datapoint>
+          <datapoint>22.018,1192.0,-19.801,-0.016130,19.794,0.093925,54.498,0,54.498,0,1.8704,0.092530,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.058972,2294170,0,33.547,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0108,280.34,87727,335.65,0.50000,1.5528</datapoint>
+          <datapoint>22.518,1182.1,-19.800,0.0017484,19.803,0.12456,53.547,0,53.547,0,1.9326,0.12454,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.058991,2296998,0,33.609,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1213,280.40,87832,335.69,0.50000,1.5530</datapoint>
+          <datapoint>23.018,1172.2,-19.795,0.010261,19.802,0.11302,52.567,0,52.567,0,1.9889,0.11255,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.058981,2298672,0,33.638,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1592,280.47,87937,335.73,0.50000,1.5531</datapoint>
+          <datapoint>23.518,1162.3,-19.788,0.014630,19.797,0.10918,51.586,0,51.586,0,1.9348,0.10819,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.058958,2299872,0,33.653,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7713,280.53,88043,335.77,0.50000,1.5533</datapoint>
+          <datapoint>24.018,1152.4,-19.780,0.016364,19.788,0.047313,50.624,0,50.624,0,1.9126,0.044393,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.058927,2300711,0,33.657,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8456,280.59,88148,335.81,0.50000,1.5534</datapoint>
+          <datapoint>24.518,1142.5,-19.771,0.018072,19.781,0.097061,49.680,0,49.680,0,1.8649,0.095363,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.058898,2301646,0,33.664,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7210,280.66,88253,335.85,0.50000,1.5536</datapoint>
+          <datapoint>25.018,1132.7,-19.762,0.018085,19.771,0.018174,48.747,0,48.747,0,1.8658,0.0018030,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.058861,2302284,0,33.662,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8686,280.72,88358,335.89,0.50000,1.5537</datapoint>
+          <datapoint>25.518,1122.8,-19.752,0.018776,19.762,0.071950,47.805,0,47.805,0,1.9006,0.069457,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.058829,2303083,0,33.666,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0052,280.79,88464,335.93,0.50000,1.5539</datapoint>
+          <datapoint>26.018,1112.9,-19.743,0.019212,19.754,0.11050,46.841,0,46.841,0,1.9550,0.10882,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.058796,2303864,0,33.668,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1189,280.85,88569,335.97,0.50000,1.5541</datapoint>
+          <datapoint>26.518,1103.0,-19.734,0.018566,19.743,0.050979,45.870,0,45.870,0,1.9312,0.047479,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.058758,2304417,0,33.665,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8598,280.92,88674,336.01,0.50000,1.5542</datapoint>
+          <datapoint>27.018,1093.2,-19.724,0.018612,19.734,0.027503,44.907,0,44.907,0,1.9211,0.020249,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.058723,2305096,0,33.664,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8907,280.98,88779,336.04,0.50000,1.5544</datapoint>
+          <datapoint>27.518,1083.3,-19.715,0.018787,19.724,0.048386,43.941,0,43.941,0,1.9434,0.044590,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.058689,2305809,0,33.665,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0104,281.04,88884,336.08,0.50000,1.5545</datapoint>
+          <datapoint>28.018,1073.5,-19.705,0.018672,19.715,0.018712,42.969,0,42.969,0,1.9428,0.0012204,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.058654,2306465,0,33.665,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9410,281.11,88988,336.12,0.50000,1.5633</datapoint>
+          <datapoint>28.518,1063.6,-19.696,0.018772,19.706,0.043613,41.993,0,41.993,0,1.9625,0.039367,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.058620,2307166,0,33.665,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0216,281.17,89093,336.16,0.50000,1.5635</datapoint>
+          <datapoint>29.018,1053.8,-19.686,0.020087,19.699,0.16992,40.990,0,40.990,0,2.0468,0.16872,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.058593,2308159,0,33.674,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.3000,281.24,89198,336.20,0.50000,1.5637</datapoint>
+          <datapoint>29.518,1043.9,-19.677,0.018509,19.687,0.11003,39.953,0,39.953,0,2.1011,0.10846,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.058551,2308551,0,33.666,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2637,281.30,89303,336.24,0.50000,1.5638</datapoint>
+          <datapoint>30.018,1034.1,-19.668,0.018139,19.677,0.063953,38.895,0,38.895,0,2.1317,0.061327,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.058515,2309135,0,33.663,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2236,281.36,89407,336.28,0.50000,1.5640</datapoint>
+          <datapoint>30.518,1024.2,-19.658,0.018444,19.668,0.078568,37.839,0,37.839,0,2.0935,0.076373,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.058482,2309857,0,33.665,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9792,281.43,89512,336.32,0.50000,1.5642</datapoint>
+          <datapoint>31.018,1014.4,-19.649,0.018212,19.659,0.033162,36.796,0,36.796,0,2.0797,0.027714,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.058446,2310471,0,33.663,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0382,281.49,89617,336.35,0.50000,1.5643</datapoint>
+          <datapoint>31.518,1004.6,-19.640,0.018321,19.649,0.029542,35.753,0,35.753,0,2.0913,0.023176,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.058412,2311153,0,33.663,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1259,281.56,89721,336.39,0.50000,1.5645</datapoint>
+          <datapoint>32.018,994.78,-19.631,0.018676,19.641,0.083770,34.717,0,34.717,0,2.0504,0.081662,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.058380,2311900,0,33.666,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9284,281.62,89826,336.43,0.50000,1.5646</datapoint>
+          <datapoint>32.518,984.97,-19.621,0.018836,19.632,0.084899,33.682,0,33.682,0,2.0918,0.082783,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.058346,2312623,0,33.666,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2155,281.68,89933,336.47,0.50000,1.5648</datapoint>
+          <datapoint>33.018,975.16,-19.612,0.018815,19.621,0.023430,32.638,0,32.638,0,2.0849,0.013963,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.058309,2313314,0,33.665,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0640,281.75,90043,336.51,0.50000,1.5651</datapoint>
+          <datapoint>33.518,965.36,-19.602,0.019455,19.613,0.084778,31.606,0,31.606,0,2.0436,0.082515,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.058276,2314160,0,33.668,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9205,281.81,90152,336.55,0.50000,1.5653</datapoint>
+          <datapoint>34.018,955.56,-19.593,0.019442,19.603,0.087911,30.595,0,30.595,0,2.0007,0.085734,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.058241,2314892,0,33.668,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8729,281.88,90262,336.59,0.50000,1.5654</datapoint>
+          <datapoint>34.518,945.76,-19.583,0.019744,19.594,0.12173,29.609,0,29.609,0,1.9407,0.12012,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.058207,2315697,0,33.671,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7617,281.94,90371,336.62,0.50000,1.5656</datapoint>
+          <datapoint>35.018,935.98,-19.573,0.019040,19.583,0.074305,28.630,0,28.630,0,1.9766,0.071824,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.058169,2316286,0,33.667,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0835,282.00,90481,336.66,0.50000,1.5658</datapoint>
+          <datapoint>35.518,926.19,-19.564,0.018877,19.573,0.019394,27.641,0,27.641,0,1.9788,0.0044514,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.058132,2316961,0,33.665,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9854,282.07,90590,336.70,0.50000,1.5659</datapoint>
+          <datapoint>36.018,916.41,-19.554,0.019478,19.565,0.095743,26.640,0,26.640,0,2.0257,0.093741,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.058100,2317807,0,33.669,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1651,282.13,90699,336.74,0.50000,1.5661</datapoint>
+          <datapoint>36.518,906.64,-19.544,0.019219,19.555,0.085995,25.617,0,25.617,0,2.0676,0.083820,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.058064,2318487,0,33.668,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1921,282.19,90808,336.78,0.50000,1.5662</datapoint>
+          <datapoint>37.018,896.87,-19.535,0.019220,19.545,0.092989,24.594,0,24.594,0,2.0221,0.090981,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.058029,2319214,0,33.668,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8870,282.26,90918,336.82,0.50000,1.5664</datapoint>
+          <datapoint>37.518,887.10,-19.525,0.018792,19.535,0.043541,23.588,0,23.588,0,2.0025,0.039277,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.057992,2319842,0,33.665,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9442,282.32,91027,336.86,0.50000,1.5665</datapoint>
+          <datapoint>38.018,877.34,-19.516,0.018835,19.525,0.025213,22.585,0,22.585,0,2.0108,0.016761,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.057957,2320555,0,33.665,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0357,282.38,91136,336.89,0.50000,1.5667</datapoint>
+          <datapoint>38.518,867.59,-19.506,0.019850,19.518,0.13943,21.562,0,21.562,0,2.0798,0.13801,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.057928,2321502,0,33.672,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2844,282.45,91245,336.93,0.50000,1.5669</datapoint>
+          <datapoint>39.018,857.84,-19.497,0.018413,19.506,0.020008,20.523,0,20.523,0,2.0759,0.0078290,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.057886,2321932,0,33.664,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0643,282.51,91354,336.97,0.50000,1.5671</datapoint>
+          <datapoint>39.518,848.09,-19.487,0.019930,19.499,0.16068,19.505,0,19.505,0,1.9962,0.15944,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.057860,2322974,0,33.673,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7602,282.57,91463,337.01,0.50000,1.5672</datapoint>
+          <datapoint>40.018,838.35,-19.478,0.018282,19.487,0.065695,18.499,0,18.499,0,2.0278,0.063100,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.057818,2323361,0,33.664,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1211,282.64,91572,337.05,0.50000,1.5674</datapoint>
+          <datapoint>40.518,828.61,-19.469,0.018546,19.478,0.067811,17.493,0,17.493,0,1.9951,0.065226,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.057784,2324102,0,33.665,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8987,282.70,91681,337.09,0.50000,1.5675</datapoint>
+          <datapoint>41.018,818.88,-19.459,0.018511,19.469,0.045299,16.501,0,16.501,0,1.9745,0.041345,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.057749,2324789,0,33.664,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9134,282.76,91789,337.12,0.50000,1.5677</datapoint>
+          <datapoint>41.518,809.15,-19.450,0.018530,19.459,0.025716,15.511,0,15.511,0,1.9834,0.017831,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.057715,2325488,0,33.664,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0097,282.83,91898,337.16,0.50000,1.5678</datapoint>
+          <datapoint>42.018,799.43,-19.440,0.018980,19.451,0.091607,14.509,0,14.509,0,2.0282,0.089620,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.057683,2326290,0,33.667,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1604,282.89,92007,337.20,0.50000,1.5680</datapoint>
+          <datapoint>42.518,789.71,-19.431,0.018575,19.441,0.064626,13.487,0,13.487,0,2.0592,0.061899,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.057647,2326919,0,33.665,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1504,282.95,92115,337.24,0.50000,1.5681</datapoint>
+          <datapoint>43.018,780.00,-19.422,0.018393,19.431,0.027952,12.454,0,12.454,0,2.0697,0.021047,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.057612,2327577,0,33.664,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1007,283.02,92224,337.28,0.50000,1.5683</datapoint>
+          <datapoint>43.518,770.29,-19.413,0.018502,19.422,0.041596,11.415,0,11.415,0,2.0883,0.037255,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.057578,2328294,0,33.664,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1432,283.08,92333,337.32,0.50000,1.5685</datapoint>
+          <datapoint>44.018,760.59,-19.403,0.019900,19.416,0.17220,10.392,0,10.392,0,2.0028,0.17105,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.057553,2329323,0,33.674,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7511,283.14,92441,337.35,0.50000,1.5686</datapoint>
+          <datapoint>44.518,750.89,-19.394,0.017698,19.403,0.030288,9.3878,0,9.3878,0,2.0151,0.024580,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.057508,2329586,0,33.661,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0512,283.21,92549,337.39,0.50000,1.5688</datapoint>
+          <datapoint>45.018,741.19,-19.385,0.018043,19.394,0.029977,8.3832,0,8.3832,0,2.0031,0.023939,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.057475,2330320,0,33.662,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9679,283.27,92658,337.43,0.50000,1.5689</datapoint>
+          <datapoint>45.518,731.50,-19.376,0.018756,19.386,0.10956,7.3682,0,7.3682,0,2.0571,0.10795,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.057446,2331163,0,33.667,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2156,283.33,92766,337.47,0.50000,1.5692</datapoint>
+          <datapoint>46.018,721.82,-19.366,0.018622,19.377,0.11812,6.3542,0,6.3542,0,1.9988,0.11664,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.057412,2331849,0,33.667,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8275,283.40,92874,337.51,0.50000,1.5693</datapoint>
+          <datapoint>46.518,712.14,-19.355,0.021662,19.374,0.27872,5.3896,0,5.3896,0,1.8598,0.27788,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.057397,2333281,0,33.688,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.4524,283.46,92983,337.55,0.50000,1.5695</datapoint>
+          <datapoint>47.018,702.46,-19.345,0.021512,19.366,0.33067,4.5009,0,4.5009,0,1.6948,0.32997,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.057367,2334141,0,33.693,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.2113,283.52,93091,337.58,0.50000,1.5696</datapoint>
+          <datapoint>47.518,692.79,-19.337,0.014349,19.345,0.037907,3.6491,0,3.6491,0,1.7124,0.035086,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.057297,2333330,0,33.650,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7638,283.58,93199,337.62,0.50000,1.5698</datapoint>
+          <datapoint>48.018,683.12,-19.329,0.016395,19.338,0.063011,2.7853,0,2.7853,0,1.7428,0.060841,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.057270,2334271,0,33.657,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8319,283.65,93307,337.66,0.50000,1.5699</datapoint>
+          <datapoint>48.518,673.46,-19.320,0.018895,19.333,0.19072,1.8902,0,1.8902,0,1.8377,0.18978,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.057249,2335445,0,33.672,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1154,283.71,93415,337.70,0.50000,1.5701</datapoint>
+          <datapoint>49.018,663.80,-19.311,0.018144,19.323,0.17352,0.94980,0,0.94980,0,1.9240,0.17257,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.057213,2335999,0,33.668,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1763,283.77,93523,337.74,0.50000,1.5703</datapoint>
+          <datapoint>49.518,654.15,-19.302,0.017150,19.312,0.10926,-0.025674,0,0.025674,3.1416,1.9779,0.10791,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.057174,2336452,0,33.661,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1356,283.84,93631,337.77,0.50000,1.5704</datapoint>
+          <datapoint>50.018,644.50,-19.293,0.017757,19.304,0.12568,-1.0302,0,1.0302,3.1416,2.0401,0.12442,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.057143,2337225,0,33.664,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2219,283.90,93739,337.81,0.50000,1.5706</datapoint>
+          <datapoint>50.518,634.86,-19.285,0.017222,19.294,0.060250,-2.0430,0,2.0430,3.1416,2.0113,0.057736,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.057107,2337764,0,33.660,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9270,283.96,93846,337.85,0.50000,1.5707</datapoint>
+          <datapoint>51.018,625.22,-19.276,0.017716,19.285,0.082415,-3.0587,0,3.0587,3.1416,2.0515,0.080489,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.057076,2338517,0,33.662,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1689,284.02,93954,337.89,0.50000,1.5709</datapoint>
+          <datapoint>51.518,615.58,-19.267,0.017449,19.276,0.018044,-4.0839,0,4.0839,3.1416,2.0492,0.0045948,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.057042,2339119,0,33.660,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0425,284.09,94062,337.93,0.50000,1.5711</datapoint>
+          <datapoint>52.018,605.95,-19.258,0.017654,19.267,0.029579,-5.1055,0,5.1055,3.1416,2.0373,0.023733,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.057010,2339819,0,33.661,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0028,284.15,94169,337.96,0.50000,1.5712</datapoint>
+          <datapoint>52.518,596.32,-19.249,0.018884,19.261,0.15535,-6.1435,0,6.1435,3.1416,2.1144,0.15420,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.056984,2340775,0,33.669,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.3389,284.21,94277,338.00,0.50000,1.5714</datapoint>
+          <datapoint>53.018,586.70,-19.240,0.017163,19.249,0.044184,-7.1956,0,7.1956,3.1416,2.0941,0.040715,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.056943,2341106,0,33.660,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0348,284.27,94385,338.04,0.50000,1.5715</datapoint>
+          <datapoint>53.518,577.08,-19.232,0.017350,19.240,0.022246,-8.2409,0,8.2409,3.1416,2.0871,0.013923,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.056911,2341787,0,33.660,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0669,284.34,94492,338.08,0.50000,1.5717</datapoint>
+          <datapoint>54.018,567.47,-19.222,0.019141,19.235,0.18158,-9.3070,0,9.3070,3.1416,2.1774,0.18057,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.056888,2342861,0,33.672,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.4398,284.40,94600,338.12,0.50000,1.5718</datapoint>
+          <datapoint>54.518,557.86,-19.214,0.016701,19.222,0.020941,-10.394,0,10.394,3.1416,2.1711,0.012634,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.056844,2343039,0,33.658,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1527,284.46,94707,338.15,0.50000,1.5720</datapoint>
+          <datapoint>55.018,548.26,-19.204,0.019755,19.219,0.22827,-11.451,0,11.451,3.1416,2.0574,0.22742,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.056828,2344377,0,33.677,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7274,284.52,94814,338.19,0.50000,1.5721</datapoint>
+          <datapoint>55.518,538.66,-19.196,0.016078,19.204,0.046730,-12.485,0,12.485,3.1416,2.0793,0.043877,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.056778,2344299,0,33.656,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1430,284.59,94922,338.23,0.50000,1.5723</datapoint>
+          <datapoint>56.018,529.06,-19.187,0.018153,19.199,0.17037,-13.546,0,13.546,3.1416,2.1640,0.16940,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.056756,2345368,0,33.668,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.4096,284.65,95029,338.27,0.50000,1.5725</datapoint>
+          <datapoint>56.518,519.47,-19.178,0.016643,19.187,0.080591,-14.638,0,14.638,3.1416,2.2034,0.078854,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.056716,2345710,0,33.659,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.3177,284.71,95136,338.30,0.50000,1.5726</datapoint>
+          <datapoint>57.018,509.88,-19.170,0.016844,19.179,0.053518,-15.734,0,15.734,3.1416,2.1780,0.050798,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.056684,2346369,0,33.659,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1045,284.77,95243,338.34,0.50000,1.5728</datapoint>
+          <datapoint>57.518,500.30,-19.161,0.017124,19.170,0.056757,-16.816,0,16.816,3.1416,2.1510,0.054112,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.056653,2347060,0,33.660,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0727,284.84,95350,338.38,0.50000,1.5729</datapoint>
+          <datapoint>58.018,490.72,-19.153,0.017547,19.162,0.098029,-17.903,0,17.903,3.1416,2.1992,0.096446,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.056623,2347803,0,33.662,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.3387,284.90,95457,338.42,0.50000,1.5731</datapoint>
+          <datapoint>58.518,481.15,-19.143,0.018629,19.155,0.15238,-19.022,0,19.022,3.1416,2.2748,0.15124,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.056595,2348730,0,33.668,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.4934,284.96,95570,338.46,0.50000,1.5732</datapoint>
+          <datapoint>59.018,471.58,-19.134,0.017774,19.144,0.098251,-20.147,0,20.147,3.1416,2.2265,0.096629,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.056557,2349262,0,33.663,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0869,285.02,95682,338.49,0.50000,1.5734</datapoint>
+          <datapoint>59.518,462.01,-19.125,0.017831,19.135,0.076528,-21.251,0,21.251,3.1416,2.1893,0.074422,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.056523,2349960,0,33.663,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0819,285.08,95794,338.53,0.50000,1.5737</datapoint>
+          <datapoint>60.018,452.45,-19.116,0.019675,19.129,0.19578,-22.321,0,22.321,3.1416,2.0919,0.19479,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.056500,2351090,0,33.675,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8110,285.15,95906,338.57,0.50000,1.6452</datapoint>
+          <datapoint>60.518,442.90,-19.107,0.017053,19.116,0.042352,-23.363,0,23.363,3.1416,2.0725,0.038767,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.056454,2351267,0,33.659,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0166,285.21,96018,338.61,0.50000,1.6455</datapoint>
+          <datapoint>61.018,433.35,-19.098,0.018408,19.109,0.13259,-24.382,0,24.382,3.1416,2.0069,0.13131,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.056427,2352234,0,33.667,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8177,285.27,96131,338.64,0.50000,1.6457</datapoint>
+          <datapoint>61.518,423.80,-19.089,0.017422,19.098,0.036710,-25.390,0,25.390,3.1416,2.0230,0.032313,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.056389,2352726,0,33.660,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0696,285.33,96243,338.68,0.50000,1.6459</datapoint>
+          <datapoint>62.018,414.26,-19.080,0.017964,19.090,0.075359,-26.411,0,26.411,3.1416,2.0596,0.073187,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.056359,2353524,0,33.663,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1649,285.40,96355,338.72,0.50000,1.6460</datapoint>
+          <datapoint>62.518,404.72,-19.071,0.017771,19.080,0.037928,-27.436,0,27.436,3.1416,2.0429,0.033507,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.056325,2354180,0,33.662,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9947,285.46,96466,338.76,0.50000,1.6462</datapoint>
+          <datapoint>63.018,395.19,-19.062,0.017816,19.071,0.018839,-28.457,0,28.457,3.1416,2.0398,0.0061228,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.056292,2354882,0,33.662,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0310,285.52,96578,338.79,0.50000,1.6463</datapoint>
+          <datapoint>63.518,385.66,-19.053,0.018678,19.064,0.12751,-29.493,0,29.493,3.1416,2.1029,0.12613,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.056264,2355784,0,33.667,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2840,285.58,96690,338.83,0.50000,1.6465</datapoint>
+          <datapoint>64.018,376.13,-19.044,0.017538,19.053,0.043216,-30.539,0,30.539,3.1416,2.0831,0.039498,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.056226,2356261,0,33.661,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0264,285.64,96802,338.87,0.50000,1.6467</datapoint>
+          <datapoint>64.518,366.61,-19.035,0.018596,19.046,0.14023,-31.598,0,31.598,3.1416,2.1526,0.13899,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.056199,2357194,0,33.668,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.3520,285.71,96914,338.91,0.50000,1.6469</datapoint>
+          <datapoint>65.018,357.10,-19.026,0.017434,19.035,0.069701,-32.683,0,32.683,3.1416,2.1864,0.067486,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.056161,2357662,0,33.661,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2831,285.77,97025,338.94,0.50000,1.6470</datapoint>
+          <datapoint>65.518,347.59,-19.018,0.017439,19.026,0.040734,-33.771,0,33.771,3.1416,2.1680,0.036812,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.056128,2358339,0,33.661,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1152,285.83,97137,338.98,0.50000,1.6472</datapoint>
+          <datapoint>66.018,338.08,-19.007,0.020658,19.024,0.24974,-34.824,0,34.824,3.1416,2.0435,0.24889,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.056114,2359787,0,33.682,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.6873,285.89,97248,339.02,0.50000,1.6473</datapoint>
+          <datapoint>66.518,328.58,-18.997,0.020378,19.016,0.29544,-35.809,0,35.809,3.1416,1.8961,0.29474,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.056084,2360598,0,33.685,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.4746,285.95,97360,339.06,0.50000,1.6475</datapoint>
+          <datapoint>67.018,319.08,-18.990,0.014997,18.998,0.095137,-36.769,0,36.769,3.1416,1.9431,0.093947,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.056025,2360169,0,33.653,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0775,286.01,97471,339.09,0.50000,1.6477</datapoint>
+          <datapoint>67.518,309.59,-18.982,0.015900,18.990,0.019713,-37.739,0,37.739,3.1416,1.9373,0.011653,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.055995,2360914,0,33.655,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9206,286.08,97583,339.13,0.50000,1.6478</datapoint>
+          <datapoint>68.018,300.10,-18.973,0.016778,18.982,0.028572,-38.711,0,38.711,3.1416,1.9489,0.023127,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.055965,2361709,0,33.658,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9819,286.14,97694,339.17,0.50000,1.6484</datapoint>
+          <datapoint>68.518,290.62,-18.964,0.018247,18.975,0.14919,-39.703,0,39.703,3.1416,2.0229,0.14807,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.055940,2362702,0,33.667,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2342,286.20,97805,339.21,0.50000,1.6486</datapoint>
+          <datapoint>69.018,281.14,-18.956,0.016741,18.964,0.020920,-40.717,0,40.717,3.1416,2.0292,0.012545,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.055901,2363073,0,33.658,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0471,286.26,97917,339.24,0.50000,1.6488</datapoint>
+          <datapoint>69.518,271.66,-18.947,0.017339,18.956,0.071586,-41.722,0,41.722,3.1416,1.9944,0.069454,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.055872,2363857,0,33.661,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8954,286.32,98028,339.28,0.50000,1.6489</datapoint>
+          <datapoint>70.018,262.19,-18.938,0.017154,18.947,0.029796,-42.717,0,42.717,3.1416,1.9823,0.024362,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.055839,2364491,0,33.659,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9475,286.38,98139,339.32,0.50000,1.6491</datapoint>
+          <datapoint>70.518,252.72,-18.930,0.017230,18.938,0.017531,-43.707,0,43.707,3.1416,1.9806,0.0032357,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.055807,2365177,0,33.660,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9760,286.45,98250,339.36,0.50000,1.6492</datapoint>
+          <datapoint>71.018,243.26,-18.921,0.017511,18.930,0.070249,-44.706,0,44.706,3.1416,2.0147,0.068031,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.055777,2365917,0,33.661,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1115,286.51,98361,339.39,0.50000,1.6494</datapoint>
+          <datapoint>71.518,233.80,-18.912,0.017632,18.922,0.098466,-45.726,0,45.726,3.1416,2.0631,0.096875,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.055746,2366638,0,33.663,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2008,286.57,98472,339.43,0.50000,1.6496</datapoint>
+          <datapoint>72.018,224.35,-18.903,0.017876,18.914,0.13608,-46.740,0,46.740,3.1416,1.9956,0.13490,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.055717,2367397,0,33.665,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8040,286.63,98583,339.47,0.50000,1.6766</datapoint>
+          <datapoint>72.518,214.90,-18.895,0.016726,18.904,0.052514,-47.744,0,47.744,3.1416,2.0205,0.049780,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.055680,2367837,0,33.658,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0912,286.69,98694,339.51,0.50000,1.6769</datapoint>
+          <datapoint>73.018,205.45,-18.887,0.016878,18.895,0.035882,-48.751,0,48.751,3.1416,2.0047,0.031665,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.055649,2368519,0,33.659,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9598,286.75,98805,339.54,0.50000,1.6771</datapoint>
+          <datapoint>73.518,196.01,-18.878,0.017011,18.887,0.037303,-49.749,0,49.749,3.1416,1.9881,0.033198,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.055618,2369207,0,33.659,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9410,286.81,98915,339.58,0.50000,1.6772</datapoint>
+          <datapoint>74.018,186.57,-18.870,0.017019,18.878,0.027728,-50.746,0,50.746,3.1416,1.9990,0.021891,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.055586,2369874,0,33.659,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0301,286.88,99026,339.62,0.50000,1.6774</datapoint>
+          <datapoint>74.282,183.00,-10.370,15.532,10.871,15.535,-51.262,0,51.262,3.1416,1.9297,0.30427,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.032004,1365989,0,86.712,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8091,286.96,99175,339.67,0.032186,1.6903</datapoint>
+          <datapoint>74.491,181.07,-8.3704,7.0623,8.8705,7.0627,-51.671,0,51.671,3.1416,1.9715,0.080436,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.026115,1114805,0,57.748,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0080,286.97,99194,339.67,0.070794,1.6909</datapoint>
+          <datapoint>74.731,179.19,-7.3714,3.4730,7.8714,3.4766,-52.149,0,52.149,3.1416,2.0154,0.15637,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.023173,989353,0,45.479,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0854,286.98,99210,339.68,0.14382,1.6912</datapoint>
+          <datapoint>75.001,177.27,-6.8733,1.8400,7.3721,1.8469,-52.700,0,52.700,3.1416,2.0586,0.15959,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.021703,926669,0,39.896,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1162,286.99,99223,339.68,0.27072,1.6914</datapoint>
+          <datapoint>75.501,173.87,-6.7144,0.31766,6.8735,0.32737,-53.720,0,53.720,3.1416,2.0190,0.079134,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.020235,864123,0,34.688,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0049,287.00,99246,339.69,0.50000,1.6915</datapoint>
+          <datapoint>76.001,170.50,-6.7732,-0.11760,6.7320,0.71269,-54.641,0,54.641,3.1416,1.6675,0.70292,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.019817,846561,0,33.285,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.5329,287.02,99286,339.70,0.50000,1.6917</datapoint>
+          <datapoint>76.501,167.11,-6.7578,0.030810,6.7734,0.073273,-55.483,0,55.483,3.1416,1.7008,0.066481,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.019938,851988,0,33.707,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7132,287.04,99325,339.72,0.50000,1.6918</datapoint>
+          <datapoint>77.001,163.73,-6.7633,-0.010988,6.7579,0.032831,-56.330,0,56.330,3.1416,1.6853,0.030937,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.019892,850257,0,33.563,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.6795,287.06,99365,339.73,0.50000,1.6920</datapoint>
+          <datapoint>77.501,160.35,-6.7592,0.0082512,6.7634,0.055025,-57.166,0,57.166,3.1416,1.6581,0.054402,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.019907,851180,0,33.629,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.6479,287.09,99405,339.74,0.50000,1.6923</datapoint>
+          <datapoint>78.001,156.98,-6.7536,0.011303,6.7675,0.48715,-58.056,0,58.056,3.1416,1.9016,0.48702,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.019919,851912,0,33.680,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9927,287.11,99444,339.76,0.50000,1.6924</datapoint>
+          <datapoint>78.501,153.60,-6.7605,-0.013980,6.7536,0.022845,-59.004,0,59.004,3.1416,1.8926,0.018068,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.019877,850382,0,33.553,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8892,287.13,99484,339.77,0.50000,1.6926</datapoint>
+          <datapoint>79.001,150.22,-6.7465,0.028142,6.7734,0.60783,-60.026,0,60.026,3.1416,2.1962,0.60717,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.019934,853098,0,33.761,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.3091,287.15,99524,339.78,0.50000,1.6927</datapoint>
+          <datapoint>79.501,146.84,-6.7599,-0.026871,6.7474,0.16742,-61.145,0,61.145,3.1416,2.2788,0.16525,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.019857,850054,0,33.514,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.3099,287.17,99563,339.80,0.50000,1.6929</datapoint>
+          <datapoint>80.001,143.47,-6.7527,0.014509,6.7603,0.10443,-62.272,0,62.272,3.1416,2.2271,0.10341,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.019894,851894,0,33.652,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2078,287.20,99603,339.81,0.50000,1.6931</datapoint>
+          <datapoint>80.501,140.09,-6.7540,-0.0027036,6.7535,0.15903,-63.365,0,63.365,3.1416,2.1476,0.15901,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.019874,851266,0,33.596,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1178,287.22,99642,339.82,0.50000,1.6932</datapoint>
+          <datapoint>81.001,136.71,-6.7523,0.0034152,6.7542,0.079057,-64.429,0,64.429,3.1416,2.1081,0.078983,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.019875,851575,0,33.613,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0933,287.24,99682,339.84,0.50000,1.6934</datapoint>
+          <datapoint>81.501,133.34,-6.7516,0.0013703,6.7524,0.042104,-65.478,0,65.478,3.1416,2.0870,0.042082,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.019869,851561,0,33.606,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0792,287.26,99722,339.85,0.50000,1.6935</datapoint>
+          <datapoint>82.001,129.96,-6.7412,0.020887,6.7643,0.60405,-66.597,0,66.597,3.1416,2.3889,0.60369,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.019903,853287,0,33.735,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.5009,287.28,99761,339.86,0.50000,1.6937</datapoint>
+          <datapoint>82.501,126.59,-6.7480,-0.013736,6.7488,0.46685,-67.733,0,67.733,3.1416,2.1556,0.46665,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.019857,851553,0,33.592,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0683,287.31,99801,339.88,0.50000,1.6938</datapoint>
+          <datapoint>83.001,123.22,-6.7466,0.0029063,6.7512,0.30057,-68.849,0,68.849,3.1416,2.3058,0.30056,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.019863,852077,0,33.626,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.3619,287.33,99840,339.89,0.50000,1.6940</datapoint>
+          <datapoint>83.501,119.84,-6.7459,0.0014466,6.7495,0.28814,-69.965,0,69.965,3.1416,2.1618,0.28814,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.019857,852082,0,33.620,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1081,287.35,99880,339.90,0.50000,1.6942</datapoint>
+          <datapoint>84.001,116.47,-6.7398,0.012063,6.7553,0.52187,-70.981,0,70.981,3.1416,1.9009,0.52173,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.019873,853043,0,33.689,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8041,287.37,99919,339.92,0.50000,1.6943</datapoint>
+          <datapoint>84.501,113.10,-6.7431,-0.0065009,6.7465,0.43615,-71.986,0,71.986,3.1416,2.1190,0.43610,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.019847,852144,0,33.612,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2002,287.39,99959,339.93,0.50000,1.6945</datapoint>
+          <datapoint>85.001,109.73,-6.7421,0.0019683,6.7469,0.33007,-73.004,0,73.004,3.1416,1.9539,0.33006,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.019847,852416,0,33.626,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8925,287.41,99999,339.94,0.50000,1.6946</datapoint>
+          <datapoint>85.501,106.36,-6.7434,-0.0026017,6.7426,0.11733,-73.967,0,73.967,3.1416,1.8953,0.11730,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.019834,852092,0,33.594,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8734,287.44,100038,339.96,0.50000,1.6948</datapoint>
+          <datapoint>86.001,102.99,-6.7392,0.0084356,6.7467,0.30787,-74.953,0,74.953,3.1416,2.0492,0.30775,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.019845,852833,0,33.646,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1063,287.46,100078,339.97,0.50000,1.6950</datapoint>
+          <datapoint>86.501,99.618,-6.7418,-0.0052795,6.7394,0.071695,-75.986,0,75.986,3.1416,2.0849,0.071501,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.019823,852125,0,33.584,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0982,287.48,100117,339.98,0.50000,1.6951</datapoint>
+          <datapoint>87.001,96.248,-6.7376,0.0085067,6.7440,0.25185,-77.060,0,77.060,3.1416,2.2108,0.25170,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.019836,852936,0,33.641,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2574,287.50,100157,340.00,0.50000,1.6953</datapoint>
+          <datapoint>87.501,92.882,-6.7297,0.015763,6.7511,0.62470,-78.087,0,78.087,3.1416,1.8985,0.62450,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.019856,854052,0,33.722,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7833,287.52,100196,340.01,0.50000,1.6954</datapoint>
+          <datapoint>88.001,89.514,-6.7397,-0.020136,6.7322,0.27039,-79.003,0,79.003,3.1416,1.7637,0.26964,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.019799,851882,0,33.544,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7135,287.55,100236,340.02,0.50000,1.6956</datapoint>
+          <datapoint>88.501,86.146,-6.7327,0.014022,6.7434,0.32590,-79.844,0,79.844,3.1416,1.6009,0.32560,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.019832,853521,0,33.667,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.5407,287.57,100275,340.04,0.50000,1.6958</datapoint>
+          <datapoint>89.001,82.779,-6.7364,-0.0073782,6.7336,0.16089,-80.665,0,80.665,3.1416,1.6813,0.16072,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.019802,852500,0,33.580,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7111,287.59,100315,340.05,0.50000,1.6959</datapoint>
+          <datapoint>89.492,79.483,-6.7084,0.057208,6.7721,1.0197,-81.611,0,81.611,3.1416,2.1805,1.0181,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.019914,857586,0,33.975,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.3751,287.61,100354,340.06,0.49034,1.6961</datapoint>
+          <datapoint>89.992,76.119,-6.7451,-0.073393,6.7084,0.086088,-82.696,0,82.696,3.1416,2.1580,0.044995,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.019726,849743,0,33.350,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1495,287.63,100393,340.08,0.50000,1.6962</datapoint>
+          <datapoint>90.492,72.751,-6.7260,0.038090,6.7461,0.17387,-83.796,0,83.796,3.1416,2.2428,0.16965,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.019836,854728,0,33.736,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2740,287.66,100432,340.09,0.50000,1.6964</datapoint>
+          <datapoint>90.992,69.387,-6.7329,-0.013835,6.7274,0.20091,-84.893,0,84.893,3.1416,2.1426,0.20043,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.019781,852585,0,33.560,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1054,287.68,100472,340.10,0.50000,1.6965</datapoint>
+          <datapoint>91.492,66.022,-6.7259,0.014188,6.7376,0.36533,-85.918,0,85.918,3.1416,1.9601,0.36505,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.019810,854089,0,33.672,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8928,287.70,100511,340.12,0.50000,1.6967</datapoint>
+          <datapoint>91.992,62.658,-6.7307,-0.0096133,6.7262,0.10610,-86.912,0,86.912,3.1416,2.0129,0.10567,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.019776,852871,0,33.570,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0324,287.72,100551,340.13,0.50000,1.6969</datapoint>
+          <datapoint>92.492,59.296,-6.7171,0.027159,6.7445,0.63242,-87.839,0,87.839,3.1416,1.6970,0.63184,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.019828,855403,0,33.763,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.5813,287.74,100590,340.14,0.50000,1.6970</datapoint>
+          <datapoint>92.992,55.935,-6.7269,-0.019637,6.7239,0.44244,-88.743,0,88.743,3.1416,1.9180,0.44200,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.019767,853010,0,33.568,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9997,287.76,100630,340.16,0.50000,1.7450</datapoint>
+          <datapoint>93.492,52.572,-6.7249,0.0039203,6.7281,0.18478,-89.679,0,89.679,3.1416,1.8256,0.18474,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.019779,853760,0,33.620,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7916,287.79,100669,340.17,0.50000,1.7456</datapoint>
+          <datapoint>93.992,49.211,-6.7190,0.011840,6.7333,0.49218,-90.530,0,90.530,3.1416,1.5796,0.49204,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.019793,854645,0,33.683,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.4893,287.81,100708,340.18,0.50000,1.7457</datapoint>
+          <datapoint>94.492,45.851,-6.7211,-0.0041362,6.7262,0.45463,-91.376,0,91.376,3.1416,1.8069,0.45461,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.019772,853957,0,33.622,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8905,287.83,100748,340.20,0.50000,1.7459</datapoint>
+          <datapoint>94.992,42.490,-6.7234,-0.0045675,6.7217,0.13558,-92.297,0,92.297,3.1416,1.8746,0.13550,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.019758,853606,0,33.588,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8996,287.85,100787,340.21,0.50000,1.7460</datapoint>
+          <datapoint>95.492,39.129,-6.7211,0.0045188,6.7235,0.069844,-93.243,0,93.243,3.1416,1.9095,0.069697,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.019762,854054,0,33.617,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9223,287.87,100827,340.22,0.50000,1.7462</datapoint>
+          <datapoint>95.992,35.769,-6.7170,0.0082398,6.7262,0.38388,-94.246,0,94.246,3.1416,2.1014,0.38379,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.019769,854613,0,33.654,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1717,287.90,100866,340.23,0.50000,1.7463</datapoint>
+          <datapoint>96.492,32.410,-6.7201,-0.0062859,6.7183,0.19377,-95.272,0,95.272,3.1416,2.0045,0.19367,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.019745,853822,0,33.586,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9689,287.92,100905,340.25,0.50000,1.7465</datapoint>
+          <datapoint>96.992,29.051,-6.7158,0.0087465,6.7233,0.30296,-96.237,0,96.237,3.1416,1.8531,0.30283,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.019759,854678,0,33.647,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7976,287.94,100945,340.26,0.50000,1.7466</datapoint>
+          <datapoint>97.492,25.694,-6.7116,0.0083716,6.7253,0.52519,-97.097,0,97.097,3.1416,1.5906,0.52512,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.019764,855150,0,33.677,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.4946,287.96,100984,340.27,0.50000,1.7468</datapoint>
+          <datapoint>97.992,22.336,-6.7188,-0.014408,6.7118,0.086091,-97.903,0,97.903,3.1416,1.6330,0.084877,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.019724,853651,0,33.553,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.6486,287.98,101024,340.29,0.50000,1.7470</datapoint>
+          <datapoint>98.492,18.978,-6.7137,0.010217,6.7193,0.12804,-98.736,0,98.736,3.1416,1.6968,0.12763,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.019745,854824,0,33.638,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7202,288.00,101063,340.30,0.50000,1.7472</datapoint>
+          <datapoint>98.992,15.621,-6.7147,-0.0021112,6.7139,0.085198,-99.595,0,99.595,3.1416,1.7394,0.085172,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.019729,854351,0,33.595,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7550,288.03,101102,340.31,0.50000,1.7473</datapoint>
+          <datapoint>99.492,12.268,-6.6996,0.030332,6.7329,0.72683,-100.56,0,100.56,3.1416,2.1025,0.72619,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.019784,856985,0,33.796,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2341,288.05,101142,340.33,0.50000,1.7475</datapoint>
+          <datapoint>99.992,8.9133,-6.7182,-0.037262,6.6998,0.089758,-101.62,0,101.62,3.1416,2.1433,0.081658,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.019686,852985,0,33.474,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1584,288.07,101181,340.34,0.50000,1.7476</datapoint>
+          <datapoint>100.49,5.5571,-6.7066,0.023144,6.7203,0.24985,-102.72,0,102.72,3.1416,2.2677,0.24878,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.019745,855816,0,33.691,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.3130,288.09,101220,340.35,0.50000,1.7478</datapoint>
+          <datapoint>100.99,2.2027,-6.7109,-0.0085814,6.7081,0.20977,-103.83,0,103.83,3.1416,2.1629,0.20960,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.019709,854480,0,33.579,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1246,288.11,101260,340.37,0.50000,1.7479</datapoint>
+          <datapoint>101.49,-1.1522,-6.7085,0.0048294,6.7109,0.013331,-104.91,0,104.91,3.1416,2.1567,0.012426,NaN,NaN,NaN,NaN,3.4191,NaN,NaN,NaN,0.019716,855049,0,33.617,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1544,288.14,101299,340.38,0.50000,1.7481</datapoint>
+        </databranch>
+      </flightdata>
+    </simulation>
+  </simulations>
+</openrocket>
diff --git a/datafiles/examples/Roll-stabilized rocket.ork b/datafiles/examples/Roll-stabilized rocket.ork
new file mode 100644 (file)
index 0000000..0982ba8
--- /dev/null
@@ -0,0 +1,425 @@
+<?xml version='1.0' encoding='utf-8'?>
+<openrocket version="1.0" creator="OpenRocket 0.9.3pre">
+  <rocket>
+    <name>Roll-stabilized rocket</name>
+    <comment>Canting the fins may increase the flight stability of a rocket.
+
+Be cautios when flying rockets with marginal or neurtal static stability!!</comment>
+    <designer>Sampo Niskanen</designer>
+    <motorconfiguration configid="e1dc7488-77c0-403a-b54f-c01db07aba2f" default="true"/>
+    <motorconfiguration configid="d33813f0-2563-41f7-8bb3-96eae598f567"/>
+    <referencetype>maximum</referencetype>
+
+    <subcomponents>
+      <stage>
+        <name>Sustainer</name>
+
+        <subcomponents>
+          <nosecone>
+            <name>Nose cone</name>
+            <finish>normal</finish>
+            <material type="bulk" density="1050.0">Polystyrene</material>
+            <length>0.1</length>
+            <thickness>0.0020</thickness>
+            <shape>ellipsoid</shape>
+            <shapeclipped>false</shapeclipped>
+            <aftradius>0.0225</aftradius>
+            <aftshoulderradius>0.019</aftshoulderradius>
+            <aftshoulderlength>0.035</aftshoulderlength>
+            <aftshoulderthickness>0.0020</aftshoulderthickness>
+            <aftshouldercapped>true</aftshouldercapped>
+          </nosecone>
+
+          <bodytube>
+            <name>Body tube</name>
+            <finish>normal</finish>
+            <material type="bulk" density="680.0">Cardboard</material>
+            <length>0.4</length>
+            <thickness>0.0010</thickness>
+            <radius>auto</radius>
+
+            <subcomponents>
+              <innertube>
+                <name>Clustered Inner Tube</name>
+                <position type="bottom">0.0050</position>
+                <comment>Clustering the inner tube automatically multiplies also the components attached to it.
+The cluster configuration can be modified at any point in the &quot;Cluster&quot; tab.</comment>
+                <material type="bulk" density="680.0">Cardboard</material>
+                <length>0.075</length>
+                <radialposition>0.0</radialposition>
+                <radialdirection>0.0</radialdirection>
+                <outerradius>0.013000000000000001</outerradius>
+                <thickness>5.000000000000004E-4</thickness>
+                <clusterconfiguration>single</clusterconfiguration>
+                <clusterscale>1.1</clusterscale>
+                <clusterrotation>0.0</clusterrotation>
+                <motormount>
+                  <motor configid="e1dc7488-77c0-403a-b54f-c01db07aba2f">
+                    <manufacturer>Estes</manufacturer>
+                    <designation>D12</designation>
+                    <diameter>0.024</diameter>
+                    <length>0.07</length>
+                    <delay>5.0</delay>
+                  </motor>
+                  <motor configid="d33813f0-2563-41f7-8bb3-96eae598f567">
+                    <manufacturer>WECO Feuerwerk</manufacturer>
+                    <designation>D7</designation>
+                    <diameter>0.025</diameter>
+                    <length>0.07</length>
+                    <delay>3.0</delay>
+                  </motor>
+                  <ignitionevent>automatic</ignitionevent>
+                  <ignitiondelay>0.0</ignitiondelay>
+                  <overhang>0.0030</overhang>
+                </motormount>
+
+                <subcomponents>
+                  <engineblock>
+                    <name>Engine block</name>
+                    <position type="top">0.0020</position>
+                    <material type="bulk" density="680.0">Cardboard</material>
+                    <length>0.0050</length>
+                    <radialposition>0.0</radialposition>
+                    <radialdirection>0.0</radialdirection>
+                    <outerradius>auto</outerradius>
+                    <thickness>0.0030</thickness>
+                  </engineblock>
+                </subcomponents>
+              </innertube>
+
+              <centeringring>
+                <name>Centering ring</name>
+                <position type="bottom">0.0</position>
+                <comment>The centering ring automatically takes the outer diameter of the body tube and the inner diameter of the inner tube.</comment>
+                <material type="bulk" density="680.0">Cardboard</material>
+                <length>0.0020</length>
+                <radialposition>0.0</radialposition>
+                <radialdirection>0.0</radialdirection>
+                <outerradius>auto</outerradius>
+                <innerradius>auto</innerradius>
+              </centeringring>
+
+              <centeringring>
+                <name>Centering ring</name>
+                <position type="bottom">-0.045</position>
+                <comment>The centering ring automatically takes the outer diameter of the body tube and the inner diameter of the inner tube.</comment>
+                <material type="bulk" density="680.0">Cardboard</material>
+                <length>0.0020</length>
+                <radialposition>0.0</radialposition>
+                <radialdirection>0.0</radialdirection>
+                <outerradius>auto</outerradius>
+                <innerradius>auto</innerradius>
+              </centeringring>
+
+              <shockcord>
+                <name>Shock cord</name>
+                <position type="top">0.035</position>
+                <comment>The shock cord does not need to be attached to anything in particular, as it functions only as a mass component.</comment>
+                <packedlength>0.052000000000000005</packedlength>
+                <packedradius>0.0080</packedradius>
+                <radialposition>0.0</radialposition>
+                <radialdirection>0.0</radialdirection>
+                <cordlength>0.6</cordlength>
+                <material type="line" density="0.0043">Elastic cord (flat  6mm, 1/4 in)</material>
+              </shockcord>
+
+              <parachute>
+                <name>Parachute</name>
+                <position type="top">0.04</position>
+                <packedlength>0.042</packedlength>
+                <packedradius>0.015</packedradius>
+                <radialposition>0.0</radialposition>
+                <radialdirection>0.0</radialdirection>
+                <cd>auto</cd>
+                <deployevent>ejection</deployevent>
+                <deployaltitude>200.0</deployaltitude>
+                <deploydelay>0.0</deploydelay>
+                <material type="surface" density="0.067">Ripstop nylon</material>
+                <diameter>0.4</diameter>
+                <linecount>6</linecount>
+                <linelength>0.3</linelength>
+                <linematerial type="line" density="0.0010">Braided nylon (2 mm, 1/16 in)</linematerial>
+              </parachute>
+
+              <masscomponent>
+                <name>Wadding</name>
+                <position type="top">0.09</position>
+                <packedlength>0.04</packedlength>
+                <packedradius>0.021</packedradius>
+                <radialposition>0.0</radialposition>
+                <radialdirection>0.0</radialdirection>
+                <mass>0.0020</mass>
+              </masscomponent>
+
+              <launchlug>
+                <name>Launch lug</name>
+                <position type="middle">0.0</position>
+                <finish>normal</finish>
+                <material type="bulk" density="680.0">Cardboard</material>
+                <radius>0.0035</radius>
+                <length>0.035</length>
+                <thickness>0.0010</thickness>
+                <radialdirection>14.999999999999998</radialdirection>
+              </launchlug>
+
+              <launchlug>
+                <name>Launch lug</name>
+                <position type="bottom">-0.01</position>
+                <finish>normal</finish>
+                <material type="bulk" density="680.0">Cardboard</material>
+                <radius>0.0035</radius>
+                <length>0.035</length>
+                <thickness>0.0010</thickness>
+                <radialdirection>14.999999999999998</radialdirection>
+              </launchlug>
+
+              <ellipticalfinset>
+                <name>Elliptical fin set</name>
+                <position type="bottom">0.0</position>
+                <finish>normal</finish>
+                <material type="bulk" density="680.0">Cardboard</material>
+                <fincount>3</fincount>
+                <rotation>0.0</rotation>
+                <thickness>0.0030</thickness>
+                <crosssection>airfoil</crosssection>
+                <cant>5.0</cant>
+                <rootchord>0.06</rootchord>
+                <height>0.03</height>
+              </ellipticalfinset>
+            </subcomponents>
+          </bodytube>
+        </subcomponents>
+      </stage>
+    </subcomponents>
+  </rocket>
+
+  <simulations>
+    <simulation status="loaded">
+      <name>Simulation 4</name>
+      <simulator>RK4Simulator</simulator>
+      <calculator>BarrowmanCalculator</calculator>
+      <conditions>
+        <configid>e1dc7488-77c0-403a-b54f-c01db07aba2f</configid>
+        <launchrodlength>1.0</launchrodlength>
+        <launchrodangle>0.0</launchrodangle>
+        <launchroddirection>0.0</launchroddirection>
+        <windaverage>2.0</windaverage>
+        <windturbulence>0.1</windturbulence>
+        <launchaltitude>0.0</launchaltitude>
+        <launchlatitude>45.0</launchlatitude>
+        <atmosphere model="isa"/>
+        <timestep>0.05</timestep>
+      </conditions>
+      <flightdata maxaltitude="283.01" maxvelocity="87.664" maxacceleration="141.29" maxmach="0.25781" timetoapogee="7.1270" flighttime="69.292" groundhitvelocity="4.7530">
+        <databranch name="Main" types="Time,Altitude,Vertical velocity,Vertical acceleration,Total velocity,Total acceleration,Position upwind,Position parallel to wind,Lateral distance,Lateral direction,Lateral velocity,Lateral acceleration,Angle of attack,Roll rate,Pitch rate,Yaw rate,Mass,CP location,CG location,Stability margin calibers,Mach number,Reynolds number,Thrust,Drag force,Drag coefficient,Axial drag coefficient,Friction drag coefficient,Pressure drag coefficient,Base drag coefficient,Normal force coefficient,Pitch moment coefficient,Yaw moment coefficient,Side force coefficient,Roll moment coefficient,Roll forcing coefficient,Roll damping coefficient,Pitch damping coefficient,Reference length,Reference area,Vertical orientation (zenith),Lateral orientation (azimuth),Wind velocity,Air temperature,Air pressure,Speed of sound,Simulation time step,Computation time">
+          <event time="0" type="launch"/>
+          <event time="0" type="ignition"/>
+          <event time="0.10000" type="liftoff"/>
+          <event time="0.25000" type="launchrod"/>
+          <event time="1.6535" type="burnout"/>
+          <event time="6.6530" type="ejectioncharge"/>
+          <event time="6.6530" type="recoverydevicedeployment"/>
+          <event time="7.1270" type="apogee"/>
+          <event time="69.292" type="groundhit"/>
+          <event time="69.292" type="simulationend"/>
+          <datapoint>0,0,0,-1.1124,1.8235,1.1124,0,0,0,0,0,0,1.5708,0,0,0,0.15152,NaN,NaN,NaN,0.0053571,62254,1.3189,0,0.58178,0,0.42064,0.041142,0.12000,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,0.045000,0.0015904,1.5708,0,1.8235,288.15,101325,340.39,0.050000,0.047650</datapoint>
+          <datapoint>0.10000,0.079360,2.6161,59.458,3.2050,59.458,0,0,0,0,0,0,0.61588,0,0,0,0.15106,NaN,NaN,NaN,0.0094157,109417,10.470,0.0050233,0.52367,0.50201,0.36251,0.041149,0.12001,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,0.045000,0.0015904,1.5708,0,1.8515,288.15,101324,340.39,0.050000,0.070724</datapoint>
+          <datapoint>0.20000,0.76796,12.518,141.29,12.664,141.29,0,0,0,0,0,0,0.15180,0,0,0,0.14939,NaN,NaN,NaN,0.037205,432318,22.650,0.076980,0.42656,0.49277,0.26514,0.041241,0.12018,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,0.045000,0.0015904,1.5708,0,1.9151,288.15,101316,340.39,0.050000,0.079279</datapoint>
+          <datapoint>0.32000,3.4154,31.068,115.09,31.128,115.12,-0.0047205,9.2316e-7,0.0047205,3.1414,0.14302,2.3820,0.061941,11.539,0.016841,-0.0027828,0.14570,0.28711,0.27823,0.19716,0.091453,1062436,18.617,0.41737,0.42786,0.44231,0.26495,0.041823,0.12109,0.37391,0.073717,3.9326e-8,0,0.29265,0.47423,0.18158,1.4402e-6,0.045000,0.0015904,1.5705,0.11857,2.0797,288.13,101285,340.38,0.0010000,0.23630</datapoint>
+          <datapoint>0.44000,7.7490,40.265,60.865,40.291,60.893,-0.038443,9.4132e-4,0.038455,3.1171,0.39499,1.8227,0.031061,29.910,-0.036583,-0.10904,0.14373,0.29970,0.27556,0.53640,0.11838,1374726,10.843,0.68416,0.42900,0.43294,0.26480,0.042377,0.12182,0.18478,0.099119,3.5880e-5,0,0.10979,0.47444,0.36465,-4.0385e-6,0.045000,0.0015904,1.5614,0.88265,1.8584,288.10,101234,340.36,0.0010000,0.70892</datapoint>
+          <datapoint>0.56000,12.998,47.044,52.758,47.059,52.791,-0.098045,0.013626,0.098987,3.0035,0.63080,1.8476,0.021109,40.683,0.078604,-0.047322,0.14219,0.29976,0.27342,0.58539,0.13827,1604986,9.8279,0.93058,0.43003,0.43190,0.26467,0.042882,0.12249,0.12173,0.071244,4.9403e-6,0,0.048848,0.47463,0.42578,1.3631e-5,0.045000,0.0015904,1.5607,1.1416,1.7633,288.07,101173,340.34,0.0010000,0.99430</datapoint>
+          <datapoint>0.68000,19.013,53.135,48.729,53.146,48.766,-0.17891,0.044754,0.18442,2.8965,0.83026,1.9004,0.016017,47.960,0.072497,-0.0041964,0.14074,0.29133,0.27137,0.44354,0.15617,1811797,9.4303,1.1894,0.43194,0.43303,0.26453,0.044242,0.12317,0.086237,0.038240,3.0405e-8,0,0.029187,0.47483,0.44564,9.0747e-6,0.045000,0.0015904,1.5571,1.2259,1.7815,288.03,101102,340.31,0.0010000,1.2443</datapoint>
+          <datapoint>0.80000,25.732,58.781,45.713,58.790,45.747,-0.27534,0.098983,0.29259,2.7965,1.0198,1.7624,0.010573,53.931,0.078783,-0.018182,0.13934,0.29211,0.26934,0.50607,0.17277,2003174,9.2030,1.4638,0.43533,0.43581,0.26438,0.047066,0.12388,0.056174,0.028419,4.6598e-7,0,0.020748,0.47503,0.45429,8.7488e-6,0.045000,0.0015904,1.5543,1.1764,1.7484,287.98,101023,340.29,0.0010000,1.4774</datapoint>
+          <datapoint>0.92000,33.108,64.110,43.134,64.121,43.165,-0.38084,0.17904,0.42083,2.7021,1.1928,1.6448,0.0062156,59.294,0.042889,-0.084950,0.13797,0.30156,0.26731,0.76101,0.18845,2183587,9.0597,1.7520,0.43861,0.43879,0.26423,0.049765,0.12462,0.034518,0.026267,8.5487e-6,0,0.015966,0.47525,0.45928,2.1791e-6,0.045000,0.0015904,1.5517,1.0761,1.7495,287.93,100937,340.26,0.0010000,1.7111</datapoint>
+          <datapoint>1.0400,41.106,69.130,40.507,69.143,40.553,-0.49000,0.28573,0.56722,2.6137,1.3540,1.9270,0.0052569,64.234,-0.085456,-0.030238,0.13661,0.29850,0.26527,0.73827,0.20323,2353193,8.9288,2.0501,0.44179,0.44191,0.26408,0.052338,0.12537,0.028539,0.021077,9.3194e-7,0,0.012667,0.47547,0.46280,-7.4432e-6,0.045000,0.0015904,1.5481,1.0271,1.8371,287.88,100843,340.23,0.0010000,1.9476</datapoint>
+          <datapoint>1.1600,49.686,73.830,37.818,73.847,37.865,-0.59881,0.41874,0.73069,2.5313,1.5092,1.8934,0.0052437,68.790,0.0036301,0.063285,0.13528,0.28674,0.26323,0.52247,0.21707,2511664,8.8006,2.3528,0.44482,0.44495,0.26392,0.054775,0.12613,0.026503,0.013847,-3.5828e-6,0,0.010221,0.47569,0.46546,1.1788e-8,0.045000,0.0015904,1.5469,1.0684,1.9417,287.83,100742,340.19,0.0010000,2.1577</datapoint>
+          <datapoint>1.2803,58.832,78.211,34.891,78.232,34.916,-0.70432,0.57676,0.91034,2.4554,1.6485,1.3188,0.0017475,72.983,0.021815,-0.081616,0.13397,0.29093,0.26117,0.66130,0.22999,2658948,8.6465,2.6547,0.44772,0.44773,0.26377,0.057069,0.12688,0.0089471,0.0059164,5.3202e-6,0,0.0083268,0.47590,0.46758,3.8008e-7,0.045000,0.0015904,1.5470,0.96717,1.9686,287.77,100635,340.16,0.0010457,2.4236</datapoint>
+          <datapoint>1.4008,68.506,82.192,31.142,82.215,31.184,-0.80350,0.75697,1.1039,2.3860,1.7603,1.6263,0.0023588,76.776,0.018691,0.063374,0.13268,0.29842,0.25912,0.87334,0.24172,2792259,8.3850,2.9468,0.45039,0.45042,0.26362,0.059174,0.12760,0.012673,0.011068,-2.9124e-6,0,0.0066898,0.47611,0.46942,2.5334e-7,0.045000,0.0015904,1.5450,0.98718,1.9424,287.70,100522,340.12,0.0011770,2.6483</datapoint>
+          <datapoint>1.5205,78.555,85.755,28.812,85.782,28.832,-0.89242,0.95371,1.3061,2.3230,1.8455,1.0714,4.3692e-4,80.117,-0.062693,0.039273,0.13143,0.29240,0.25708,0.78488,0.25224,2911184,8.3012,3.2222,0.45283,0.45284,0.26349,0.061077,0.12827,0.0022468,0.0017661,-1.0309e-6,0,0.0055320,0.47631,0.47078,-2.6270e-6,0.045000,0.0015904,1.5455,0.90790,2.0069,287.64,100404,340.08,0.0013080,2.8131</datapoint>
+          <datapoint>1.6381,88.815,87.636,-26.837,87.664,26.842,-0.97122,1.1603,1.5132,2.2677,1.8965,0.50979,4.5932e-4,82.688,-0.0017382,0.070671,0.13045,0.28717,0.25546,0.70460,0.25781,2972723,1.1504,3.3716,0.45414,0.45414,0.26341,0.062089,0.12864,0.0022896,0.0016132,-3.2068e-6,0,2.3551e-4,0.47642,0.47618,0,0.045000,0.0015904,1.5459,0.95522,1.9455,287.57,100283,340.04,0.0048464,2.9548</datapoint>
+          <datapoint>1.7585,99.118,83.540,-33.140,83.566,33.143,-1.0516,1.3711,1.7280,2.2251,1.8506,0.38419,0.0012472,80.123,0.037822,0.052709,0.13042,0.28704,0.25541,0.70307,0.24578,2831526,0,3.0419,0.45133,0.45134,0.26357,0.059907,0.12785,0.0062291,0.0043785,-1.9633e-6,0,-0.0062858,0.47619,0.48248,1.0109e-6,0.045000,0.0015904,1.5446,0.93137,1.8934,287.51,100163,340.00,0.0012165,3.0793</datapoint>
+          <datapoint>1.8782,108.89,79.708,-30.900,79.733,30.911,-1.1347,1.5730,1.9396,2.1957,1.7925,0.78862,0.0019759,76.705,-0.045543,0.039132,0.13042,0.28916,0.25541,0.74999,0.23454,2699620,0,2.7509,0.44875,0.44877,0.26372,0.057883,0.12715,0.010018,0.0075150,-1.1887e-6,0,-0.0067294,0.47598,0.48271,-1.6101e-6,0.045000,0.0015904,1.5467,0.91429,1.7816,287.44,100048,339.96,0.0012477,3.2817</datapoint>
+          <datapoint>1.9977,118.20,76.136,-28.932,76.164,28.950,-1.2199,1.7656,2.1460,2.1754,1.7456,1.0254,0.0029285,73.465,-0.065441,-0.0041200,0.13042,0.30293,0.25541,1.0562,0.22406,2576951,0,2.4948,0.44638,0.44642,0.26384,0.056014,0.12653,0.016225,0.017140,1.4441e-8,0,-0.0069554,0.47580,0.48276,-3.6431e-6,0.045000,0.0015904,1.5453,0.96581,2.0765,287.38,99939,339.92,0.0013239,3.4617</datapoint>
+          <datapoint>2.1174,127.10,72.781,-27.182,72.806,27.194,-1.3150,1.9512,2.3530,2.1638,1.7404,0.80038,0.0019100,70.398,0.048719,0.033372,0.13042,0.30078,0.25541,1.0084,0.21421,2461652,0,2.2665,0.44419,0.44421,0.26396,0.054268,0.12596,0.010401,0.010486,-1.0368e-6,0,-0.0072085,0.47564,0.48285,2.2097e-6,0.045000,0.0015904,1.5461,0.96279,1.9903,287.32,99834,339.89,0.0013990,3.6602</datapoint>
+          <datapoint>2.2367,135.60,69.632,-25.633,69.658,25.641,-1.4187,2.1313,2.5603,2.1581,1.7467,0.61124,0.0021075,67.506,-0.049719,-0.041514,0.13042,0.29662,0.25541,0.91597,0.20497,2353682,0,2.0636,0.44216,0.44218,0.26406,0.052643,0.12546,0.011187,0.010249,1.7528e-6,0,-0.0074641,0.47549,0.48296,-2.5141e-6,0.045000,0.0015904,1.5436,0.97171,2.1037,287.27,99735,339.85,0.0014772,3.8206</datapoint>
+          <datapoint>2.3563,143.75,66.650,-24.237,66.674,24.241,-1.5319,2.3087,2.7707,2.1566,1.7674,0.46277,0.0019345,64.754,0.010900,0.051063,0.13042,0.30084,0.25541,1.0097,0.19620,2251440,0,1.8810,0.44027,0.44029,0.26415,0.051112,0.12500,0.010539,0.010641,-2.8946e-6,0,-0.0077519,0.47536,0.48311,1.3190e-7,0.045000,0.0015904,1.5433,1.0247,2.0182,287.22,99639,339.82,0.0015538,3.9965</datapoint>
+          <datapoint>2.4757,151.54,63.833,-22.980,63.854,22.983,-1.6496,2.4831,2.9811,2.1572,1.7511,0.41967,0.0017875,62.141,-0.058778,-0.0071294,0.13042,0.30208,0.25541,1.0372,0.18792,2154921,0,1.7171,0.43850,0.43852,0.26424,0.049675,0.12459,0.0098106,0.010179,6.1519e-8,0,-0.0080515,0.47524,0.48329,-4.1816e-6,0.045000,0.0015904,1.5444,0.98015,1.8208,287.17,99548,339.79,0.0016321,4.1122</datapoint>
+          <datapoint>2.5961,159.06,61.137,-21.837,61.158,21.844,-1.7671,2.6546,3.1890,2.1581,1.7025,0.52132,0.0030910,59.632,-0.0048332,0.049852,0.13042,0.28983,0.25541,0.76492,0.18000,2062726,0,1.5681,0.43683,0.43688,0.26431,0.048308,0.12421,0.015794,0.012081,-3.2791e-6,0,-0.0083697,0.47513,0.48350,-3.0821e-8,0.045000,0.0015904,1.5445,0.93850,1.7603,287.12,99460,339.76,0.0017128,4.2781</datapoint>
+          <datapoint>2.7170,166.29,58.561,-20.794,58.583,20.799,-1.8834,2.8207,3.3917,2.1595,1.6521,0.42878,0.0014278,57.228,0.056990,-0.015457,0.13042,0.29014,0.25541,0.77197,0.17244,1974760,0,1.4325,0.43526,0.43527,0.26439,0.047010,0.12387,0.0072679,0.0056059,3.4357e-7,0,-0.0087109,0.47503,0.48374,4.6703e-6,0.045000,0.0015904,1.5445,0.95976,1.8225,287.07,99375,339.73,0.0017946,4.4239</datapoint>
+          <datapoint>2.8361,173.12,56.140,-19.868,56.159,19.870,-2.0007,2.9780,3.5876,2.1624,1.6369,0.27266,9.7102e-4,54.963,0.062481,-0.010677,0.13042,0.30152,0.25541,1.0249,0.16532,1892072,0,1.3112,0.43380,0.43380,0.26445,0.045794,0.12355,0.0052957,0.0054213,1.7837e-7,0,-0.0091047,0.47494,0.48404,6.1084e-6,0.045000,0.0015904,1.5442,1.0230,1.7282,287.02,99295,339.71,0.0018701,4.5514</datapoint>
+          <datapoint>2.9565,179.74,53.800,-19.009,53.821,19.014,-2.1220,3.1312,3.7825,2.1664,1.6149,0.45470,0.0024990,52.768,-0.062255,4.6360e-5,0.13042,0.28684,0.25541,0.69852,0.15845,1812372,0,1.1997,0.43240,0.43243,0.26451,0.044628,0.12326,0.012520,0.0087521,0,0,-0.0094933,0.47486,0.48435,-6.6027e-6,0.045000,0.0015904,1.5445,1.0559,1.8531,286.98,99217,339.68,0.0019539,4.6653</datapoint>
+          <datapoint>3.0760,186.04,51.576,-18.234,51.597,18.241,-2.2467,3.2783,3.9742,2.1716,1.6132,0.52611,0.0039112,50.678,-0.050594,0.017056,0.13042,0.28658,0.25541,0.69280,0.15191,1736621,0,1.0987,0.43108,0.43115,0.26456,0.043523,0.12300,0.019660,0.013625,-5.3928e-7,0,-0.0099308,0.47478,0.48471,-4.7450e-6,0.045000,0.0015904,1.5442,1.0864,1.9044,286.94,99143,339.66,0.0020333,4.8015</datapoint>
+          <datapoint>3.1962,192.10,49.428,-17.533,49.450,17.544,-2.3783,3.4221,4.1674,2.1781,1.6349,0.63395,0.0058701,48.657,-0.041281,0.022339,0.13042,0.28791,0.25541,0.72239,0.14560,1663577,0,1.0073,0.43045,0.43060,0.26461,0.043079,0.12276,0.029938,0.021630,-1.0071e-6,0,-0.010412,0.47471,0.48512,-3.4392e-6,0.045000,0.0015904,1.5430,1.1136,2.0182,286.90,99072,339.63,0.0021127,4.8944</datapoint>
+          <datapoint>3.3166,197.93,47.357,-16.893,47.378,16.899,-2.5180,3.5636,4.3635,2.1859,1.6668,0.44607,0.0045237,46.706,-0.039302,0.027280,0.13042,0.29381,0.25541,0.85339,0.13951,1593138,0,0.92323,0.43010,0.43019,0.26466,0.042915,0.12253,0.023794,0.020309,-1.6362e-6,0,-0.010960,0.47464,0.48560,-3.3959e-6,0.045000,0.0015904,1.5414,1.1293,1.9777,286.86,99004,339.61,0.0021880,5.0357</datapoint>
+          <datapoint>3.4367,203.50,45.363,-16.304,45.382,16.304,-2.6633,3.7033,4.5615,2.1943,1.6837,0.13044,0.0020552,44.824,-0.027025,0.045550,0.13042,0.29180,0.25541,0.80866,0.13364,1525376,0,0.84588,0.42978,0.42980,0.26470,0.042760,0.12232,0.010589,0.0085647,-4.9716e-6,0,-0.011552,0.47458,0.48614,-1.7500e-6,0.045000,0.0015904,1.5403,1.1199,1.8518,286.83,98938,339.59,0.0022636,5.1331</datapoint>
+          <datapoint>3.5564,208.81,43.445,-15.760,43.464,15.760,-2.8112,3.8409,4.7598,2.2026,1.6876,0.075689,0.0018004,43.012,-0.0095576,0.061590,0.13042,0.29074,0.25541,0.78525,0.12800,1460277,0,0.77492,0.42948,0.42950,0.26474,0.042615,0.12213,0.0092093,0.0072318,-9.9097e-6,0,-0.012186,0.47453,0.48671,-2.3863e-7,0.045000,0.0015904,1.5398,1.0922,1.8071,286.79,98876,339.57,0.0023405,5.2673</datapoint>
+          <datapoint>3.6753,213.87,41.602,-15.261,41.618,15.266,-2.9597,3.9757,4.9564,2.2107,1.6785,0.34997,0.0053570,41.270,-0.0058327,0.053118,0.13042,0.29846,0.25541,0.95680,0.12257,1397734,0,0.70990,0.42921,0.42933,0.26478,0.042480,0.12195,0.029085,0.027829,-8.0389e-6,0,-0.012890,0.47448,0.48737,-9.6929e-8,0.045000,0.0015904,1.5410,1.0705,1.6220,286.76,98817,339.55,0.0024149,5.3367</datapoint>
+          <datapoint>3.7955,218.76,39.796,-14.788,39.813,14.793,-3.1079,4.1094,5.1523,2.2183,1.6444,0.37855,0.0048869,39.563,-0.036784,0.051649,0.13042,0.29864,0.25541,0.96075,0.11726,1336593,0,0.64892,0.42895,0.42905,0.26481,0.042350,0.12179,0.026520,0.025483,-8.3055e-6,0,-0.013646,0.47443,0.48808,-4.2126e-6,0.045000,0.0015904,1.5437,1.0755,1.6121,286.73,98759,339.53,0.0024934,5.4668</datapoint>
+          <datapoint>3.9145,223.39,38.063,-14.358,38.080,14.361,-3.2535,4.2380,5.3428,2.2255,1.6260,0.28196,0.0030951,37.925,-0.059884,-0.010449,0.13042,0.29494,0.25541,0.87861,0.11216,1277935,0,0.59296,0.42871,0.42875,0.26484,0.042229,0.12164,0.016314,0.014346,3.7158e-7,0,-0.014495,0.47439,0.48888,-1.2205e-5,0.045000,0.0015904,1.5436,1.1718,1.6003,286.70,98705,339.51,0.0025673,5.5329</datapoint>
+          <datapoint>4.0343,227.85,36.366,-13.958,36.384,13.961,-3.4003,4.3637,5.5321,2.2327,1.6056,0.25476,0.0026632,36.322,-0.042406,-0.039532,0.13042,0.30082,0.25541,1.0092,0.10717,1220616,0,0.54080,0.42848,0.42851,0.26487,0.042114,0.12149,0.014543,0.014684,5.8259e-6,0,-0.015420,0.47434,0.48976,-6.7035e-6,0.045000,0.0015904,1.5419,1.1676,1.7132,286.67,98653,339.49,0.0026447,5.6428</datapoint>
+          <datapoint>4.1548,232.13,34.707,-13.586,34.722,13.589,-3.5489,4.4864,5.7204,2.2401,1.5858,0.29193,0.0048420,34.754,0.033490,0.024927,0.13042,0.29540,0.25541,0.88868,0.10228,1164473,0,0.49216,0.42826,0.42836,0.26490,0.042003,0.12136,0.025746,0.022876,-2.5433e-6,0,-0.016488,0.47431,0.49079,4.5909e-6,0.045000,0.0015904,1.5433,1.1312,1.5390,286.64,98602,339.47,0.0027166,5.7194</datapoint>
+          <datapoint>4.2760,236.24,33.082,-13.236,33.098,13.240,-3.6980,4.6058,5.9067,2.2473,1.5721,0.33919,0.0059933,33.221,-0.0013331,0.040260,0.13042,0.29271,0.25541,0.82890,0.097503,1109645,0,0.44687,0.42807,0.42823,0.26492,0.041914,0.12124,0.031470,0.026085,-7.3016e-6,0,-0.017658,0.47427,0.49193,-8.0057e-9,0.045000,0.0015904,1.5452,1.2040,1.6260,286.61,98554,339.46,0.0027933,5.8077</datapoint>
+          <datapoint>4.3948,240.07,31.529,-12.921,31.545,12.924,-3.8456,4.7190,6.0875,2.2546,1.5642,0.28261,0.0053363,31.758,-0.047378,-0.013257,0.13042,0.29762,0.25541,0.93802,0.092932,1057257,0,0.40559,0.42791,0.42804,0.26494,0.041845,0.12112,0.028817,0.027042,8.7156e-7,0,-0.018955,0.47424,0.49319,-1.1132e-5,0.045000,0.0015904,1.5427,1.2705,1.6522,286.59,98509,339.44,0.0028654,5.8808</datapoint>
+          <datapoint>4.5137,243.73,30.010,-12.627,30.026,12.629,-3.9955,4.8291,6.2677,2.2620,1.5616,0.24236,0.0047471,30.329,0.045718,-0.0065616,0.13042,0.29453,0.25541,0.86935,0.088460,1006050,0,0.36718,0.42776,0.42786,0.26497,0.041780,0.12102,0.025099,0.021808,2.3567e-7,0,-0.020427,0.47421,0.49463,1.1441e-5,0.045000,0.0015904,1.5433,1.2234,1.5936,286.57,98466,339.43,0.0029360,5.9363</datapoint>
+          <datapoint>4.6325,247.21,28.526,-12.354,28.542,12.358,-4.1471,4.9359,6.4469,2.2696,1.5634,0.29871,0.0075841,28.935,-0.012340,0.029767,0.13042,0.29568,0.25541,0.89494,0.084091,956065,0,0.33168,0.42762,0.42787,0.26499,0.041718,0.12092,0.040774,0.036491,-5.3677e-6,0,-0.022070,0.47418,0.49625,-9.2244e-7,0.045000,0.0015904,1.5436,1.3452,1.6332,286.54,98426,339.42,0.0030084,6.0417</datapoint>
+          <datapoint>4.7513,250.51,27.074,-12.104,27.094,12.113,-4.3017,5.0399,6.6261,2.2773,1.5783,0.46569,0.014142,27.576,-0.010952,-0.055360,0.13042,0.30107,0.25541,1.0148,0.079829,907339,0,0.29912,0.42749,0.42834,0.26501,0.041660,0.12083,0.080390,0.081578,2.0603e-5,0,-0.023885,0.47415,0.49804,-8.0630e-7,0.045000,0.0015904,1.5404,1.2968,1.9198,286.52,98387,339.40,0.0030854,6.1101</datapoint>
+          <datapoint>4.8698,253.64,25.653,-11.876,25.678,11.892,-4.4616,5.1414,6.8073,2.2855,1.6221,0.62225,0.023255,26.252,0.024688,0.0021288,0.13042,0.28681,0.25541,0.69779,0.075658,859688,0,0.26937,0.42737,0.42961,0.26502,0.041606,0.12074,0.12477,0.087059,-3.3918e-8,0,-0.025988,0.47413,0.50012,4.5618e-6,0.045000,0.0015904,1.5397,1.3764,2.1291,286.50,98350,339.39,0.0031582,6.2109</datapoint>
+          <datapoint>4.9910,256.66,24.227,-11.654,24.252,11.666,-4.6333,5.2436,6.9973,2.2945,1.6726,0.54326,0.021850,24.928,-0.038145,-0.048976,0.13042,0.29640,0.25541,0.91091,0.071462,811782,0,0.24002,0.42726,0.42924,0.26504,0.041553,0.12066,0.12366,0.11265,2.0125e-5,0,-0.028530,0.47411,0.50264,-1.2208e-5,0.045000,0.0015904,1.5336,1.3600,2.1641,286.48,98315,339.38,0.0032250,6.2779</datapoint>
+          <datapoint>5.1116,259.50,22.835,-11.448,22.860,11.458,-4.8115,5.3445,7.1913,2.3038,1.7249,0.47531,0.022865,23.638,0.033667,2.1524e-4,0.13042,0.28535,0.25541,0.66547,0.067360,764991,0,0.21323,0.42715,0.42931,0.26505,0.041503,0.12059,0.12149,0.080836,0,0,-0.031448,0.47408,0.50553,1.0705e-5,0.045000,0.0015904,1.5334,1.4117,2.1669,286.46,98282,339.37,0.0032949,6.3296</datapoint>
+          <datapoint>5.2315,262.15,21.474,-11.261,21.501,11.271,-4.9958,5.4443,7.3891,2.3133,1.7699,0.48182,0.024216,22.384,-0.030800,-0.056718,0.13042,0.29966,0.25541,0.98347,0.063359,719386,0,0.18866,0.42705,0.42947,0.26507,0.041456,0.12052,0.14095,0.13863,3.4340e-5,0,-0.034748,0.47407,0.50881,-1.0126e-5,0.045000,0.0015904,1.5275,1.3677,2.2647,286.45,98250,339.36,0.0033707,6.4279</datapoint>
+          <datapoint>5.3508,264.63,20.141,-11.091,20.171,11.103,-5.1857,5.5436,7.5910,2.3229,1.8249,0.51146,0.029393,21.164,0.015982,0.0071469,0.13042,0.29695,0.25541,0.92318,0.059440,674730,0,0.16638,0.42695,0.43047,0.26508,0.041412,0.12046,0.17096,0.15782,-6.1957e-7,0,-0.038659,0.47405,0.51271,3.0981e-6,0.045000,0.0015904,1.5258,1.4338,2.3366,286.43,98221,339.35,0.0034445,6.4927</datapoint>
+          <datapoint>5.4725,267.00,18.801,-10.921,18.827,10.924,-5.3867,5.6450,7.8027,2.3328,1.8671,0.25994,0.018590,19.944,-0.0047205,-0.061224,0.13042,0.28729,0.25541,0.70849,0.055481,629658,0,0.14418,0.42686,0.42831,0.26509,0.041369,0.12040,0.098529,0.069807,5.2188e-5,0,-0.043497,0.47403,0.51753,-3.1025e-7,0.045000,0.0015904,1.5218,1.3679,2.1999,286.41,98193,339.34,0.0035138,6.5812</datapoint>
+          <datapoint>5.5934,269.20,17.490,-10.774,17.516,10.776,-5.5907,5.7456,8.0167,2.3425,1.8966,0.23234,0.019715,18.760,-0.024781,0.014373,0.13042,0.28523,0.25541,0.66287,0.051619,585709,0,0.12480,0.42678,0.42840,0.26510,0.041329,0.12035,0.10362,0.068698,-3.3232e-6,0,-0.049105,0.47401,0.52312,-9.8777e-6,0.045000,0.0015904,1.5184,1.4404,2.1598,286.40,98168,339.33,0.0035971,6.6427</datapoint>
+          <datapoint>5.7135,271.22,16.203,-10.637,16.233,10.640,-5.7974,5.8456,8.2329,2.3521,1.9256,0.25771,0.024046,17.610,0.045854,-0.015306,0.13042,0.28555,0.25541,0.66997,0.047841,542741,0,0.10735,0.42671,0.42910,0.26511,0.041300,0.12030,0.12840,0.085981,4.3874e-6,0,-0.055760,0.47400,0.52976,3.9376e-5,0.045000,0.0015904,1.5196,1.4057,2.2641,286.39,98144,339.32,0.0036884,6.7042</datapoint>
+          <datapoint>5.8330,273.08,14.941,-10.514,14.973,10.517,-6.0066,5.9444,8.4508,2.3614,1.9487,0.22073,0.024297,16.496,-0.021380,-0.057975,0.13042,0.28534,0.25541,0.66520,0.044127,500521,0,0.091307,0.42665,0.42909,0.26512,0.041278,0.12025,0.12968,0.086270,7.3989e-5,0,-0.063930,0.47399,0.53792,-1.0063e-5,0.045000,0.0015904,1.5133,1.3809,2.2908,286.37,98122,339.31,0.0037814,6.7880</datapoint>
+          <datapoint>5.9516,274.78,13.700,-10.402,13.729,10.402,-6.2175,6.0421,8.6697,2.3705,1.9680,0.13454,0.016924,15.416,-0.033696,0.013098,0.13042,0.29079,0.25541,0.78635,0.040461,458871,0,0.076521,0.42660,0.42780,0.26513,0.041258,0.12021,0.091093,0.071661,-4.4917e-6,0,-0.074205,0.47398,0.54818,-2.9729e-5,0.045000,0.0015904,1.5112,1.4643,2.1071,286.36,98102,339.31,0.0038752,6.8432</datapoint>
+          <datapoint>6.0736,276.37,12.438,-10.299,12.473,10.302,-6.4369,6.1420,8.8971,2.3796,1.9869,0.23399,0.032956,14.337,0.037672,0.016129,0.13042,0.29891,0.25541,0.96680,0.036762,416863,0,0.063621,0.42655,0.43094,0.26514,0.041239,0.12018,0.19622,0.18966,-8.2515e-6,0,-0.087073,0.47397,0.56104,4.5014e-5,0.045000,0.0015904,1.5140,1.4543,2.2906,286.35,98084,339.30,0.0040005,6.9011</datapoint>
+          <datapoint>6.1953,277.81,11.189,-10.209,11.220,10.210,-6.6587,6.2404,9.1259,2.3886,1.9960,0.091934,0.014698,13.293,0.047129,-0.038738,0.13042,0.28689,0.25541,0.69963,0.033070,374945,0,0.051755,0.43237,0.43330,0.27101,0.041222,0.12014,0.076736,0.053600,5.8822e-5,0,-0.10424,0.47396,0.57820,8.7065e-5,0.045000,0.0015904,1.5092,1.3958,2.0561,286.34,98067,339.29,0.0041278,6.9390</datapoint>
+          <datapoint>6.3173,279.10,9.9494,-10.132,9.9827,10.132,-6.8818,6.3379,9.3556,2.3973,1.9977,0.087722,0.017964,12.285,-0.030085,-0.055319,0.13042,0.28943,0.25541,0.75606,0.029422,333552,0,0.041674,0.43944,0.44083,0.27812,0.041207,0.12011,0.096234,0.072803,1.5154e-4,0,-0.12656,0.47395,0.60051,-4.4822e-5,0.045000,0.0015904,1.5043,1.4765,2.0139,286.34,98052,339.29,0.0042925,6.9992</datapoint>
+          <datapoint>6.4356,280.21,8.7542,-10.065,8.7907,10.065,-7.0991,6.4313,9.5791,2.4055,1.9994,0.11679,0.030970,11.347,-0.051522,0.0059426,0.13042,0.29912,0.25541,0.97138,0.025909,293697,0,0.033097,0.44745,0.45153,0.28617,0.041193,0.12009,0.18350,0.17842,-2.2552e-6,0,-0.15587,0.47394,0.62981,-1.6952e-4,0.045000,0.0015904,1.5072,1.5655,1.9930,286.33,98039,339.29,0.0044912,7.0505</datapoint>
+          <datapoint>6.5555,281.18,7.5516,-10.007,7.5949,10.008,-7.3199,6.5246,9.8057,2.4136,2.0008,0.13762,0.052825,10.445,0.0062488,0.039798,0.13042,0.28410,0.25541,0.63758,0.022385,253728,0,0.025637,0.45712,0.46861,0.29587,0.041181,0.12007,0.30526,0.19463,-1.3551e-4,0,-0.19702,0.47393,0.67096,3.3407e-6,0.045000,0.0015904,1.5117,1.5449,2.0933,286.32,98027,339.28,0.0047533,7.1030</datapoint>
+          <datapoint>6.6697,281.98,6.0788,-29.843,6.6241,29.939,-7.5315,6.6117,10.022,2.4211,1.9986,2.3956,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.019524,221284,0,2.6304,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0587,286.32,98019,339.28,0.016700,7.1275</datapoint>
+          <datapoint>6.7856,282.53,3.5853,-17.564,4.1269,17.600,-7.7507,6.6839,10.235,2.4300,1.9883,1.1214,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.012164,137856,0,1.0209,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0246,286.31,98013,339.28,0.028409,7.1281</datapoint>
+          <datapoint>6.8908,282.82,2.0874,-12.948,2.6336,12.962,-7.9524,6.7371,10.422,2.4387,1.9745,0.59766,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.0077624,87971,0,0.41575,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8880,286.31,98009,339.28,0.038574,7.1285</datapoint>
+          <datapoint>7.0263,283.00,0.58820,-10.405,1.1766,10.408,-8.2115,6.7971,10.660,2.4502,1.9548,0.24209,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.0034679,39301,0,0.082977,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8044,286.31,98006,339.27,0.048039,7.1289</datapoint>
+          <datapoint>7.1270,283.01,-0.41172,-9.8356,0.46099,9.8361,-8.4036,6.8391,10.835,2.4585,1.9483,0.095863,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.0013587,15398,0,0.012738,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7290,286.31,98006,339.27,0.050833,7.1292</datapoint>
+          <datapoint>7.2317,282.91,-1.4116,-9.3940,1.0095,9.3961,-8.6027,6.8815,11.016,2.4669,1.9388,0.20109,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.0029754,33719,0,0.061080,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7497,286.31,98006,339.27,0.053213,7.1313</datapoint>
+          <datapoint>7.3498,282.69,-2.4109,-8.1049,1.9489,8.1121,-8.8263,6.9262,11.219,2.4762,1.9266,0.34134,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.0057444,65101,0,0.22768,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8789,286.31,98008,339.27,0.061637,7.1316</datapoint>
+          <datapoint>7.5045,282.23,-3.4081,-5.8900,2.9359,5.9134,-9.1175,6.9769,11.481,2.4884,1.8869,0.52513,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.0086535,98072,0,0.51670,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.6833,286.31,98012,339.28,0.084554,7.1318</datapoint>
+          <datapoint>7.6159,281.82,-3.9033,-4.4434,3.4303,4.4858,-9.3227,7.0068,11.662,2.4971,1.8347,0.61543,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.010111,114590,0,0.70539,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.6068,286.32,98015,339.28,0.11146,7.1320</datapoint>
+          <datapoint>7.7924,281.09,-4.3973,-2.8000,3.9109,2.8339,-9.6430,7.0427,11.941,2.5108,1.8188,0.43716,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.011527,130647,0,0.91691,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7952,286.32,98020,339.28,0.17643,7.1321</datapoint>
+          <datapoint>8.2911,278.78,-4.8557,-0.91902,4.4018,1.0025,-10.574,7.0835,12.727,2.5513,1.9212,0.40062,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.012974,147055,0,1.1616,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9202,286.32,98028,339.28,0.49873,7.1322</datapoint>
+          <datapoint>8.7546,276.64,-4.3788,1.0288,4.8579,1.0787,-11.429,7.0832,13.446,2.5868,1.7710,0.32425,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.014318,162320,0,1.4151,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7761,286.34,98055,339.29,0.46351,7.1324</datapoint>
+          <datapoint>9.1552,274.81,-4.7649,-0.96368,4.3964,1.2481,-12.203,7.0832,14.109,2.6157,2.0887,0.79307,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.012957,146924,0,1.1592,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1632,286.35,98080,339.30,0.40062,7.1325</datapoint>
+          <datapoint>9.6552,272.51,-4.4445,0.64084,4.7715,0.84532,-13.178,7.0832,14.961,2.6484,1.8131,0.55126,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.014063,159484,0,1.3658,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8375,286.36,98102,339.31,0.50000,7.1327</datapoint>
+          <datapoint>10.069,270.61,-4.7236,-0.67450,4.4711,1.2080,-14.014,7.0832,15.703,2.6736,2.2279,1.0022,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.013177,149471,0,1.1995,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.3003,286.38,98129,339.32,0.41389,7.1329</datapoint>
+          <datapoint>10.569,268.31,-4.4983,0.45065,4.7237,0.45430,-15.121,7.0832,16.698,2.7035,2.1991,0.057442,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.013921,157939,0,1.3391,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2014,286.39,98151,339.32,0.50000,7.1330</datapoint>
+          <datapoint>11.069,266.00,-4.7497,-0.50277,4.4987,0.51820,-16.205,7.0832,17.685,2.7295,2.1364,0.12550,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.013258,150444,0,1.2148,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1385,286.41,98178,339.33,0.50000,7.1332</datapoint>
+          <datapoint>11.569,263.69,-4.4651,0.56913,4.7499,0.57632,-17.284,7.0832,18.679,2.7527,2.1818,0.090757,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.013997,158872,0,1.3546,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1779,286.42,98205,339.34,0.50000,7.1335</datapoint>
+          <datapoint>12.069,261.38,-4.7808,-0.63122,4.4677,0.70252,-18.414,7.0832,19.729,2.7744,2.3360,0.30838,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.013165,149459,0,1.1987,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.3317,286.44,98232,339.35,0.50000,7.1336</datapoint>
+          <datapoint>12.319,260.21,-4.5662,0.85985,4.8490,2.0039,-18.940,7.0832,20.221,2.7837,1.8843,1.8100,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.014289,162245,0,1.4123,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.5255,286.45,98259,339.36,0.24951,7.1338</datapoint>
+          <datapoint>12.819,257.91,-4.6674,-0.20239,4.5712,0.49264,-19.826,7.0832,21.054,2.7985,1.6598,0.44915,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.013470,152965,0,1.2553,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.6710,286.46,98273,339.36,0.50000,7.1339</datapoint>
+          <datapoint>13.319,255.60,-4.5563,0.22218,4.6685,0.31259,-20.684,7.0832,21.863,2.8117,1.7697,0.21987,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.013756,156250,0,1.3096,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7620,286.47,98300,339.37,0.50000,7.1341</datapoint>
+          <datapoint>13.819,253.29,-4.6723,-0.23196,4.5650,0.63583,-21.643,7.0832,22.772,2.8253,2.0657,0.59201,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.013451,152813,0,1.2524,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0511,286.49,98327,339.38,0.50000,7.1343</datapoint>
+          <datapoint>14.319,250.99,-4.5494,0.24568,4.6725,0.26119,-22.686,7.0832,23.767,2.8390,2.1100,0.088687,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.013767,156439,0,1.3124,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1069,286.50,98354,339.39,0.50000,7.1344</datapoint>
+          <datapoint>14.819,248.68,-4.6630,-0.22713,4.5721,0.98555,-23.861,7.0832,24.891,2.8530,2.5895,0.95902,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.013471,153108,0,1.2569,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.5650,286.52,98381,339.40,0.50000,7.1346</datapoint>
+          <datapoint>15.319,246.38,-4.5452,0.23557,4.6750,0.75819,-25.066,7.0832,26.048,2.8662,2.2292,0.72067,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.013774,156580,0,1.3144,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2553,286.53,98408,339.41,0.50000,7.1347</datapoint>
+          <datapoint>15.819,244.08,-4.6798,-0.26923,4.5543,0.66005,-26.105,7.0832,27.049,2.8766,1.9279,0.60264,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.013418,152564,0,1.2477,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9423,286.55,98435,339.42,0.50000,7.1349</datapoint>
+          <datapoint>16.319,241.77,-4.5361,0.28754,4.6802,0.31128,-27.054,7.0832,27.966,2.8855,1.8683,0.11924,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.013788,156810,0,1.3179,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8727,286.56,98462,339.43,0.50000,7.1350</datapoint>
+          <datapoint>16.819,239.46,-4.6970,-0.32188,4.5363,0.33441,-27.977,7.0832,28.860,2.8936,1.8229,0.090665,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.013364,152017,0,1.2384,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8250,286.58,98489,339.44,0.50000,7.1352</datapoint>
+          <datapoint>17.319,237.16,-4.5120,0.36997,4.6990,0.47445,-28.926,7.0832,29.780,2.9014,1.9715,0.29702,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.013843,157498,0,1.3291,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9599,286.59,98516,339.45,0.50000,7.1353</datapoint>
+          <datapoint>17.819,234.85,-4.7213,-0.41844,4.5121,0.42045,-29.906,7.0832,30.734,2.9090,1.9510,0.040993,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.013292,151260,0,1.2257,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9518,286.61,98543,339.45,0.50000,7.1355</datapoint>
+          <datapoint>18.319,232.55,-4.4825,0.47750,4.7221,0.51745,-30.907,7.0832,31.708,2.9163,2.0506,0.19938,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.013911,158331,0,1.3428,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0424,286.62,98571,339.46,0.50000,7.1357</datapoint>
+          <datapoint>18.819,230.25,-4.7438,-0.52265,4.4894,0.73546,-31.997,7.0832,32.771,2.9237,2.3094,0.51743,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.013225,150556,0,1.2140,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.3002,286.64,98598,339.47,0.50000,7.1358</datapoint>
+          <datapoint>19.319,227.95,-4.4450,0.59768,4.7524,0.86634,-33.073,7.0832,33.823,2.9306,1.9958,0.62715,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.013999,159404,0,1.3607,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0237,286.65,98625,339.48,0.50000,7.1360</datapoint>
+          <datapoint>19.819,225.64,-4.7880,-0.68596,4.4458,0.70818,-34.093,7.0832,34.821,2.9367,2.0838,0.17601,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.013096,149146,0,1.1911,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0815,286.67,98652,339.49,0.50000,7.1361</datapoint>
+          <datapoint>20.319,223.34,-4.3953,0.78542,4.7914,0.88119,-35.185,7.0832,35.891,2.9429,2.2835,0.39951,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.014113,160768,0,1.3837,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2642,286.68,98679,339.50,0.50000,7.1363</datapoint>
+          <datapoint>20.819,221.04,-4.8377,-0.88491,4.3962,0.90414,-36.303,7.0832,36.988,2.9489,2.1908,0.18547,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.012949,147535,0,1.1651,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1923,286.70,98706,339.51,0.50000,7.1364</datapoint>
+          <datapoint>21.290,218.87,-4.3622,1.0090,4.8399,1.0610,-37.299,7.0832,37.966,2.9539,2.0361,0.32823,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.014255,162456,0,1.4125,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0441,286.71,98733,339.52,0.47125,7.1366</datapoint>
+          <datapoint>21.756,216.72,-4.8328,-1.0093,4.3659,1.0725,-38.288,7.0832,38.938,2.9587,2.2053,0.36282,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.012859,146571,0,1.1497,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2158,286.73,98758,339.53,0.46621,7.1367</datapoint>
+          <datapoint>22.256,214.43,-4.3395,0.98659,4.8329,0.98972,-39.401,7.0832,40.032,2.9637,2.2446,0.078538,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.014234,162274,0,1.4090,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2404,286.74,98783,339.54,0.50000,7.1369</datapoint>
+          <datapoint>22.636,212.71,-4.7460,-1.0712,4.3561,1.3176,-40.197,7.0832,40.816,2.9672,1.9534,0.76725,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.012829,146292,0,1.1450,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8639,286.76,98810,339.54,0.37947,7.1370</datapoint>
+          <datapoint>23.136,210.41,-4.4420,0.60781,4.7469,0.64277,-41.148,7.0832,41.753,2.9711,1.8488,0.20911,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.013980,159437,0,1.3598,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8582,286.77,98830,339.55,0.50000,7.1372</datapoint>
+          <datapoint>23.636,208.11,-4.7729,-0.66171,4.4531,0.92410,-42.153,7.0832,42.744,2.9751,2.1714,0.64505,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.013114,149594,0,1.1970,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1618,286.78,98857,339.56,0.50000,7.1373</datapoint>
+          <datapoint>24.136,205.81,-4.4077,0.73035,4.7735,0.74846,-43.259,7.0832,43.835,2.9793,2.2532,0.16363,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.014057,160387,0,1.3757,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2454,286.80,98884,339.57,0.50000,7.1375</datapoint>
+          <datapoint>24.636,203.51,-4.8164,-0.81737,4.4095,0.85607,-44.354,7.0832,44.916,2.9832,2.1260,0.25448,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.012985,148184,0,1.1742,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1286,286.81,98911,339.58,0.50000,7.1377</datapoint>
+          <datapoint>25.136,201.21,-4.3528,0.92721,4.8165,0.93007,-45.407,7.0832,45.957,2.9868,2.0895,0.072851,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.014183,161891,0,1.4013,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0933,286.83,98938,339.59,0.50000,7.1378</datapoint>
+          <datapoint>25.615,199.01,-4.8514,-1.0395,4.3530,1.0425,-46.419,7.0832,46.956,2.9902,2.1270,0.078080,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.012818,146337,0,1.1448,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1282,286.84,98965,339.60,0.47963,7.1380</datapoint>
+          <datapoint>26.065,196.93,-4.3606,1.0904,4.8523,1.1108,-47.397,7.0832,47.924,2.9932,2.2224,0.21210,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.014288,163152,0,1.4228,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2213,286.86,98991,339.61,0.45011,7.1405</datapoint>
+          <datapoint>26.538,194.76,-4.8319,-0.99772,4.3641,1.0585,-48.408,7.0832,48.923,2.9963,2.0554,0.35365,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.012850,146760,0,1.1511,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0476,286.87,99015,339.61,0.47235,7.1406</datapoint>
+          <datapoint>27.003,192.62,-4.3610,1.0111,4.8346,1.0736,-49.326,7.0832,49.832,2.9990,1.8873,0.36103,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.014235,162608,0,1.4130,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8943,286.88,99041,339.62,0.46570,7.1408</datapoint>
+          <datapoint>27.480,190.43,-4.8347,-0.99323,4.3641,1.0483,-50.264,7.0832,50.761,3.0016,2.0472,0.33543,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.012850,146810,0,1.1516,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0530,286.90,99066,339.63,0.47694,7.1409</datapoint>
+          <datapoint>27.966,188.20,-4.3381,1.0230,4.8350,1.0300,-51.272,7.0832,51.759,3.0043,2.1056,0.12031,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.014236,162678,0,1.4138,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1009,286.91,99092,339.64,0.48543,7.1410</datapoint>
+          <datapoint>28.423,186.11,-4.8352,-1.0873,4.3385,1.0938,-52.222,7.0832,52.700,3.0068,2.0515,0.11854,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.012774,145999,0,1.1386,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0467,286.93,99118,339.65,0.45714,7.1412</datapoint>
+          <datapoint>28.907,183.89,-4.3370,1.0293,4.8353,1.0331,-53.226,7.0832,53.695,3.0093,2.0943,0.088572,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.014236,162744,0,1.4146,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0909,286.94,99142,339.66,0.48399,7.1413</datapoint>
+          <datapoint>29.346,181.88,-4.8118,-1.0817,4.3406,1.1391,-54.110,7.0832,54.572,3.0114,1.9375,0.35727,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.012779,146119,0,1.1402,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9169,286.95,99168,339.66,0.43893,7.1415</datapoint>
+          <datapoint>29.832,179.65,-4.3566,0.93701,4.8156,1.0291,-55.001,7.0832,55.456,3.0135,1.7307,0.42560,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.014177,162131,0,1.4036,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7471,286.97,99192,339.67,0.48584,7.1416</datapoint>
+          <datapoint>30.321,177.40,-4.8481,-1.0046,4.3575,1.0219,-55.871,7.0832,56.318,3.0155,1.8223,0.18721,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.012828,146736,0,1.1495,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8233,286.98,99218,339.68,0.48928,7.1417</datapoint>
+          <datapoint>30.772,175.32,-4.3534,1.0972,4.8486,1.1090,-56.709,7.0832,57.149,3.0173,1.8952,0.16164,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.014274,163301,0,1.4236,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8941,287.00,99244,339.69,0.45084,7.1419</datapoint>
+          <datapoint>31.261,173.08,-4.8494,-1.0146,4.3539,1.0228,-57.620,7.0832,58.054,3.0193,1.8322,0.12888,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.012817,146663,0,1.1481,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8315,287.01,99269,339.70,0.48885,7.1420</datapoint>
+          <datapoint>31.659,171.23,-4.4027,1.1211,4.8559,1.2546,-58.395,7.0832,58.823,3.0209,2.0567,0.56324,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.014294,163600,0,1.4284,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0819,287.03,99295,339.71,0.39853,7.1421</datapoint>
+          <datapoint>32.159,168.93,-4.8012,-0.79704,4.4099,0.95065,-59.358,7.0832,59.779,3.0228,1.7976,0.51813,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.012981,148597,0,1.1783,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8038,287.04,99317,339.71,0.50000,7.1423</datapoint>
+          <datapoint>32.467,167.50,-4.5022,0.97234,4.8361,1.6260,-59.973,7.0832,60.389,3.0240,2.1984,1.3032,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.014235,162986,0,1.4173,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.3775,287.05,99344,339.72,0.30750,7.1424</datapoint>
+          <datapoint>32.967,165.20,-4.6997,-0.39510,4.5030,0.43403,-61.094,7.0832,61.504,3.0262,2.2882,0.17966,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.013255,151777,0,1.2290,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2842,287.06,99361,339.73,0.50000,7.1425</datapoint>
+          <datapoint>33.467,162.91,-4.4739,0.45168,4.7004,0.48274,-62.217,7.0832,62.619,3.0282,2.2030,0.17037,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.013835,158458,0,1.3394,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2102,287.08,99387,339.74,0.50000,7.1426</datapoint>
+          <datapoint>33.967,160.61,-4.7264,-0.50511,4.4766,0.60021,-63.359,7.0832,63.754,3.0303,2.3651,0.32422,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.013176,150941,0,1.2152,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.3588,287.09,99414,339.75,0.50000,7.1428</datapoint>
+          <datapoint>34.467,158.32,-4.4265,0.59988,4.7392,0.97256,-64.446,7.0832,64.834,3.0321,1.9823,0.76552,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.013949,159823,0,1.3622,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0178,287.11,99441,339.76,0.50000,7.1429</datapoint>
+          <datapoint>34.967,156.02,-4.7775,-0.70203,4.4269,0.71266,-65.452,7.0832,65.835,3.0338,2.0436,0.12260,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.013029,149318,0,1.1889,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0419,287.12,99468,339.77,0.50000,7.1430</datapoint>
+          <datapoint>35.467,153.73,-4.3727,0.80966,4.7809,0.90177,-66.425,7.0832,66.801,3.0354,1.8451,0.39704,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.014071,161286,0,1.3869,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8651,287.14,99495,339.77,0.50000,7.1432</datapoint>
+          <datapoint>35.967,151.43,-4.8319,-0.91835,4.3731,0.92683,-67.332,7.0832,67.703,3.0368,1.7826,0.12511,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.012870,147557,0,1.1606,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7837,287.15,99522,339.78,0.50000,7.1433</datapoint>
+          <datapoint>36.441,149.26,-4.3341,1.0504,4.8321,1.0551,-68.188,7.0832,68.554,3.0381,1.8298,0.099676,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.014221,163071,0,1.4174,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8269,287.17,99549,339.79,0.47387,7.1786</datapoint>
+          <datapoint>36.907,147.12,-4.8340,-1.0718,4.3341,1.0720,-69.043,7.0832,69.405,3.0394,1.8371,0.015688,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.012755,146291,0,1.1405,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8376,287.18,99574,339.80,0.46643,7.1789</datapoint>
+          <datapoint>37.304,145.29,-4.4043,1.0832,4.8425,1.2602,-69.822,7.0832,70.181,3.0405,2.0927,0.64406,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.014251,163477,0,1.4241,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1228,287.19,99600,339.81,0.39675,7.1790</datapoint>
+          <datapoint>37.800,143.01,-4.7809,-0.75882,4.4160,1.0074,-70.779,7.0832,71.133,3.0419,1.7638,0.66264,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.012995,149102,0,1.1845,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7705,287.21,99621,339.82,0.49632,7.1791</datapoint>
+          <datapoint>38.300,140.72,-4.3646,0.83259,4.7819,0.85996,-71.688,7.0832,72.037,3.0431,1.8714,0.21523,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.014072,161482,0,1.3892,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8604,287.22,99648,339.83,0.50000,7.1793</datapoint>
+          <datapoint>38.800,138.42,-4.8343,-0.93934,4.3655,0.95637,-72.601,7.0832,72.946,3.0443,1.7816,0.17964,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.012846,147447,0,1.1580,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7831,287.24,99675,339.83,0.50000,7.1794</datapoint>
+          <datapoint>39.150,136.80,-4.4453,1.1109,4.8505,1.4282,-73.280,7.0832,73.622,3.0452,2.0958,0.89755,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.014273,163859,0,1.4300,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1786,287.25,99702,339.84,0.35010,7.1795</datapoint>
+          <datapoint>39.650,134.50,-4.7484,-0.60608,4.4454,0.60896,-74.335,7.0832,74.672,3.0466,2.1254,0.059185,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.013081,150193,0,1.2013,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1244,287.26,99721,339.85,0.50000,7.1797</datapoint>
+          <datapoint>40.150,132.21,-4.3993,0.69810,4.7500,0.74879,-75.364,7.0832,75.696,3.0479,1.9900,0.27080,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.013976,160510,0,1.3718,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0031,287.28,99748,339.86,0.50000,7.1798</datapoint>
+          <datapoint>40.650,129.91,-4.7952,-0.79183,4.3994,0.79401,-76.352,7.0832,76.680,3.0491,1.9606,0.058813,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.012945,148691,0,1.1771,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9613,287.29,99774,339.87,0.50000,7.1911</datapoint>
+          <datapoint>41.150,127.63,-4.3413,0.90794,4.7953,0.90967,-77.339,7.0832,77.663,3.0503,1.9886,0.056104,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.014109,162099,0,1.3987,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9857,287.31,99801,339.88,0.50000,7.1913</datapoint>
+          <datapoint>41.633,125.41,-4.8359,-1.0235,4.3419,1.0347,-78.282,7.0832,78.602,3.0514,1.9154,0.15148,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.012775,146799,0,1.1470,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9139,287.32,99828,339.89,0.48325,7.1914</datapoint>
+          <datapoint>42.081,123.35,-4.3447,1.0970,4.8368,1.1166,-79.119,7.0832,79.436,3.0523,1.8221,0.20835,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.014230,163558,0,1.4236,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8231,287.33,99854,339.89,0.44778,7.1915</datapoint>
+          <datapoint>42.529,121.31,-4.7895,-0.99282,4.3519,1.1159,-79.987,7.0832,80.300,3.0533,2.0504,0.50949,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.012803,147185,0,1.1527,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0730,287.35,99878,339.90,0.44806,7.1917</datapoint>
+          <datapoint>43.029,119.03,-4.3440,0.89099,4.7896,0.89200,-81.017,7.0832,81.326,3.0544,2.0716,0.042330,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.014091,162012,0,1.3965,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0694,287.36,99902,339.91,0.50000,7.1918</datapoint>
+          <datapoint>43.490,116.92,-4.8027,-0.99596,4.3492,1.0856,-81.926,7.0832,82.231,3.0553,1.8726,0.43205,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.012795,147143,0,1.1518,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8588,287.38,99929,339.92,0.46056,7.1919</datapoint>
+          <datapoint>43.990,114.64,-4.3254,0.95456,4.8028,0.95527,-82.867,7.0832,83.169,3.0563,1.8910,0.036756,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.014129,162513,0,1.4048,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8890,287.39,99954,339.93,0.50000,7.1921</datapoint>
+          <datapoint>44.427,112.64,-4.7926,-1.0686,4.3301,1.1436,-83.732,7.0832,84.031,3.0572,2.0691,0.40735,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.012738,146546,0,1.1422,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0924,287.40,99981,339.94,0.43720,7.1922</datapoint>
+          <datapoint>44.875,110.59,-4.3751,0.93117,4.8005,1.1151,-84.722,7.0832,85.017,3.0582,2.3442,0.61356,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.014121,162488,0,1.4040,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.3427,287.42,100004,339.95,0.44837,7.1923</datapoint>
+          <datapoint>45.375,108.29,-4.8109,-0.87148,4.3757,0.88421,-85.912,7.0832,86.204,3.0593,2.4189,0.14949,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.012872,148136,0,1.1668,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.4173,287.43,100028,339.95,0.50000,7.1927</datapoint>
+          <datapoint>45.787,106.40,-4.3910,1.0199,4.8198,1.2147,-86.852,7.0832,87.141,3.0602,2.1474,0.65962,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.014177,163197,0,1.4159,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1261,287.45,100055,339.96,0.41164,7.1928</datapoint>
+          <datapoint>46.287,104.10,-4.7881,-0.79420,4.3958,0.89947,-87.873,7.0832,88.158,3.0612,1.9363,0.42224,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.012930,148864,0,1.1780,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9419,287.46,100077,339.97,0.50000,7.1929</datapoint>
+          <datapoint>46.787,101.82,-4.3362,0.90388,4.7889,0.92444,-88.817,7.0832,89.099,3.0620,1.8393,0.19390,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.014086,162204,0,1.3984,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8497,287.47,100104,339.98,0.50000,7.1931</datapoint>
+          <datapoint>47.275,99.586,-4.8354,-1.0238,4.3363,1.0254,-89.707,7.0832,89.986,3.0628,1.8118,0.056516,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.012754,146899,0,1.1468,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8115,287.49,100131,339.99,0.48764,7.1932</datapoint>
+          <datapoint>47.699,97.634,-4.3577,1.1251,4.8379,1.1777,-90.508,7.0832,90.785,3.0635,1.9594,0.34775,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.014229,163919,0,1.4278,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9654,287.50,100157,340.00,0.42457,7.1933</datapoint>
+          <datapoint>48.199,95.339,-4.8234,-0.93139,4.3585,0.94572,-91.508,7.0832,91.782,3.0643,2.0414,0.16402,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.012819,147698,0,1.1590,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0399,287.52,100180,340.00,0.50000,7.1935</datapoint>
+          <datapoint>48.614,93.432,-4.3745,1.0826,4.8291,1.2059,-92.309,7.0832,92.580,3.0650,1.8212,0.53117,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.014203,163676,0,1.4232,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8064,287.53,100207,340.01,0.41462,7.1936</datapoint>
+          <datapoint>49.114,91.137,-4.8048,-0.86058,4.3746,0.86161,-93.225,7.0832,93.493,3.0658,1.8423,0.042233,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.012866,148291,0,1.1681,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8418,287.54,100229,340.02,0.50000,7.1938</datapoint>
+          <datapoint>49.613,88.864,-4.3105,0.99128,4.8053,1.0026,-94.162,7.0832,94.428,3.0665,1.9172,0.15021,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.014132,162920,0,1.4097,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9091,287.56,100256,340.03,0.49871,7.1939</datapoint>
+          <datapoint>50.044,86.901,-4.7900,-1.1112,4.3135,1.1587,-94.959,7.0832,95.223,3.0671,1.7755,0.32849,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.012685,146273,0,1.1362,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7546,287.57,100283,340.04,0.43152,7.1940</datapoint>
+          <datapoint>50.512,84.760,-4.3498,0.93963,4.7953,1.0674,-95.846,7.0832,96.107,3.0678,2.0126,0.50630,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.014102,162633,0,1.4044,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0009,287.59,100306,340.05,0.46845,7.1942</datapoint>
+          <datapoint>51.012,82.466,-4.8265,-0.95334,4.3503,0.96394,-96.870,7.0832,97.129,3.0686,2.0839,0.14259,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.012793,147568,0,1.1561,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0826,287.60,100331,340.06,0.50000,7.1943</datapoint>
+          <datapoint>51.441,80.499,-4.3537,1.1033,4.8294,1.1669,-97.728,7.0832,97.985,3.0692,1.9211,0.38006,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.014201,163845,0,1.4251,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9160,287.61,100358,340.06,0.42848,7.1944</datapoint>
+          <datapoint>51.941,78.206,-4.8186,-0.92984,4.3562,0.97694,-98.726,7.0832,98.980,3.0700,2.0709,0.29967,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.012810,147814,0,1.1597,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0679,287.63,100381,340.07,0.50000,7.1946</datapoint>
+          <datapoint>52.341,76.365,-4.3851,1.0835,4.8265,1.2497,-99.605,7.0832,99.856,3.0706,2.3201,0.62275,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.014192,163801,0,1.4239,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.3462,287.64,100408,340.08,0.40010,7.1947</datapoint>
+          <datapoint>52.841,74.073,-4.7833,-0.79626,4.3883,0.86623,-100.72,7.0832,100.97,3.0714,2.1496,0.34108,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.012903,148950,0,1.1773,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1543,287.65,100429,340.09,0.50000,7.1948</datapoint>
+          <datapoint>53.341,71.795,-4.3275,0.91155,4.7836,0.92113,-101.78,7.0832,102.03,3.0721,2.0833,0.13252,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.014065,162397,0,1.3993,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0905,287.67,100456,340.10,0.50000,7.1950</datapoint>
+          <datapoint>53.822,69.594,-4.8246,-1.0337,4.3278,1.0396,-102.80,7.0832,103.04,3.0728,2.1366,0.11086,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.012725,146949,0,1.1456,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1379,287.68,100483,340.11,0.48096,7.1951</datapoint>
+          <datapoint>54.261,67.585,-4.3399,1.1053,4.8262,1.1402,-103.71,7.0832,103.95,3.0734,2.0139,0.27984,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.014190,163899,0,1.4249,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0130,287.70,100509,340.11,0.43853,7.1952</datapoint>
+          <datapoint>54.746,65.364,-4.8125,-0.97388,4.3431,1.0305,-104.64,7.0832,104.88,3.0740,1.8505,0.33680,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.012769,147514,0,1.1541,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8486,287.71,100532,340.12,0.48521,7.1954</datapoint>
+          <datapoint>55.215,63.222,-4.3187,1.0523,4.8130,1.0656,-105.53,7.0832,105.77,3.0746,1.9290,0.16743,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.014151,163504,0,1.4177,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9246,287.73,100558,340.13,0.46923,7.1955</datapoint>
+          <datapoint>55.664,61.176,-4.7929,-1.0559,4.3222,1.1132,-106.36,7.0832,106.60,3.0751,1.7707,0.35259,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.012707,146853,0,1.1435,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7552,287.74,100584,340.14,0.44914,7.1956</datapoint>
+          <datapoint>56.164,58.900,-4.3090,0.96784,4.7932,0.97422,-107.26,7.0832,107.49,3.0757,1.8263,0.11134,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.014092,162882,0,1.4066,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8202,287.75,100608,340.15,0.50000,7.1958</datapoint>
+          <datapoint>56.601,56.913,-4.7863,-1.0919,4.3123,1.1440,-108.09,7.0832,108.32,3.0762,1.9755,0.34125,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.012677,146566,0,1.1388,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9949,287.77,100634,340.16,0.43706,7.1959</datapoint>
+          <datapoint>57.071,54.771,-4.3393,0.95208,4.7910,1.0650,-109.07,7.0832,109.30,3.0767,2.1995,0.47718,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.014084,162859,0,1.4058,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1876,287.78,100658,340.16,0.46950,7.1960</datapoint>
+          <datapoint>57.571,52.480,-4.8249,-0.97120,4.3398,0.98183,-110.15,7.0832,110.38,3.0774,2.1275,0.14413,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.012758,147548,0,1.1538,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1288,287.79,100683,340.17,0.50000,7.1962</datapoint>
+          <datapoint>58.016,50.444,-4.3262,1.1206,4.8250,1.1236,-111.11,7.0832,111.33,3.0779,2.1639,0.081893,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.014184,164071,0,1.4265,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1636,287.81,100710,340.18,0.44500,7.1963</datapoint>
+          <datapoint>58.503,48.215,-4.8237,-1.0214,4.3265,1.0265,-112.15,7.0832,112.37,3.0785,2.1143,0.10181,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.012718,147142,0,1.1472,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1138,287.82,100733,340.19,0.48710,7.1964</datapoint>
+          <datapoint>58.909,46.350,-4.3648,1.1304,4.8285,1.2316,-112.97,7.0832,113.19,3.0790,1.9158,0.48890,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.014193,164244,0,1.4292,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8989,287.84,100760,340.20,0.40597,7.1966</datapoint>
+          <datapoint>59.409,44.060,-4.7951,-0.86064,4.3649,0.86291,-113.93,7.0832,114.15,3.0795,1.9472,0.062654,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.012830,148495,0,1.1681,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9464,287.85,100781,340.21,0.50000,7.1967</datapoint>
+          <datapoint>59.909,41.787,-4.2979,0.99450,4.7952,0.99516,-114.91,7.0832,115.13,3.0800,1.9652,0.036083,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.014094,163160,0,1.4100,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9632,287.86,100808,340.22,0.50000,7.1968</datapoint>
+          <datapoint>60.320,39.925,-4.7570,-1.1164,4.3044,1.2158,-115.68,7.0832,115.90,3.0804,1.7672,0.48138,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.012652,146489,0,1.1364,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7274,287.88,100835,340.22,0.41126,7.1969</datapoint>
+          <datapoint>60.820,37.650,-4.3406,0.83278,4.7594,0.89917,-116.52,7.0832,116.73,3.0809,1.5977,0.33910,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.013989,161995,0,1.3896,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.6158,287.89,100857,340.23,0.50000,7.1971</datapoint>
+          <datapoint>61.320,35.362,-4.8146,-0.94786,4.3429,0.99127,-117.35,7.0832,117.57,3.0813,1.7428,0.29016,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.012764,147845,0,1.1573,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7397,287.91,100883,340.24,0.50000,7.1972</datapoint>
+          <datapoint>61.754,33.376,-4.3387,1.0968,4.8171,1.1525,-118.14,7.0832,118.36,3.0817,1.8962,0.35371,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.014157,164015,0,1.4241,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8988,287.92,100910,340.25,0.43386,7.1973</datapoint>
+          <datapoint>62.254,31.087,-4.8170,-0.95659,4.3389,0.96011,-119.08,7.0832,119.29,3.0822,1.8552,0.082123,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.012752,147755,0,1.1556,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8560,287.93,100934,340.26,0.50000,7.1975</datapoint>
+          <datapoint>62.700,29.046,-4.3223,1.1077,4.8175,1.1197,-119.93,7.0832,120.14,3.0826,1.9281,0.16330,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.014158,164083,0,1.4249,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9272,287.95,100960,340.27,0.44656,7.1976</datapoint>
+          <datapoint>63.174,26.887,-4.8028,-1.0152,4.3247,1.0565,-120.87,7.0832,121.08,3.0831,2.0664,0.29221,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.012709,147320,0,1.1485,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0716,287.96,100984,340.27,0.47328,7.1978</datapoint>
+          <datapoint>63.647,24.731,-4.3071,1.0475,4.8032,1.0565,-121.83,7.0832,122.04,3.0835,2.0013,0.13752,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.014115,163647,0,1.4170,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0056,287.98,101010,340.28,0.47327,7.1979</datapoint>
+          <datapoint>64.100,22.671,-4.7937,-1.0748,4.3089,1.1045,-122.77,7.0832,122.97,3.0840,2.1164,0.25417,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.012662,146830,0,1.1406,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1265,287.99,101035,340.29,0.45270,7.1980</datapoint>
+          <datapoint>64.442,21.094,-4.4325,1.0562,4.8143,1.4621,-123.43,7.0832,123.63,3.0843,1.7706,1.0110,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.014147,164079,0,1.4242,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.6706,288.00,101059,340.30,0.34198,7.1981</datapoint>
+          <datapoint>64.942,18.812,-4.6962,-0.52750,4.4476,0.93267,-124.41,7.0832,124.61,3.0847,2.1552,0.76917,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.013070,151599,0,1.2157,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1376,288.01,101078,340.31,0.50000,7.1983</datapoint>
+          <datapoint>65.442,16.537,-4.4022,0.58801,4.7009,0.75063,-125.55,7.0832,125.75,3.0852,2.3885,0.46657,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.013813,160261,0,1.3584,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.3658,288.03,101104,340.31,0.50000,7.1984</datapoint>
+          <datapoint>65.942,14.254,-4.7292,-0.65392,4.4154,0.96467,-126.65,7.0832,126.85,3.0857,2.0339,0.70921,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.012974,150551,0,1.1986,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0478,288.04,101131,340.32,0.50000,7.1985</datapoint>
+          <datapoint>66.442,11.981,-4.3647,0.72895,4.7294,0.73612,-127.66,7.0832,127.85,3.0862,1.9826,0.10252,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.013896,161286,0,1.3754,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9879,288.06,101158,340.33,0.50000,7.1987</datapoint>
+          <datapoint>66.939,9.7099,-4.7690,-0.81308,4.3741,1.0056,-128.72,7.0832,128.91,3.0866,2.2768,0.59164,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.012852,149196,0,1.1768,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2694,288.07,101184,340.34,0.49724,7.1988</datapoint>
+          <datapoint>67.439,7.4401,-4.3102,0.91753,4.7717,0.98738,-129.81,7.0832,130.00,3.0871,2.0944,0.36475,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.014020,162786,0,1.4008,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1147,288.09,101211,340.35,0.50000,7.1989</datapoint>
+          <datapoint>67.878,5.4478,-4.7664,-1.0392,4.3163,1.1390,-130.68,7.0832,130.88,3.0874,1.8898,0.46613,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.012682,147274,0,1.1464,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8655,288.10,101238,340.36,0.43898,7.1991</datapoint>
+          <datapoint>68.292,3.5547,-4.3809,0.93152,4.7786,1.2080,-131.53,7.0832,131.72,3.0878,2.2081,0.76910,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.014040,163073,0,1.4054,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2309,288.11,101261,340.37,0.41391,7.1992</datapoint>
+          <datapoint>68.792,1.2713,-4.7530,-0.74425,4.3878,0.90305,-132.57,7.0832,132.76,3.0882,1.9524,0.51146,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.012891,149759,0,1.1851,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9612,288.13,101283,340.37,0.50000,7.1993</datapoint>
+          <datapoint>69.292,-0.99923,-4.3290,0.84795,4.7530,0.84882,-133.55,7.0832,133.74,3.0886,1.9717,0.038577,NaN,NaN,NaN,NaN,0.13042,NaN,NaN,NaN,0.013964,162251,0,1.3909,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9696,288.14,101310,340.38,0.50000,7.1995</datapoint>
+        </databranch>
+      </flightdata>
+    </simulation>
+  </simulations>
+</openrocket>
diff --git a/datafiles/examples/Three-stage rocket.ork b/datafiles/examples/Three-stage rocket.ork
new file mode 100644 (file)
index 0000000..f37ef6b
--- /dev/null
@@ -0,0 +1,1319 @@
+<?xml version='1.0' encoding='utf-8'?>
+<openrocket version="1.0" creator="OpenRocket 0.9.3pre">
+  <rocket>
+    <name>Three-staged rocket</name>
+    <comment>This example demonstrates a staged rocket design.  Most operations, such as motor ignition, work correctly with the &quot;Automatic&quot; ignition setting, whereby the lowest stage ignites on launch and later stages at the deployment charge of the previous stage.
+
+There can be any number of stages.  Copy-pasting lower stages eases their creation.
+
+The different stages can be viewed by clicking the &quot;Stage&quot; buttons above the figure.  Make sure that all stage combinations are stable with the selected motors!
+
+This design may be freely used as a basis of further designs and rockets.</comment>
+    <designer>Sampo Niskanen</designer>
+    <motorconfiguration configid="da326836-0959-4c94-bcd5-49dee07235a4"/>
+    <motorconfiguration configid="05896b5a-71a7-48ac-b7ae-eadeb267975b"/>
+    <motorconfiguration configid="b13e8ca2-f54d-4ca8-9b23-06c6c9eb237a" default="true"/>
+    <referencetype>maximum</referencetype>
+
+    <subcomponents>
+      <stage>
+        <name>Sustainer</name>
+
+        <subcomponents>
+          <nosecone>
+            <name>Nose cone</name>
+            <finish>normal</finish>
+            <material type="bulk" density="1050.0">Polystyrene</material>
+            <length>0.1</length>
+            <thickness>0.0020</thickness>
+            <shape>ogive</shape>
+            <shapeparameter>1.0</shapeparameter>
+            <aftradius>0.0125</aftradius>
+            <aftshoulderradius>0.0115</aftshoulderradius>
+            <aftshoulderlength>0.02</aftshoulderlength>
+            <aftshoulderthickness>0.0020</aftshoulderthickness>
+            <aftshouldercapped>true</aftshouldercapped>
+          </nosecone>
+
+          <bodytube>
+            <name>Body tube</name>
+            <finish>normal</finish>
+            <material type="bulk" density="680.0">Cardboard</material>
+            <length>0.3</length>
+            <thickness>0.0010</thickness>
+            <radius>auto</radius>
+
+            <subcomponents>
+              <trapezoidfinset>
+                <name>Trapezoidal fin set</name>
+                <position type="bottom">0.0</position>
+                <finish>normal</finish>
+                <material type="bulk" density="680.0">Cardboard</material>
+                <fincount>3</fincount>
+                <rotation>0.0</rotation>
+                <thickness>0.0020</thickness>
+                <crosssection>square</crosssection>
+                <cant>0.0</cant>
+                <rootchord>0.05</rootchord>
+                <tipchord>0.05</tipchord>
+                <sweeplength>0.025</sweeplength>
+                <height>0.03</height>
+              </trapezoidfinset>
+
+              <innertube>
+                <name>Inner Tube</name>
+                <position type="bottom">0.0</position>
+                <material type="bulk" density="680.0">Cardboard</material>
+                <length>0.075</length>
+                <radialposition>0.0</radialposition>
+                <radialdirection>0.0</radialdirection>
+                <outerradius>0.0095</outerradius>
+                <thickness>5.000000000000004E-4</thickness>
+                <clusterconfiguration>single</clusterconfiguration>
+                <clusterscale>1.0</clusterscale>
+                <clusterrotation>0.0</clusterrotation>
+                <motormount>
+                  <motor configid="da326836-0959-4c94-bcd5-49dee07235a4">
+                    <manufacturer>Estes</manufacturer>
+                    <designation>A8</designation>
+                    <diameter>0.018</diameter>
+                    <length>0.07</length>
+                    <delay>3.0</delay>
+                  </motor>
+                  <motor configid="05896b5a-71a7-48ac-b7ae-eadeb267975b">
+                    <manufacturer>Estes</manufacturer>
+                    <designation>C6</designation>
+                    <diameter>0.018</diameter>
+                    <length>0.07</length>
+                    <delay>5.0</delay>
+                  </motor>
+                  <motor configid="b13e8ca2-f54d-4ca8-9b23-06c6c9eb237a">
+                    <manufacturer>Estes</manufacturer>
+                    <designation>C6</designation>
+                    <diameter>0.018</diameter>
+                    <length>0.07</length>
+                    <delay>5.0</delay>
+                  </motor>
+                  <ignitionevent>automatic</ignitionevent>
+                  <ignitiondelay>0.0</ignitiondelay>
+                  <overhang>0.0030</overhang>
+                </motormount>
+
+                <subcomponents>
+                  <engineblock>
+                    <name>Engine block</name>
+                    <position type="top">0.0020</position>
+                    <material type="bulk" density="680.0">Cardboard</material>
+                    <length>0.0050</length>
+                    <radialposition>0.0</radialposition>
+                    <radialdirection>0.0</radialdirection>
+                    <outerradius>auto</outerradius>
+                    <thickness>0.0030</thickness>
+                  </engineblock>
+                </subcomponents>
+              </innertube>
+
+              <centeringring>
+                <name>Centering ring</name>
+                <position type="bottom">0.0</position>
+                <comment>The centering ring automatically takes the outer diameter of the body tube and the inner diameter of the inner tube.</comment>
+                <material type="bulk" density="680.0">Cardboard</material>
+                <length>0.0020</length>
+                <radialposition>0.0</radialposition>
+                <radialdirection>0.0</radialdirection>
+                <outerradius>auto</outerradius>
+                <innerradius>auto</innerradius>
+              </centeringring>
+
+              <centeringring>
+                <name>Centering ring</name>
+                <position type="bottom">-0.045</position>
+                <comment>The centering ring automatically takes the outer diameter of the body tube and the inner diameter of the inner tube.</comment>
+                <material type="bulk" density="680.0">Cardboard</material>
+                <length>0.0020</length>
+                <radialposition>0.0</radialposition>
+                <radialdirection>0.0</radialdirection>
+                <outerradius>auto</outerradius>
+                <innerradius>auto</innerradius>
+              </centeringring>
+
+              <shockcord>
+                <name>Shock cord</name>
+                <position type="top">0.02</position>
+                <comment>The shock cord does not need to be attached to anything in particular, as it functions only as a mass component.</comment>
+                <packedlength>0.052000000000000005</packedlength>
+                <packedradius>0.0060</packedradius>
+                <radialposition>0.0</radialposition>
+                <radialdirection>0.0</radialdirection>
+                <cordlength>0.4</cordlength>
+                <material type="line" density="0.0018">Elastic cord (round 2mm, 1/16 in)</material>
+              </shockcord>
+
+              <parachute>
+                <name>Parachute</name>
+                <position type="top">0.032</position>
+                <packedlength>0.042</packedlength>
+                <packedradius>0.009000000000000001</packedradius>
+                <radialposition>0.0</radialposition>
+                <radialdirection>0.0</radialdirection>
+                <cd>auto</cd>
+                <deployevent>ejection</deployevent>
+                <deployaltitude>200.0</deployaltitude>
+                <deploydelay>0.0</deploydelay>
+                <material type="surface" density="0.067">Ripstop nylon</material>
+                <diameter>0.3</diameter>
+                <linecount>6</linecount>
+                <linelength>0.3</linelength>
+                <linematerial type="line" density="0.0018">Elastic cord (round 2mm, 1/16 in)</linematerial>
+              </parachute>
+
+              <masscomponent>
+                <name>Wadding</name>
+                <position type="top">0.08</position>
+                <packedlength>0.03</packedlength>
+                <packedradius>0.0115</packedradius>
+                <radialposition>0.0</radialposition>
+                <radialdirection>0.0</radialdirection>
+                <mass>0.0020</mass>
+              </masscomponent>
+
+              <launchlug>
+                <name>Launch lug</name>
+                <position type="middle">0.0</position>
+                <finish>normal</finish>
+                <material type="bulk" density="680.0">Cardboard</material>
+                <radius>0.0035</radius>
+                <length>0.035</length>
+                <thickness>0.0010</thickness>
+                <radialdirection>19.0</radialdirection>
+              </launchlug>
+            </subcomponents>
+          </bodytube>
+        </subcomponents>
+      </stage>
+
+      <stage>
+        <name>Booster stage</name>
+
+        <subcomponents>
+          <bodytube>
+            <name>Body tube</name>
+            <finish>normal</finish>
+            <material type="bulk" density="680.0">Cardboard</material>
+            <length>0.08</length>
+            <thickness>0.0010</thickness>
+            <radius>auto</radius>
+
+            <subcomponents>
+              <tubecoupler>
+                <name>Tube coupler</name>
+                <position type="top">-0.02</position>
+                <material type="bulk" density="680.0">Cardboard</material>
+                <length>0.04</length>
+                <radialposition>0.0</radialposition>
+                <radialdirection>0.0</radialdirection>
+                <outerradius>auto</outerradius>
+                <thickness>0.0</thickness>
+              </tubecoupler>
+
+              <innertube>
+                <name>Inner Tube</name>
+                <position type="bottom">0.0</position>
+                <material type="bulk" density="680.0">Cardboard</material>
+                <length>0.07</length>
+                <radialposition>0.0</radialposition>
+                <radialdirection>0.0</radialdirection>
+                <outerradius>0.0095</outerradius>
+                <thickness>5.000000000000004E-4</thickness>
+                <clusterconfiguration>single</clusterconfiguration>
+                <clusterscale>1.0</clusterscale>
+                <clusterrotation>0.0</clusterrotation>
+                <motormount>
+                  <motor configid="da326836-0959-4c94-bcd5-49dee07235a4">
+                    <manufacturer>Estes</manufacturer>
+                    <designation>B6-0</designation>
+                    <diameter>0.018</diameter>
+                    <length>0.07</length>
+                    <delay>0.0</delay>
+                  </motor>
+                  <motor configid="05896b5a-71a7-48ac-b7ae-eadeb267975b">
+                    <manufacturer>Estes</manufacturer>
+                    <designation>B6-0</designation>
+                    <diameter>0.018</diameter>
+                    <length>0.07</length>
+                    <delay>0.0</delay>
+                  </motor>
+                  <motor configid="b13e8ca2-f54d-4ca8-9b23-06c6c9eb237a">
+                    <manufacturer>Estes</manufacturer>
+                    <designation>C6</designation>
+                    <diameter>0.018</diameter>
+                    <length>0.07</length>
+                    <delay>0.0</delay>
+                  </motor>
+                  <ignitionevent>automatic</ignitionevent>
+                  <ignitiondelay>0.0</ignitiondelay>
+                  <overhang>0.0</overhang>
+                </motormount>
+              </innertube>
+
+              <centeringring>
+                <name>Centering ring</name>
+                <position type="bottom">0.0</position>
+                <material type="bulk" density="680.0">Cardboard</material>
+                <length>0.0020</length>
+                <radialposition>0.0</radialposition>
+                <radialdirection>0.0</radialdirection>
+                <outerradius>auto</outerradius>
+                <innerradius>auto</innerradius>
+              </centeringring>
+
+              <centeringring>
+                <name>Centering ring</name>
+                <position type="bottom">-0.055999999999999994</position>
+                <material type="bulk" density="680.0">Cardboard</material>
+                <length>0.0020</length>
+                <radialposition>0.0</radialposition>
+                <radialdirection>0.0</radialdirection>
+                <outerradius>auto</outerradius>
+                <innerradius>auto</innerradius>
+              </centeringring>
+
+              <freeformfinset>
+                <name>Freeform fin set</name>
+                <position type="bottom">0.0</position>
+                <finish>normal</finish>
+                <material type="bulk" density="680.0">Cardboard</material>
+                <fincount>3</fincount>
+                <rotation>0.0</rotation>
+                <thickness>0.0020</thickness>
+                <crosssection>square</crosssection>
+                <cant>0.0</cant>
+                <finpoints>
+                  <point x="0.0" y="0.0"/>
+                  <point x="0.025" y="0.03"/>
+                  <point x="0.10500949758429275" y="0.04"/>
+                  <point x="0.08" y="0.0"/>
+                </finpoints>
+              </freeformfinset>
+            </subcomponents>
+          </bodytube>
+        </subcomponents>
+      </stage>
+
+      <stage>
+        <name>Booster stage</name>
+
+        <subcomponents>
+          <bodytube>
+            <name>Body tube</name>
+            <finish>normal</finish>
+            <material type="bulk" density="680.0">Cardboard</material>
+            <length>0.08</length>
+            <thickness>0.0010</thickness>
+            <radius>auto</radius>
+
+            <subcomponents>
+              <tubecoupler>
+                <name>Tube coupler</name>
+                <position type="top">-0.02</position>
+                <material type="bulk" density="680.0">Cardboard</material>
+                <length>0.04</length>
+                <radialposition>0.0</radialposition>
+                <radialdirection>0.0</radialdirection>
+                <outerradius>auto</outerradius>
+                <thickness>0.0</thickness>
+              </tubecoupler>
+
+              <innertube>
+                <name>Inner Tube</name>
+                <position type="bottom">0.0</position>
+                <material type="bulk" density="680.0">Cardboard</material>
+                <length>0.07</length>
+                <radialposition>0.0</radialposition>
+                <radialdirection>0.0</radialdirection>
+                <outerradius>0.0095</outerradius>
+                <thickness>5.000000000000004E-4</thickness>
+                <clusterconfiguration>single</clusterconfiguration>
+                <clusterscale>1.0</clusterscale>
+                <clusterrotation>0.0</clusterrotation>
+                <motormount>
+                  <motor configid="da326836-0959-4c94-bcd5-49dee07235a4">
+                    <manufacturer>Estes</manufacturer>
+                    <designation>B6-0</designation>
+                    <diameter>0.018</diameter>
+                    <length>0.07</length>
+                    <delay>0.0</delay>
+                  </motor>
+                  <motor configid="05896b5a-71a7-48ac-b7ae-eadeb267975b">
+                    <manufacturer>Estes</manufacturer>
+                    <designation>B6-0</designation>
+                    <diameter>0.018</diameter>
+                    <length>0.07</length>
+                    <delay>0.0</delay>
+                  </motor>
+                  <motor configid="b13e8ca2-f54d-4ca8-9b23-06c6c9eb237a">
+                    <manufacturer>Estes</manufacturer>
+                    <designation>C6</designation>
+                    <diameter>0.018</diameter>
+                    <length>0.07</length>
+                    <delay>0.0</delay>
+                  </motor>
+                  <ignitionevent>automatic</ignitionevent>
+                  <ignitiondelay>0.0</ignitiondelay>
+                  <overhang>0.0</overhang>
+                </motormount>
+              </innertube>
+
+              <centeringring>
+                <name>Centering ring</name>
+                <position type="bottom">0.0</position>
+                <material type="bulk" density="680.0">Cardboard</material>
+                <length>0.0020</length>
+                <radialposition>0.0</radialposition>
+                <radialdirection>0.0</radialdirection>
+                <outerradius>auto</outerradius>
+                <innerradius>auto</innerradius>
+              </centeringring>
+
+              <centeringring>
+                <name>Centering ring</name>
+                <position type="bottom">-0.055999999999999994</position>
+                <material type="bulk" density="680.0">Cardboard</material>
+                <length>0.0020</length>
+                <radialposition>0.0</radialposition>
+                <radialdirection>0.0</radialdirection>
+                <outerradius>auto</outerradius>
+                <innerradius>auto</innerradius>
+              </centeringring>
+
+              <trapezoidfinset>
+                <name>Trapezoidal fin set</name>
+                <position type="bottom">0.0</position>
+                <finish>normal</finish>
+                <material type="bulk" density="680.0">Cardboard</material>
+                <fincount>3</fincount>
+                <rotation>0.0</rotation>
+                <thickness>0.0020</thickness>
+                <crosssection>square</crosssection>
+                <cant>0.0</cant>
+                <rootchord>0.08</rootchord>
+                <tipchord>0.03</tipchord>
+                <sweeplength>0.025</sweeplength>
+                <height>0.04</height>
+              </trapezoidfinset>
+
+              <launchlug>
+                <name>Launch lug</name>
+                <position type="middle">0.0</position>
+                <finish>normal</finish>
+                <material type="bulk" density="680.0">Cardboard</material>
+                <radius>0.0035</radius>
+                <length>0.035</length>
+                <thickness>0.0010</thickness>
+                <radialdirection>19.0</radialdirection>
+              </launchlug>
+            </subcomponents>
+          </bodytube>
+        </subcomponents>
+      </stage>
+    </subcomponents>
+  </rocket>
+
+  <simulations>
+    <simulation status="uptodate">
+      <name>Simulation 1</name>
+      <simulator>RK4Simulator</simulator>
+      <calculator>BarrowmanCalculator</calculator>
+      <conditions>
+        <configid>da326836-0959-4c94-bcd5-49dee07235a4</configid>
+        <launchrodlength>1.0</launchrodlength>
+        <launchrodangle>0.0</launchrodangle>
+        <launchroddirection>0.0</launchroddirection>
+        <windaverage>2.0</windaverage>
+        <windturbulence>0.1</windturbulence>
+        <launchaltitude>0.0</launchaltitude>
+        <launchlatitude>45.0</launchlatitude>
+        <atmosphere model="isa"/>
+        <timestep>0.05</timestep>
+      </conditions>
+      <flightdata maxaltitude="213.32" maxvelocity="70.576" maxacceleration="210.28" maxmach="0.20755" timetoapogee="5.9889" flighttime="56.093" groundhitvelocity="4.0414">
+        <databranch name="Main" types="Time,Altitude,Vertical velocity,Vertical acceleration,Total velocity,Total acceleration,Position upwind,Position parallel to wind,Lateral distance,Lateral direction,Lateral velocity,Lateral acceleration,Angle of attack,Roll rate,Pitch rate,Yaw rate,Mass,CP location,CG location,Stability margin calibers,Mach number,Reynolds number,Thrust,Drag force,Drag coefficient,Axial drag coefficient,Friction drag coefficient,Pressure drag coefficient,Base drag coefficient,Normal force coefficient,Pitch moment coefficient,Yaw moment coefficient,Side force coefficient,Roll moment coefficient,Roll forcing coefficient,Roll damping coefficient,Pitch damping coefficient,Reference length,Reference area,Vertical orientation (zenith),Lateral orientation (azimuth),Wind velocity,Air temperature,Air pressure,Speed of sound,Simulation time step,Computation time">
+          <event time="0" type="launch"/>
+          <event time="0" type="ignition"/>
+          <event time="0.10000" type="liftoff"/>
+          <event time="0.25000" type="launchrod"/>
+          <event time="0.85930" type="burnout"/>
+          <event time="0.85930" type="ejectioncharge"/>
+          <event time="0.85930" type="ignition"/>
+          <event time="0.85930" type="stageseparation"/>
+          <event time="1.7379" type="burnout"/>
+          <event time="1.7379" type="ejectioncharge"/>
+          <event time="1.7379" type="ignition"/>
+          <event time="1.7379" type="stageseparation"/>
+          <event time="2.5051" type="burnout"/>
+          <event time="5.5010" type="ejectioncharge"/>
+          <event time="5.5010" type="recoverydevicedeployment"/>
+          <event time="6.0385" type="apogee"/>
+          <event time="56.093" type="groundhit"/>
+          <event time="56.093" type="simulationend"/>
+          <datapoint>0,0,0,-2.3441,1.9161,2.3441,0,0,0,0,0,0,1.5708,0,0,0,0.13109,NaN,NaN,NaN,0.0056291,72539,0.97959,0,2.4011,0,1.3515,0.92965,0.12000,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,0.025000,4.9087e-4,1.5708,0,1.9161,288.15,101325,340.39,0.050000,0.010559</datapoint>
+          <datapoint>0.15000,0.23943,5.3624,75.748,5.7142,75.748,0,0,0,0,0,0,0.35272,0,0,0,0.13051,NaN,NaN,NaN,0.016787,216321,11.194,0.026228,2.0779,2.6718,1.0281,0.92974,0.12004,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,0.025000,4.9087e-4,1.5708,0,1.9740,288.15,101322,340.39,0.050000,0.033279</datapoint>
+          <datapoint>0.31249,1.8465,13.036,31.543,13.182,31.604,-0.0046951,0,0.0046951,3.1416,0.14555,1.9594,0.13828,0,0.34195,0,0.12859,0.41597,0.35323,2.5097,0.038727,498972,5.4295,0.11381,1.9201,2.1788,0.86972,0.93019,0.12019,5.8990,14.782,0,0,0,0,0,0.022344,0.025000,4.9087e-4,1.5602,0,2.1004,288.14,101303,340.38,0.0062835,0.11510</datapoint>
+          <datapoint>0.46612,4.1853,17.284,25.176,17.405,25.481,-0.031715,0,0.031715,3.1416,0.052007,3.9313,0.0034484,0,0.87828,0,0.12790,0.42813,0.35230,3.0332,0.051135,658710,4.6787,0.17488,1.9206,1.9208,0.86962,0.93060,0.12034,0.13353,0.32070,0,0,0,0,0,0.084313,0.025000,4.9087e-4,1.4562,0,2.1014,288.12,101276,340.37,0.027713,0.46701</datapoint>
+          <datapoint>0.62528,7.2298,20.881,22.098,21.132,24.128,0.041505,0,0.041505,0,1.1379,9.6858,0.056621,0,-0.093148,0,0.12738,0.42665,0.35160,3.0022,0.062088,799589,4.4988,0.26514,1.9211,1.9760,0.86951,0.93105,0.12050,2.6474,7.9484,0,0,0,0,0,-6.4200e-4,0.025000,4.9087e-4,1.3599,0,2.1103,288.10,101240,340.36,0.0044747,0.56862</datapoint>
+          <datapoint>0.79289,11.038,24.446,16.859,24.836,17.092,0.34977,0,0.34977,0,2.3450,2.8154,0.022883,0,-0.44405,0,0.12591,0.42622,0.34958,3.0656,0.072973,939448,3.7312,0.35782,1.9217,1.9314,0.86939,0.93159,0.12069,0.89945,2.7679,0,0,0,0,0,-0.010505,0.025000,4.9087e-4,1.4163,0,2.0376,288.08,101196,340.35,0.0093812,0.65307</datapoint>
+          <datapoint>0.95050,14.911,25.371,40.705,25.760,41.214,0.71696,0,0.71696,0,2.4244,6.4621,0.023781,0,0.36821,0,0.10011,0.37951,0.30510,2.9764,0.075692,878473,5.3574,0.25984,1.2971,1.3042,0.66965,0.50670,0.12074,0.58891,1.7478,0,0,0,0,0,0.0050303,0.025000,4.9087e-4,1.4206,0,2.0356,288.05,101150,340.33,0.0083419,0.73089</datapoint>
+          <datapoint>1.1126,20.031,37.820,48.498,38.510,50.320,1.3138,0,1.3138,0,5.1560,13.418,0.011592,0,0.069615,0,0.098189,0.38545,0.30236,3.3234,0.11316,1312769,6.4526,0.57893,1.2990,1.3008,0.66918,0.50819,0.12166,0.32915,1.0938,0,0,0,0,0,8.0661e-5,0.025000,4.9087e-4,1.3696,0,2.1031,288.02,101090,340.31,0.0060811,0.78187</datapoint>
+          <datapoint>1.2713,26.525,43.647,31.450,44.492,32.118,2.2535,0,2.2535,0,6.5008,6.5134,0.0084618,0,0.18159,0,0.097284,0.38149,0.30104,3.2181,0.13075,1515938,4.8350,0.77250,1.3002,1.3012,0.66889,0.50910,0.12222,0.20657,0.66434,0,0,0,0,0,4.1187e-4,0.025000,4.9087e-4,1.3841,0,2.1283,287.98,101014,340.28,0.0073730,0.83422</datapoint>
+          <datapoint>1.4250,33.580,47.947,25.139,48.954,26.137,3.3484,0,3.3484,0,7.7811,7.1540,2.1904e-4,0,-0.16417,0,0.096735,0.38257,0.30022,3.2940,0.14387,1667061,4.3862,0.93462,1.3012,1.3012,0.66865,0.50987,0.12269,0.0053042,0.017750,0,0,0,0,0,-2.7840e-4,0.025000,4.9087e-4,1.3678,0,2.0977,287.93,100931,340.26,0.022862,0.87022</datapoint>
+          <datapoint>1.5861,41.637,52.016,23.075,53.142,24.301,4.6855,0,4.6855,0,8.8606,7.6229,0.0025688,0,-0.079278,0,0.095905,0.38652,0.29897,3.5022,0.15620,1808591,4.3390,1.1015,1.3022,1.3023,0.66840,0.51065,0.12317,0.072453,0.25380,0,0,0,0,0,-5.5210e-5,0.025000,4.9087e-4,1.3620,0,2.0221,287.88,100837,340.22,0.015407,0.93465</datapoint>
+          <datapoint>1.7379,49.669,52.223,-16.454,53.425,16.516,6.0859,0,6.0859,0,9.2370,1.4325,4.0264e-6,0,0,0,0.067860,0.31194,0.23739,2.9821,0.15704,1529220,0.27148,0.73223,0.85723,0.85723,0.43548,0.29855,0.12321,4.1874e-5,1.2487e-4,0,0,0,0,0,0,0.025000,4.9087e-4,1.3583,0,2.0303,287.83,100742,340.19,0.042492,0.95813</datapoint>
+          <datapoint>1.9189,59.367,58.933,106.11,60.379,109.32,7.8464,0,7.8464,0,11.124,26.321,0.0015034,0,-0.0089670,0,0.067498,0.31957,0.23669,3.3154,0.17750,1726997,8.9599,0.93590,0.85858,0.85860,0.43518,0.29930,0.12410,0.017921,0.059416,0,0,0,0,0,-5.4000e-7,0.025000,4.9087e-4,1.3500,0,2.0127,287.76,100629,340.16,0.047482,0.96288</datapoint>
+          <datapoint>2.0634,68.614,66.335,15.361,68.003,16.409,9.6409,0,9.6409,0,13.103,5.7698,3.0806e-4,0,-0.013016,0,0.065910,0.31983,0.23352,3.4521,0.19994,1943702,2.8909,1.1884,0.86025,0.86025,0.43481,0.30024,0.12520,0.0036674,0.012661,0,0,0,0,0,-9.1789e-7,0.025000,4.9087e-4,1.3485,0,1.8688,287.70,100520,340.12,0.049136,0.96702</datapoint>
+          <datapoint>2.2115,78.558,67.742,6.5198,69.532,7.5052,11.632,0,11.632,0,13.746,3.7176,2.4649e-4,0,0.047592,0,0.065550,0.31199,0.23279,3.1680,0.20446,1985882,2.3401,1.2418,0.86061,0.86061,0.43473,0.30044,0.12543,0.0025685,0.0081253,0,0,0,0,0,1.1803e-5,0.025000,4.9087e-4,1.3437,0,1.9274,287.64,100404,340.08,0.049704,0.97054</datapoint>
+          <datapoint>2.3587,88.598,68.651,3.6589,70.576,4.9987,13.696,0,13.696,0,14.311,3.4058,6.5544e-4,0,-0.0018196,0,0.065090,0.31978,0.23183,3.5180,0.20755,2014149,2.1832,1.2785,0.86086,0.86087,0.43468,0.30059,0.12560,0.0078096,0.027474,0,0,0,0,0,-1.6867e-8,0.025000,4.9087e-4,1.3361,0,2.0585,287.57,100286,340.04,0.048387,0.97452</datapoint>
+          <datapoint>2.5051,98.511,65.894,-27.535,67.777,27.870,15.784,0,15.784,0,13.989,4.3034,1.8014e-4,0,0.024230,0,0.064560,0.31199,0.23071,3.2511,0.19934,1932825,0,1.1772,0.86021,0.86021,0.43482,0.30022,0.12517,0.0018765,0.0060975,0,0,0,0,0,3.2708e-6,0.025000,4.9087e-4,1.3347,0,1.8756,287.51,100170,340.00,0.049447,0.97826</datapoint>
+          <datapoint>2.6539,108.02,61.952,-25.499,63.772,25.765,17.819,0,17.819,0,13.394,3.6957,6.2504e-4,0,0.013115,0,0.064560,0.31975,0.23071,3.5614,0.18758,1817282,0,1.0401,0.85931,0.85931,0.43502,0.29971,0.12457,0.0074417,0.026502,0,0,0,0,0,1.0825e-6,0.025000,4.9087e-4,1.3307,0,1.7324,287.45,100058,339.96,0.049810,0.98175</datapoint>
+          <datapoint>2.8064,117.18,58.215,-23.660,60.025,23.899,19.817,0,19.817,0,12.823,3.3736,5.5622e-4,0,-0.055274,0,0.064560,0.31974,0.23071,3.5611,0.17658,1709300,0,0.91983,0.85852,0.85852,0.43520,0.29927,0.12405,0.0066193,0.023594,0,0,0,0,0,-2.1703e-5,0.025000,4.9087e-4,1.3240,0,1.8063,287.39,99951,339.93,0.042320,1.0031</datapoint>
+          <datapoint>2.9842,127.17,54.179,-21.824,55.975,22.024,22.044,0,22.044,0,12.245,2.9660,9.1947e-4,0,-0.013853,0,0.064560,0.31965,0.23071,3.5578,0.16469,1592749,0,0.79840,0.85772,0.85773,0.43538,0.29882,0.12353,0.010945,0.038941,0,0,0,0,0,-1.5677e-6,0.025000,4.9087e-4,1.3159,0,1.8214,287.32,99834,339.89,0.046979,1.0082</datapoint>
+          <datapoint>3.1276,134.71,51.151,-20.528,52.910,20.699,23.768,0,23.768,0,11.814,2.6588,0.0011845,0,-0.031600,0,0.064560,0.31959,0.23071,3.5553,0.15568,1504662,0,0.71238,0.85715,0.85716,0.43550,0.29850,0.12315,0.014103,0.050149,0,0,0,0,0,-9.1291e-6,0.025000,4.9087e-4,1.3110,0,1.7154,287.27,99745,339.86,0.048964,1.0116</datapoint>
+          <datapoint>3.2948,142.99,47.843,-19.190,49.630,19.349,25.704,0,25.704,0,11.345,2.4784,8.2255e-4,0,-0.11177,0,0.064560,0.31964,0.23071,3.5573,0.14604,1410477,0,0.62587,0.85658,0.85658,0.43563,0.29818,0.12277,0.0097846,0.034937,0,0,0,0,0,-1.2980e-4,0.025000,4.9087e-4,1.3009,0,1.8498,287.22,99648,339.83,0.041446,1.0170</datapoint>
+          <datapoint>3.4596,150.61,44.782,-17.878,46.609,18.109,27.542,0,27.542,0,10.942,2.8855,0.0055873,0,0.092178,0,0.064560,0.31086,0.23071,3.2060,0.13717,1323846,0,0.55145,0.85608,0.85635,0.43574,0.29790,0.12245,0.058718,0.18815,0,0,0,0,0,1.0010e-4,0.025000,4.9087e-4,1.2955,0,1.9775,287.17,99559,339.80,0.014261,1.0354</datapoint>
+          <datapoint>3.6180,157.49,42.001,-17.090,43.834,17.208,29.246,0,29.246,0,10.605,2.0117,0.0015786,0,0.017076,0,0.064560,0.31949,0.23071,3.5510,0.12901,1244376,0,0.48704,0.85566,0.85568,0.43583,0.29766,0.12216,0.018794,0.066735,0,0,0,0,0,3.8842e-6,0.025000,4.9087e-4,1.2790,0,1.9395,287.13,99478,339.77,0.024657,1.0463</datapoint>
+          <datapoint>3.7741,163.84,39.416,-16.145,41.264,16.286,30.874,0,30.874,0,10.254,2.1449,0.0023595,0,0.11563,0,0.064560,0.31144,0.23071,3.2292,0.12146,1170831,0,0.43116,0.85528,0.85533,0.43592,0.29745,0.12192,0.024631,0.079339,0,0,0,0,0,2.0098e-4,0.025000,4.9087e-4,1.2728,0,1.9554,287.09,99403,339.74,0.036347,1.0538</datapoint>
+          <datapoint>3.9243,169.58,37.035,-15.527,38.913,15.612,32.392,0,32.392,0,9.9820,1.6289,0.0026304,0,-0.048209,0,0.064560,0.31928,0.23071,3.5428,0.11454,1103637,0,0.38309,0.85496,0.85502,0.43599,0.29727,0.12171,0.031365,0.11116,0,0,0,0,0,-3.9282e-5,0.025000,4.9087e-4,1.2562,0,1.9603,287.05,99336,339.72,0.031684,1.0585</datapoint>
+          <datapoint>4.0779,175.09,34.713,-14.715,36.586,14.835,33.906,0,33.906,0,9.7157,1.8835,0.0040625,0,0.043506,0,0.064560,0.31111,0.23071,3.2158,0.10770,1037207,0,0.33838,0.85466,0.85481,0.43605,0.29710,0.12151,0.042541,0.13677,0,0,0,0,0,3.6190e-5,0.025000,4.9087e-4,1.2534,0,1.8426,287.01,99272,339.70,0.033869,1.0636</datapoint>
+          <datapoint>4.2541,180.98,32.178,-14.079,34.161,14.174,35.590,0,35.590,0,9.4018,1.6389,0.0022005,0,0.20746,0,0.064560,0.31145,0.23071,3.2294,0.10057,968012,0,0.29471,0.85437,0.85441,0.43612,0.29694,0.12131,0.022956,0.073190,0,0,0,0,0,9.4394e-4,0.025000,4.9087e-4,1.2306,0,2.0682,286.97,99202,339.68,0.040403,1.0693</datapoint>
+          <datapoint>4.4176,186.05,29.899,-13.573,31.864,13.634,37.111,0,37.111,0,9.2186,1.2834,0.0018419,0,0.065753,0,0.064560,0.31940,0.23071,3.5476,0.093812,902555,0,0.25620,0.85411,0.85414,0.43617,0.29679,0.12114,0.021924,0.077669,0,0,0,0,0,1.0899e-4,0.025000,4.9087e-4,1.2159,0,1.7981,286.94,99143,339.66,0.028158,1.0801</datapoint>
+          <datapoint>4.5790,190.71,27.773,-12.889,29.797,13.000,38.579,0,38.579,0,8.9531,1.6978,0.011834,0,0.18556,0,0.064560,0.30966,0.23071,3.1579,0.087732,843707,0,0.22419,0.85389,0.85508,0.43622,0.29667,0.12100,0.12576,0.39616,0,0,0,0,0,9.9252e-4,0.025000,4.9087e-4,1.2119,0,1.8413,286.91,99088,339.64,0.015995,1.1048</datapoint>
+          <datapoint>4.7315,194.79,25.821,-12.744,27.930,12.775,39.927,0,39.927,0,8.7542,0.89962,0.0071337,0,-0.25225,0,0.064560,0.31846,0.23071,3.5098,0.082238,790588,0,0.19668,0.85371,0.85415,0.43626,0.29657,0.12088,0.085673,0.30278,0,0,0,0,0,-0.0020876,0.025000,4.9087e-4,1.1726,0,1.8919,286.88,99040,339.62,0.025646,1.1128</datapoint>
+          <datapoint>4.9077,199.15,23.621,-12.172,25.930,12.227,41.456,0,41.456,0,8.5846,1.1574,0.0028080,0,0.10227,0,0.064560,0.31131,0.23071,3.2239,0.076353,733728,0,0.16934,0.85353,0.85360,0.43630,0.29646,0.12076,0.029318,0.094120,0,0,0,0,0,3.9817e-4,0.025000,4.9087e-4,1.1484,0,2.1116,286.86,98989,339.60,0.041249,1.1211</datapoint>
+          <datapoint>5.0855,203.16,21.490,-11.831,23.806,11.866,42.965,0,42.965,0,8.3934,0.90976,0.0015821,0,-0.15180,0,0.064560,0.31943,0.23071,3.5487,0.070103,673425,0,0.14264,0.85335,0.85337,0.43634,0.29636,0.12064,0.018817,0.067816,0,0,0,0,0,-0.0010407,0.025000,4.9087e-4,1.1245,0,1.8484,286.83,98942,339.59,0.047899,1.1337</datapoint>
+          <datapoint>5.2309,206.16,19.795,-11.499,22.218,11.538,44.176,0,44.176,0,8.2585,0.93599,0.0032284,0,0.16232,0,0.064560,0.31122,0.23071,3.2204,0.065429,628355,0,0.12420,0.85322,0.85331,0.43637,0.29629,0.12056,0.033730,0.10726,0,0,0,0,0,0.0013660,0.025000,4.9087e-4,1.1026,0,1.8312,286.81,98907,339.58,0.049279,1.1372</datapoint>
+          <datapoint>5.3705,208.81,18.213,-11.214,20.818,11.256,45.319,0,45.319,0,8.1203,0.96796,0.0088536,0,0.26076,0,0.064560,0.31018,0.23071,3.1787,0.061309,588648,0,0.10908,0.85312,0.85379,0.43639,0.29624,0.12049,0.093519,0.29326,0,0,0,0,0,0.0040153,0.025000,4.9087e-4,1.0740,0,1.9633,286.79,98876,339.57,0.042574,1.1523</datapoint>
+          <datapoint>5.5316,211.53,12.411,-111.57,15.061,127.77,46.574,0,46.574,0,5.5354,62.257,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.044356,425771,0,7.7012,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0814,286.78,98845,339.56,0.0039134,1.1569</datapoint>
+          <datapoint>5.6933,212.73,4.4166,-25.274,6.0323,27.676,47.042,0,47.042,0,1.4070,11.277,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.017765,170513,0,1.2352,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9446,286.77,98831,339.55,0.018066,1.1592</datapoint>
+          <datapoint>5.8585,213.21,1.6082,-13.303,3.1771,13.892,47.173,0,47.173,0,0.35807,4.0016,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.0093568,89803,0,0.34264,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8934,286.76,98825,339.55,0.035992,1.1602</datapoint>
+          <datapoint>6.0385,213.31,-0.34833,-9.9530,1.7879,10.093,47.196,0,47.196,0,0.051569,1.6752,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.0052656,50536,0,0.10851,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7506,286.76,98823,339.55,0.049539,1.1607</datapoint>
+          <datapoint>6.2039,213.13,-1.8175,-8.2597,2.2225,8.5172,47.164,0,47.164,0,0.34902,2.0785,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.0065454,62820,0,0.16767,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0057,286.76,98824,339.55,0.058705,1.1623</datapoint>
+          <datapoint>6.3412,212.81,-2.7671,-6.4765,2.7684,6.8575,47.095,0,47.095,0,0.66211,2.2538,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.0081530,78251,0,0.26015,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0461,286.77,98827,339.55,0.072913,1.1625</datapoint>
+          <datapoint>6.5396,212.17,-3.6799,-4.0243,3.4102,4.4760,46.922,0,46.922,0,1.0690,1.9596,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.010043,96398,0,0.39479,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9429,286.77,98832,339.55,0.11171,1.1628</datapoint>
+          <datapoint>6.7050,211.52,-4.0948,-2.5087,3.7768,3.0235,46.722,0,46.722,0,1.3481,1.6876,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.011123,106762,0,0.48424,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9188,286.77,98837,339.55,0.16537,1.1629</datapoint>
+          <datapoint>7.0219,210.18,-4.3824,-0.90741,4.1376,1.5778,46.230,0,46.230,0,1.7571,1.2908,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.012185,116966,0,0.58120,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9413,286.78,98844,339.56,0.31689,1.1630</datapoint>
+          <datapoint>7.4001,208.55,-4.2454,0.36218,4.4164,1.3220,45.475,0,45.475,0,2.2380,1.2714,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.013006,124862,0,0.66227,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.3045,286.78,98860,339.56,0.37823,1.1631</datapoint>
+          <datapoint>7.9001,206.39,-4.4076,-0.32452,4.2507,0.57582,44.415,0,44.415,0,2.0002,0.47567,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.012518,120192,0,0.61360,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0253,286.79,98879,339.57,0.50000,1.1633</datapoint>
+          <datapoint>8.4001,204.23,-4.2049,0.40538,4.4081,0.43280,43.396,0,43.396,0,2.0760,0.15161,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.012981,124664,0,0.66002,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0655,286.81,98904,339.58,0.50000,1.1634</datapoint>
+          <datapoint>8.9001,202.07,-4.4415,-0.47308,4.2226,0.98029,42.465,0,42.465,0,1.6467,0.85858,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.012435,119439,0,0.60578,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.6896,286.82,98930,339.58,0.50000,1.1635</datapoint>
+          <datapoint>9.3927,199.96,-4.1468,0.59828,4.4552,1.0151,41.555,0,41.555,0,2.0506,0.82002,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.013119,126039,0,0.67448,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9964,286.84,98955,339.59,0.49258,1.1636</datapoint>
+          <datapoint>9.8927,197.79,-4.5286,-0.76361,4.1470,0.77022,40.517,0,40.517,0,2.1010,0.10072,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.012211,117340,0,0.58452,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0967,286.85,98980,339.60,0.50000,1.1637</datapoint>
+          <datapoint>10.380,195.70,-4.0481,0.98557,4.5301,1.0256,39.526,0,39.526,0,1.9626,0.28382,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.013339,128201,0,0.69765,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9820,286.86,99005,339.61,0.48751,1.1638</datapoint>
+          <datapoint>10.778,193.99,-4.5157,-1.1749,4.0535,1.2564,38.781,0,38.781,0,1.7855,0.44515,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.011935,114730,0,0.55867,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7541,286.88,99030,339.62,0.39797,1.1639</datapoint>
+          <datapoint>11.219,192.09,-4.0998,0.94262,4.5234,1.1333,37.932,0,37.932,0,2.0630,0.62913,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.013319,128048,0,0.69582,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0495,286.89,99050,339.62,0.44120,1.1640</datapoint>
+          <datapoint>11.704,189.99,-4.5619,-0.95274,4.1038,1.0310,36.977,0,36.977,0,1.8720,0.39392,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.012083,116189,0,0.57283,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8808,286.90,99072,339.63,0.48498,1.1642</datapoint>
+          <datapoint>12.131,188.15,-4.0702,1.1514,4.5627,1.1709,36.159,0,36.159,0,1.9629,0.21290,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.013434,129201,0,0.70824,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9605,286.92,99097,339.64,0.42703,1.1643</datapoint>
+          <datapoint>12.585,186.19,-4.5614,-1.0832,4.0713,1.1025,35.290,0,35.290,0,1.8697,0.20552,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.011987,115303,0,0.56400,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8671,286.93,99118,339.65,0.45351,1.1644</datapoint>
+          <datapoint>13.009,184.36,-4.0716,1.1538,4.5625,1.1778,34.475,0,34.475,0,1.9702,0.23676,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.013433,129233,0,0.70843,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9681,286.94,99141,339.66,0.42451,1.1645</datapoint>
+          <datapoint>13.457,182.43,-4.5510,-1.0705,4.0743,1.1166,33.560,0,33.560,0,2.1124,0.31753,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.011995,115422,0,0.56504,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1180,286.95,99163,339.66,0.44779,1.1646</datapoint>
+          <datapoint>13.896,180.54,-4.0650,1.1083,4.5524,1.1404,32.608,0,32.608,0,2.2301,0.26846,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.013402,128984,0,0.70554,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2242,286.96,99185,339.67,0.43846,1.1647</datapoint>
+          <datapoint>14.349,178.58,-4.5644,-1.1012,4.0651,1.1025,31.592,0,31.592,0,2.2545,0.053815,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.011968,115196,0,0.56270,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2552,286.98,99208,339.68,0.45352,1.1648</datapoint>
+          <datapoint>14.763,176.79,-4.0769,1.1770,4.5658,1.2071,30.681,0,30.681,0,2.1436,0.26779,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.013441,129403,0,0.70998,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1433,286.99,99231,339.69,0.41422,1.1649</datapoint>
+          <datapoint>15.230,174.78,-4.5645,-1.0441,4.0784,1.0707,29.705,0,29.705,0,2.0328,0.23718,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.012006,115605,0,0.56658,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0333,287.00,99252,339.69,0.46701,1.1651</datapoint>
+          <datapoint>15.620,173.09,-4.1014,1.1885,4.5689,1.2832,28.877,0,28.877,0,2.2213,0.48372,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.013450,129529,0,0.71120,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2334,287.01,99275,339.70,0.38965,1.1652</datapoint>
+          <datapoint>16.089,171.06,-4.5340,-0.92255,4.1088,1.0661,27.894,0,27.894,0,1.9707,0.53429,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.012095,116500,0,0.57525,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9749,287.02,99295,339.71,0.46900,1.1653</datapoint>
+          <datapoint>16.569,169.01,-4.0368,1.0362,4.5343,1.0420,26.935,0,26.935,0,2.0234,0.10975,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.013347,128585,0,0.70071,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0166,287.04,99319,339.72,0.47986,1.1654</datapoint>
+          <datapoint>16.981,167.24,-4.5368,-1.2124,4.0368,1.2125,26.102,0,26.102,0,2.0182,0.012559,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.011883,114496,0,0.55550,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0175,287.05,99343,339.72,0.41237,1.1655</datapoint>
+          <datapoint>17.415,165.37,-4.0758,1.0619,4.5406,1.1519,25.184,0,25.184,0,2.2119,0.44624,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.013365,128803,0,0.70293,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2043,287.06,99364,339.73,0.43408,1.1656</datapoint>
+          <datapoint>17.848,163.51,-4.5197,-1.0262,4.0833,1.1560,24.277,0,24.277,0,1.9817,0.53213,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.012019,115847,0,0.56857,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9652,287.08,99386,339.74,0.43254,1.1657</datapoint>
+          <datapoint>18.322,161.48,-4.0546,0.98185,4.5226,1.0555,23.295,0,23.295,0,2.1653,0.38744,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.013312,128329,0,0.69761,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1439,287.09,99407,339.74,0.47370,1.1658</datapoint>
+          <datapoint>18.725,159.75,-4.5038,-1.1132,4.0625,1.2393,22.465,0,22.465,0,1.9455,0.54457,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.011957,115293,0,0.56301,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9116,287.10,99431,339.75,0.40346,1.1660</datapoint>
+          <datapoint>19.225,157.61,-4.0497,0.90807,4.5060,0.96996,21.450,0,21.450,0,2.1160,0.34091,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.013262,127896,0,0.69275,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0887,287.11,99451,339.76,0.50000,1.1661</datapoint>
+          <datapoint>19.652,155.78,-4.5383,-1.1444,4.0514,1.1711,20.569,0,20.569,0,2.0098,0.24870,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.011924,115010,0,0.56013,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9999,287.13,99476,339.77,0.42694,1.1662</datapoint>
+          <datapoint>20.107,153.83,-4.0496,1.0744,4.5393,1.0993,19.679,0,19.679,0,1.9040,0.23257,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.013360,128881,0,0.70330,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9129,287.14,99498,339.78,0.45484,1.1663</datapoint>
+          <datapoint>20.543,151.95,-4.5495,-1.1452,4.0496,1.1454,18.850,0,18.850,0,1.8947,0.021446,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.011918,114995,0,0.55985,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8940,287.15,99521,339.78,0.43653,1.1664</datapoint>
+          <datapoint>20.979,150.08,-4.0570,1.1317,4.5503,1.1488,18.007,0,18.007,0,1.9808,0.19785,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.013391,129230,0,0.70695,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9769,287.16,99543,339.79,0.43523,1.1665</datapoint>
+          <datapoint>21.380,148.36,-4.4939,-1.0895,4.0668,1.2468,17.261,0,17.261,0,1.7376,0.60630,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.011968,115515,0,0.56480,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.6989,287.17,99565,339.80,0.40102,1.1667</datapoint>
+          <datapoint>21.880,146.23,-4.0565,0.87473,4.4970,0.95964,16.343,0,16.343,0,1.9350,0.39466,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.013234,127751,0,0.69072,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9035,287.19,99585,339.80,0.50000,1.1668</datapoint>
+          <datapoint>22.330,144.29,-4.5556,-1.1090,4.0567,1.1112,15.480,0,15.480,0,1.9034,0.070140,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.011938,115262,0,0.56220,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9023,287.20,99610,339.81,0.44996,1.1669</datapoint>
+          <datapoint>22.754,142.46,-4.0600,1.1679,4.5560,1.1784,14.658,0,14.658,0,1.9700,0.15692,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.013407,129469,0,0.70925,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9685,287.21,99633,339.82,0.42430,1.1670</datapoint>
+          <datapoint>23.205,140.52,-4.5510,-1.0888,4.0612,1.1087,13.791,0,13.791,0,1.8758,0.20891,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.011951,115423,0,0.56365,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8728,287.22,99654,339.83,0.45099,1.1671</datapoint>
+          <datapoint>23.608,138.78,-4.0847,1.1582,4.5548,1.2418,12.999,0,12.999,0,2.0562,0.44806,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.013403,129473,0,0.70914,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0616,287.24,99677,339.84,0.40264,1.1672</datapoint>
+          <datapoint>24.096,136.67,-4.5615,-0.97624,4.0872,1.0238,11.958,0,11.958,0,2.2069,0.30856,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.012027,116196,0,0.57110,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1987,287.25,99697,339.84,0.48836,1.1673</datapoint>
+          <datapoint>24.501,134.92,-4.0725,1.2064,4.5627,1.2335,11.085,0,11.085,0,2.1027,0.25696,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.013426,129736,0,0.71186,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1005,287.26,99722,339.85,0.40537,1.1675</datapoint>
+          <datapoint>24.976,132.87,-4.5611,-1.0286,4.0738,1.0525,10.111,0,10.111,0,1.9967,0.22303,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.011987,115848,0,0.56755,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9993,287.27,99743,339.86,0.47506,1.1676</datapoint>
+          <datapoint>25.386,131.10,-4.0662,1.2069,4.5617,1.2194,9.2775,0,9.2775,0,2.0681,0.17393,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.013422,129744,0,0.71178,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0687,287.29,99767,339.87,0.41005,1.1677</datapoint>
+          <datapoint>25.853,129.09,-4.5571,-1.0528,4.0673,1.0724,8.3354,0,8.3354,0,1.9728,0.20424,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.011967,115699,0,0.56596,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9733,287.30,99787,339.87,0.46624,1.1678</datapoint>
+          <datapoint>26.272,127.28,-4.0574,1.1901,4.5571,1.1910,7.5113,0,7.5113,0,1.9534,0.046373,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.013408,129652,0,0.71061,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9536,287.31,99811,339.88,0.41983,1.1679</datapoint>
+          <datapoint>26.698,125.46,-4.5163,-1.0773,4.0632,1.1740,6.6370,0,6.6370,0,2.1520,0.46642,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.011955,115616,0,0.56503,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1699,287.32,99832,339.89,0.42590,1.1680</datapoint>
+          <datapoint>27.181,123.39,-4.0333,1.0009,4.5177,1.0361,5.6296,0,5.6296,0,2.0228,0.26770,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.013291,128566,0,0.69861,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0403,287.33,99854,339.89,0.48259,1.1681</datapoint>
+          <datapoint>27.574,121.71,-4.4963,-1.1770,4.0395,1.2709,4.7967,0,4.7967,0,2.2115,0.47942,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.011884,114975,0,0.55865,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2466,287.35,99878,339.90,0.39342,1.1682</datapoint>
+          <datapoint>28.010,119.84,-4.0921,0.92714,4.5052,1.1469,3.8967,0,3.8967,0,1.9171,0.67507,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.013254,128247,0,0.69500,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9289,287.36,99897,339.91,0.43597,1.1684</datapoint>
+          <datapoint>28.413,118.12,-4.4512,-0.89213,4.1113,1.2421,3.0550,0,3.0550,0,2.2650,0.86430,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.012095,117050,0,0.57888,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.3134,287.37,99919,339.92,0.40253,1.1685</datapoint>
+          <datapoint>28.913,115.99,-4.0950,0.71250,4.4584,0.93016,1.8477,0,1.8477,0,2.5640,0.59795,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.013116,126950,0,0.68087,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.5178,287.38,99940,339.92,0.50000,1.1686</datapoint>
+          <datapoint>29.413,113.82,-4.5524,-0.91477,4.0965,0.94590,0.59582,0,0.59582,0,2.4437,0.24067,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.012051,116664,0,0.57493,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.4533,287.40,99965,339.93,0.50000,1.1687</datapoint>
+          <datapoint>29.766,112.29,-4.1262,1.2080,4.5626,1.4173,-0.22016,0,0.22016,3.1416,2.1822,0.74124,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.013422,129961,0,0.71337,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1376,287.41,99990,339.94,0.35279,1.1688</datapoint>
+          <datapoint>30.266,110.14,-4.5069,-0.76137,4.1341,0.94542,-1.2412,0,1.2412,3.1416,1.9020,0.56047,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.012161,117769,0,0.58574,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9268,287.42,100008,339.95,0.50000,1.1693</datapoint>
+          <datapoint>30.643,108.51,-4.1286,1.0028,4.5213,1.3255,-2.0203,0,2.0203,3.1416,2.2289,0.86685,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.013300,128821,0,0.70076,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2630,287.43,100033,339.96,0.37721,1.1694</datapoint>
+          <datapoint>31.143,106.35,-4.5083,-0.75945,4.1311,0.82077,-3.0959,0,3.0959,3.1416,2.0733,0.31128,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.012152,117716,0,0.58509,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0870,287.44,100052,339.96,0.50000,1.1695</datapoint>
+          <datapoint>31.638,104.24,-4.0227,0.98178,4.5095,1.0107,-4.1509,0,4.1509,3.1416,2.1921,0.24025,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.013264,128520,0,0.69733,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1736,287.46,100078,339.97,0.49468,1.1696</datapoint>
+          <datapoint>32.034,102.55,-4.5033,-1.2129,4.0259,1.2617,-4.9923,0,4.9923,3.1416,2.0545,0.34741,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.011842,114759,0,0.55592,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0297,287.47,100102,339.98,0.39629,1.1697</datapoint>
+          <datapoint>32.488,100.60,-4.0622,0.97148,4.5085,1.1010,-5.8719,0,5.8719,3.1416,1.8192,0.51808,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.013261,128531,0,0.69730,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8382,287.48,100122,339.98,0.45414,1.1698</datapoint>
+          <datapoint>32.955,98.590,-4.5502,-1.0442,4.0636,1.0698,-6.6968,0,6.6968,3.1416,1.7106,0.23230,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.011952,115864,0,0.56656,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7116,287.50,100145,339.99,0.46739,1.1700</datapoint>
+          <datapoint>33.279,97.184,-4.1531,1.2285,4.5667,1.5469,-7.2988,0,7.2988,3.1416,2.0145,0.94003,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.013431,130229,0,0.71567,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0979,287.51,100169,340.00,0.32323,1.1701</datapoint>
+          <datapoint>33.779,95.026,-4.4763,-0.64622,4.1535,0.65887,-8.2900,0,8.2900,3.1416,1.9502,0.12847,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.012216,118460,0,0.59212,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9563,287.52,100185,340.01,0.50000,1.1714</datapoint>
+          <datapoint>34.279,92.893,-4.0569,0.83867,4.4768,0.85523,-9.2442,0,9.2442,3.1416,1.8665,0.16748,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.013167,127700,0,0.68801,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8799,287.53,100211,340.01,0.50000,1.1716</datapoint>
+          <datapoint>34.738,90.919,-4.5434,-1.0600,4.0586,1.0894,-10.127,0,10.127,3.1416,1.9819,0.25153,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.011936,115790,0,0.56558,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9830,287.55,100236,340.02,0.45897,1.1717</datapoint>
+          <datapoint>35.167,89.076,-4.0436,1.1637,4.5434,1.1643,-10.982,0,10.982,3.1416,1.9975,0.036329,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.013362,129642,0,0.70891,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9970,287.56,100259,340.03,0.42944,1.1718</datapoint>
+          <datapoint>35.592,87.256,-4.5150,-1.1088,4.0478,1.1761,-11.866,0,11.866,3.1416,2.1643,0.39231,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.011904,115514,0,0.56277,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1797,287.57,100280,340.04,0.42512,1.1720</datapoint>
+          <datapoint>36.077,85.187,-4.0150,1.0306,4.5150,1.0306,-12.916,0,12.916,3.1416,2.1617,0.0054624,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.013278,128867,0,0.70031,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1620,287.58,100302,340.05,0.48514,1.1721</datapoint>
+          <datapoint>36.429,83.701,-4.4384,-1.2042,4.0305,1.4220,-13.629,0,13.629,3.1416,1.8957,0.75639,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.011852,115055,0,0.55818,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8091,287.60,100326,340.05,0.35161,1.1722</datapoint>
+          <datapoint>36.929,81.567,-4.0975,0.68182,4.4438,0.85431,-14.641,0,14.641,3.1416,2.1531,0.51474,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.013068,126867,0,0.67861,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1133,287.61,100343,340.06,0.50000,1.1723</datapoint>
+          <datapoint>37.429,79.409,-4.5362,-0.87735,4.0978,0.88373,-15.705,0,15.705,3.1416,2.1001,0.10599,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.012050,117009,0,0.57718,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1045,287.62,100368,340.07,0.50000,1.1724</datapoint>
+          <datapoint>37.805,77.782,-4.0994,1.1597,4.5440,1.3275,-16.450,0,16.450,3.1416,1.8567,0.64611,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.013362,129773,0,0.70987,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8331,287.63,100394,340.08,0.37665,1.1725</datapoint>
+          <datapoint>38.305,75.626,-4.5267,-0.85456,4.1049,0.97226,-17.320,0,17.320,3.1416,1.6249,0.46370,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.012070,117246,0,0.57938,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.6446,287.64,100413,340.08,0.50000,1.1726</datapoint>
+          <datapoint>38.643,74.165,-4.1425,1.1396,4.5436,1.4831,-17.922,0,17.922,3.1416,1.9449,0.94920,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.013360,129799,0,0.71000,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0170,287.66,100438,340.09,0.33713,1.1727</datapoint>
+          <datapoint>39.143,72.010,-4.4764,-0.66774,4.1454,0.75192,-18.938,0,18.938,3.1416,2.1177,0.34569,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.012189,118437,0,0.59109,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1014,287.67,100455,340.10,0.50000,1.1729</datapoint>
+          <datapoint>39.643,69.879,-4.0457,0.86133,4.4765,0.86503,-20.006,0,20.006,3.1416,2.1577,0.079977,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.013162,127916,0,0.68940,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1512,287.68,100480,340.11,0.50000,1.1730</datapoint>
+          <datapoint>40.099,67.919,-4.5443,-1.0926,4.0459,1.0957,-21.000,0,21.000,3.1416,2.1950,0.081685,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.011896,115630,0,0.56326,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1956,287.70,100505,340.11,0.45634,1.1731</datapoint>
+          <datapoint>40.510,66.154,-4.0538,1.1944,4.5454,1.2176,-21.881,0,21.881,3.1416,2.0979,0.23644,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.013364,129924,0,0.71105,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0974,287.71,100528,340.12,0.41065,1.1732</datapoint>
+          <datapoint>40.938,64.323,-4.4987,-1.0387,4.0613,1.1675,-22.731,0,22.731,3.1416,1.8696,0.53306,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.011940,116103,0,0.56776,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8517,287.72,100549,340.13,0.42826,1.1733</datapoint>
+          <datapoint>41.438,62.195,-4.0107,0.97587,4.4988,0.97999,-23.677,0,23.677,3.1416,1.9145,0.089705,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.013227,128629,0,0.69680,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9070,287.73,100571,340.14,0.50000,1.1734</datapoint>
+          <datapoint>41.834,60.510,-4.4989,-1.2326,4.0128,1.2625,-24.413,0,24.413,3.1416,1.8064,0.27281,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.011797,114750,0,0.55448,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7870,287.75,100596,340.14,0.39605,1.1735</datapoint>
+          <datapoint>42.306,58.496,-4.0328,0.98736,4.5017,1.0591,-25.309,0,25.309,3.1416,1.9874,0.38330,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.013235,128750,0,0.69796,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9660,287.76,100615,340.15,0.47208,1.1737</datapoint>
+          <datapoint>42.742,56.629,-4.5292,-1.1382,4.0333,1.1463,-26.163,0,26.163,3.1416,1.9278,0.13654,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.011857,115370,0,0.56037,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9239,287.77,100639,340.16,0.43617,1.1738</datapoint>
+          <datapoint>43.165,54.815,-4.0490,1.1356,4.5313,1.1824,-26.948,0,26.948,3.1416,1.7885,0.32944,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.013321,129634,0,0.70741,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7916,287.78,100661,340.17,0.42287,1.1739</datapoint>
+          <datapoint>43.625,52.840,-4.5382,-1.0633,4.0504,1.0869,-27.747,0,27.747,3.1416,1.6849,0.22511,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.011907,115891,0,0.56532,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.6844,287.79,100682,340.17,0.46004,1.1740</datapoint>
+          <datapoint>44.000,51.222,-4.0905,1.1938,4.5448,1.3332,-28.421,0,28.421,3.1416,1.9075,0.59342,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.013360,130057,0,0.71188,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9295,287.81,100705,340.18,0.37504,1.1741</datapoint>
+          <datapoint>44.500,49.067,-4.5298,-0.87867,4.0926,0.92393,-29.339,0,29.339,3.1416,1.7647,0.28565,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.012030,117130,0,0.57735,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7768,287.82,100724,340.19,0.50000,1.1742</datapoint>
+          <datapoint>44.915,47.287,-4.0539,1.1473,4.5324,1.2053,-30.039,0,30.039,3.1416,1.6114,0.36944,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.013323,129739,0,0.70825,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.6120,287.83,100750,340.20,0.41483,1.1743</datapoint>
+          <datapoint>45.283,45.728,-4.4183,-0.99051,4.0763,1.3590,-30.695,0,30.695,3.1416,1.9537,0.93046,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.011982,116700,0,0.57299,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0388,287.84,100770,340.20,0.36792,1.1744</datapoint>
+          <datapoint>45.783,43.595,-4.1122,0.61214,4.4186,0.62312,-31.657,0,31.657,3.1416,1.8955,0.11644,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.012988,126513,0,0.67334,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9044,287.85,100789,340.21,0.50000,1.1746</datapoint>
+          <datapoint>46.209,41.775,-4.4261,-0.73598,4.1329,1.1724,-32.549,0,32.549,3.1416,2.2847,0.91261,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.012148,118354,0,0.58922,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.3088,287.87,100814,340.22,0.42648,1.1747</datapoint>
+          <datapoint>46.709,39.645,-4.0920,0.66812,4.4328,0.88322,-33.619,0,33.619,3.1416,1.9959,0.57766,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.013029,126959,0,0.67794,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0409,287.88,100835,340.22,0.50000,1.1748</datapoint>
+          <datapoint>47.209,37.491,-4.5254,-0.86666,4.0920,0.86675,-34.615,0,34.615,3.1416,1.9896,0.012629,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.012027,117218,0,0.57783,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9901,287.89,100860,340.23,0.50000,1.1750</datapoint>
+          <datapoint>47.588,35.860,-4.0897,1.1506,4.5333,1.3206,-35.322,0,35.322,3.1416,1.7442,0.64813,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.013324,129878,0,0.70930,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7222,287.91,100885,340.24,0.37862,1.1751</datapoint>
+          <datapoint>48.088,33.706,-4.5264,-0.87326,4.0899,0.87670,-36.185,0,36.185,3.1416,1.7054,0.077489,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.012020,117190,0,0.57742,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7088,287.92,100904,340.25,0.50000,1.1752</datapoint>
+          <datapoint>48.526,31.832,-4.0266,1.1403,4.5264,1.1409,-36.936,0,36.936,3.1416,1.7226,0.039122,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.013303,129718,0,0.70740,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7216,287.93,100930,340.26,0.43824,1.1753</datapoint>
+          <datapoint>48.897,30.264,-4.4380,-1.1105,4.0422,1.3496,-37.627,0,37.627,3.1416,2.0068,0.76706,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.011880,115860,0,0.56426,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0773,287.94,100952,340.26,0.37047,1.1754</datapoint>
+          <datapoint>49.384,28.189,-4.0756,0.74377,4.4480,1.0260,-38.688,0,38.688,3.1416,2.3512,0.70670,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.013072,127504,0,0.68332,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.3037,287.95,100970,340.27,0.48734,1.1755</datapoint>
+          <datapoint>49.884,26.035,-4.5401,-0.92897,4.0756,0.92915,-39.866,0,39.866,3.1416,2.3604,0.018398,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.011977,116848,0,0.57381,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.3596,287.97,100994,340.28,0.50000,1.1756</datapoint>
+          <datapoint>50.290,24.291,-4.0458,1.2161,4.5407,1.2303,-40.810,0,40.810,3.1416,2.2846,0.18640,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.013344,130205,0,0.71239,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2837,287.98,101020,340.29,0.40639,1.1758</datapoint>
+          <datapoint>50.661,22.723,-4.4197,-1.0098,4.0667,1.3504,-41.595,0,41.595,3.1416,1.9526,0.89658,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.011951,116629,0,0.57153,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8727,287.99,101040,340.29,0.37027,1.1759</datapoint>
+          <datapoint>51.161,20.594,-4.0968,0.64593,4.4219,0.72522,-42.530,0,42.530,3.1416,1.7878,0.32974,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.012994,126830,0,0.67581,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8133,288.00,101058,340.30,0.50000,1.1760</datapoint>
+          <datapoint>51.661,18.442,-4.5112,-0.82885,4.0973,0.84112,-43.406,0,43.406,3.1416,1.7162,0.14314,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.012040,117537,0,0.58034,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7225,288.02,101083,340.31,0.50000,1.1761</datapoint>
+          <datapoint>52.075,16.669,-4.0582,1.0944,4.5161,1.2081,-44.160,0,44.160,3.1416,1.9280,0.51165,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.013270,129574,0,0.70520,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9277,288.03,101109,340.32,0.41388,1.1762</datapoint>
+          <datapoint>52.485,14.922,-4.4538,-0.96377,4.0726,1.2181,-45.014,0,45.014,3.1416,2.2337,0.74495,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.011967,116864,0,0.57358,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2694,288.04,101130,340.32,0.41047,1.1763</datapoint>
+          <datapoint>52.985,12.797,-4.0450,0.81770,4.4568,0.90580,-46.180,0,46.180,3.1416,2.4286,0.38967,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.013096,127907,0,0.68703,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.3969,288.05,101150,340.33,0.50000,1.1764</datapoint>
+          <datapoint>53.402,11.023,-4.4731,-1.0275,4.0550,1.2001,-47.138,0,47.138,3.1416,2.1703,0.61999,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.011915,116394,0,0.56885,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1432,288.07,101175,340.34,0.41665,1.1765</datapoint>
+          <datapoint>53.847,9.1227,-4.0610,0.92534,4.4809,1.1228,-48.041,0,48.041,3.1416,1.8870,0.63603,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.013166,128636,0,0.69473,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9054,288.08,101196,340.35,0.44530,1.1767</datapoint>
+          <datapoint>54.344,6.9845,-4.5445,-0.97279,4.0628,1.0062,-48.947,0,48.947,3.1416,1.7593,0.25701,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.011937,116648,0,0.57122,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7690,288.09,101218,340.35,0.49694,1.1768</datapoint>
+          <datapoint>54.740,5.2829,-4.0468,1.2563,4.5447,1.2622,-49.653,0,49.653,3.1416,1.8078,0.12228,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.013353,130507,0,0.71493,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8095,288.10,101243,340.36,0.39612,1.1769</datapoint>
+          <datapoint>55.216,3.2381,-4.5390,-1.0333,4.0477,1.0497,-50.535,0,50.535,3.1416,1.8959,0.18497,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.011892,116250,0,0.56719,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8930,288.12,101263,340.37,0.47632,1.1770</datapoint>
+          <datapoint>55.620,1.5072,-4.0413,1.2335,4.5392,1.2392,-51.291,0,51.291,3.1416,1.8477,0.11924,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.013336,130387,0,0.71345,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8469,288.13,101287,340.38,0.40348,1.1771</datapoint>
+          <datapoint>56.093,-0.52293,-4.5409,-1.0559,4.0414,1.0569,-52.170,0,52.170,3.1416,1.8690,0.044953,NaN,NaN,NaN,NaN,0.064560,NaN,NaN,NaN,0.011873,116100,0,0.56562,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8685,288.14,101307,340.38,0.47309,1.1772</datapoint>
+        </databranch>
+      </flightdata>
+    </simulation>
+
+    <simulation status="uptodate">
+      <name>Simulation 2</name>
+      <simulator>RK4Simulator</simulator>
+      <calculator>BarrowmanCalculator</calculator>
+      <conditions>
+        <configid>05896b5a-71a7-48ac-b7ae-eadeb267975b</configid>
+        <launchrodlength>1.0</launchrodlength>
+        <launchrodangle>0.0</launchrodangle>
+        <launchroddirection>0.0</launchroddirection>
+        <windaverage>2.0</windaverage>
+        <windturbulence>0.1</windturbulence>
+        <launchaltitude>0.0</launchaltitude>
+        <launchlatitude>45.0</launchlatitude>
+        <atmosphere model="isa"/>
+        <timestep>0.05</timestep>
+      </conditions>
+      <flightdata maxaltitude="405.65" maxvelocity="105.62" maxacceleration="159.27" maxmach="0.31100" timetoapogee="8.9122" flighttime="103.84" groundhitvelocity="4.0271">
+        <databranch name="Main" types="Time,Altitude,Vertical velocity,Vertical acceleration,Total velocity,Total acceleration,Position upwind,Position parallel to wind,Lateral distance,Lateral direction,Lateral velocity,Lateral acceleration,Angle of attack,Roll rate,Pitch rate,Yaw rate,Mass,CP location,CG location,Stability margin calibers,Mach number,Reynolds number,Thrust,Drag force,Drag coefficient,Axial drag coefficient,Friction drag coefficient,Pressure drag coefficient,Base drag coefficient,Normal force coefficient,Pitch moment coefficient,Yaw moment coefficient,Side force coefficient,Roll moment coefficient,Roll forcing coefficient,Roll damping coefficient,Pitch damping coefficient,Reference length,Reference area,Vertical orientation (zenith),Lateral orientation (azimuth),Wind velocity,Air temperature,Air pressure,Speed of sound,Simulation time step,Computation time">
+          <event time="0" type="launch"/>
+          <event time="0" type="ignition"/>
+          <event time="0.10000" type="liftoff"/>
+          <event time="0.25000" type="launchrod"/>
+          <event time="0.86223" type="burnout"/>
+          <event time="0.86223" type="ejectioncharge"/>
+          <event time="0.86223" type="ignition"/>
+          <event time="0.86223" type="stageseparation"/>
+          <event time="1.7216" type="burnout"/>
+          <event time="1.7216" type="ejectioncharge"/>
+          <event time="1.7216" type="ignition"/>
+          <event time="1.7216" type="stageseparation"/>
+          <event time="3.6012" type="burnout"/>
+          <event time="8.6186" type="ejectioncharge"/>
+          <event time="8.6186" type="recoverydevicedeployment"/>
+          <event time="8.9537" type="apogee"/>
+          <event time="103.84" type="groundhit"/>
+          <event time="103.84" type="simulationend"/>
+          <datapoint>0,0,0,-2.7100,1.6951,2.7100,0,0,0,0,0,0,1.5708,0,0,0,0.13784,NaN,NaN,NaN,0.0049798,64171,0.97959,0,2.4467,0,1.3970,0.92965,0.12000,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,0.025000,4.9087e-4,1.5708,0,1.6951,288.15,101325,340.39,0.050000,0.010011</datapoint>
+          <datapoint>0.15000,0.22230,5.0278,71.561,5.3997,71.561,0,0,0,0,0,0,0.37332,0,0,0,0.13726,NaN,NaN,NaN,0.015864,204419,11.194,0.023360,2.0917,2.6648,1.0419,0.92973,0.12003,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,0.025000,4.9087e-4,1.5708,0,1.9693,288.15,101322,340.39,0.050000,0.10530</datapoint>
+          <datapoint>0.30798,1.6779,12.119,29.938,12.229,29.976,-0.0031354,0,0.0031354,3.1416,0.10390,1.4962,0.12730,0,0.25514,0,0.13536,0.41687,0.35399,2.5149,0.035928,462916,5.4762,0.096531,1.9200,2.1471,0.86974,0.93011,0.12017,5.3901,13.541,0,0,0,0,0,0.014488,0.025000,4.9087e-4,1.5634,0,1.7461,288.14,101305,340.38,0.0080068,0.11613</datapoint>
+          <datapoint>0.46267,3.8740,16.147,23.786,16.224,23.952,-0.023710,0,0.023710,3.1416,0.048502,2.8148,0.0081101,0,0.70241,0,0.13466,0.42767,0.35310,2.9825,0.047665,614016,4.6928,0.15202,1.9204,1.9217,0.86965,0.93047,0.12030,0.31514,0.87769,0,0,0,0,0,0.062219,0.025000,4.9087e-4,1.4817,0,1.6225,288.12,101280,340.37,0.028285,0.21297</datapoint>
+          <datapoint>0.62142,6.7141,19.561,21.152,19.738,22.401,0.026079,0,0.026079,0,0.80269,7.3730,0.043764,0,-0.25390,0,0.13415,0.42771,0.35244,3.0108,0.057992,746871,4.4928,0.22884,1.9209,1.9548,0.86956,0.93087,0.12044,2.0296,6.1161,0,0,0,0,0,-0.0054812,0.025000,4.9087e-4,1.3927,0,1.8401,288.11,101246,340.36,0.0067919,0.25219</datapoint>
+          <datapoint>0.77516,9.9692,22.732,18.602,23.011,19.225,0.23577,0,0.23577,0,1.8634,4.8549,0.0046677,0,0.38070,0,0.13314,0.43106,0.35113,3.1970,0.067608,870472,4.1440,0.30565,1.9214,1.9218,0.86945,0.93132,0.12059,0.21112,0.66591,0,0,0,0,0,0.0090330,0.025000,4.9087e-4,1.4103,0,1.7068,288.09,101208,340.35,0.022825,0.31858</datapoint>
+          <datapoint>0.93948,13.730,23.212,27.131,23.509,27.330,0.55657,0,0.55657,0,2.0070,3.2950,0.034242,0,0.055451,0,0.10690,0.37822,0.30913,2.7637,0.069077,801777,4.1806,0.21760,1.2968,1.3112,0.66972,0.50649,0.12062,0.85683,2.3678,0,0,0,0,0,1.3679e-4,0.025000,4.9087e-4,1.4460,0,1.7164,288.06,101164,340.33,0.0085928,0.36928</datapoint>
+          <datapoint>1.0949,18.100,33.884,55.285,34.311,56.599,0.97862,0,0.97862,0,3.6936,12.128,0.010701,0,-0.31034,0,0.10512,0.38554,0.30682,3.1489,0.10082,1169796,7.4195,0.45929,1.2983,1.2998,0.66936,0.50763,0.12132,0.30351,0.95774,0,0,0,0,0,-0.0020123,0.025000,4.9087e-4,1.4020,0,1.7075,288.03,101113,340.32,0.0098845,0.41075</datapoint>
+          <datapoint>1.2547,24.037,39.850,30.045,40.442,30.653,1.6988,0,1.6988,0,5.1512,6.0742,0.0052161,0,-0.13662,0,0.10414,0.38190,0.30553,3.0548,0.11884,1378188,4.8365,0.63771,1.2994,1.2998,0.66909,0.50847,0.12184,0.12687,0.38784,0,0,0,0,0,-2.8091e-4,0.025000,4.9087e-4,1.4048,0,1.7409,287.99,101043,340.29,0.017794,0.45982</datapoint>
+          <datapoint>1.4224,31.119,44.461,24.026,45.132,24.950,2.6419,0,2.6419,0,6.1209,6.7270,0.0040591,0,-0.13487,0,0.10351,0.38633,0.30467,3.2664,0.13264,1537191,4.3650,0.79417,1.3004,1.3006,0.66886,0.50921,0.12229,0.11455,0.37439,0,0,0,0,0,-2.1994e-4,0.025000,4.9087e-4,1.3942,0,1.6287,287.95,100960,340.27,0.015035,0.48272</datapoint>
+          <datapoint>1.5825,38.554,48.388,22.991,49.165,23.429,3.7085,0,3.7085,0,7.0986,4.5070,0.0066981,0,0.10470,0,0.10271,0.38173,0.30358,3.1261,0.14450,1673621,4.3419,0.94272,1.3013,1.3018,0.66864,0.50991,0.12271,0.16328,0.51034,0,0,0,0,0,1.1180e-4,0.025000,4.9087e-4,1.3995,0,1.6062,287.90,100873,340.24,0.0077959,0.51889</datapoint>
+          <datapoint>1.7393,46.320,49.306,-3.8602,50.186,4.0753,4.8744,0,4.8744,0,7.5670,1.3064,0.0013679,0,0.0032425,0,0.074607,0.31955,0.24920,2.8139,0.14752,1436878,1.1007,0.64593,0.85666,0.85668,0.43561,0.29823,0.12283,0.016288,0.045833,0,0,0,0,0,9.4251e-8,0.025000,4.9087e-4,1.3819,0,1.7892,287.85,100782,340.21,0.027392,0.55616</datapoint>
+          <datapoint>1.8995,54.854,61.989,156.27,63.134,159.27,6.2310,0,6.2310,0,10.235,30.797,0.0036880,0,0.068472,0,0.074083,0.31130,0.24836,2.5177,0.18559,1806415,13.538,1.0245,0.85916,0.85928,0.43506,0.29963,0.12448,0.038666,0.097320,0,0,0,0,0,2.6688e-5,0.025000,4.9087e-4,1.3838,0,1.7325,287.79,100682,340.17,0.017092,0.56248</datapoint>
+          <datapoint>2.0506,65.235,72.664,40.187,74.059,41.406,7.9953,0,7.9953,0,12.641,9.9712,3.8442e-4,0,0.086824,0,0.072875,0.31985,0.24638,2.9390,0.21774,2117329,5.1281,1.4124,0.86172,0.86172,0.43449,0.30107,0.12616,0.0045801,0.013429,0,0,0,0,0,3.1556e-5,0.025000,4.9087e-4,1.3760,0,1.6667,287.73,100560,340.13,0.025160,0.57355</datapoint>
+          <datapoint>2.2085,77.150,77.939,27.891,79.502,29.250,10.096,0,10.096,0,13.943,8.8125,0.0034207,0,-0.050774,0,0.072430,0.31935,0.24563,2.9487,0.23377,2270873,4.4324,1.6286,0.86315,0.86325,0.43417,0.30187,0.12710,0.040994,0.12089,0,0,0,0,0,-9.4077e-6,0.025000,4.9087e-4,1.3688,0,1.7414,287.65,100420,340.09,0.0085378,0.59848</datapoint>
+          <datapoint>2.3613,89.374,81.904,23.781,83.576,24.806,12.315,0,12.315,0,15.053,7.0574,6.0458e-4,0,-0.035045,0,0.072124,0.31988,0.24511,2.9906,0.24579,2385038,4.2760,1.8000,0.86428,0.86429,0.43392,0.30251,0.12785,0.0072141,0.021579,0,0,0,0,0,-4.0686e-6,0.025000,4.9087e-4,1.3698,0,1.5817,287.57,100277,340.04,0.033637,0.61687</datapoint>
+          <datapoint>2.5161,102.33,85.518,23.405,87.365,24.381,14.727,0,14.727,0,16.102,6.8322,2.8967e-4,0,0.061045,0,0.070920,0.31211,0.24302,2.7636,0.25697,2490690,4.3723,1.9670,0.86539,0.86539,0.43368,0.30313,0.12858,0.0030250,0.0083483,0,0,0,0,0,1.1448e-5,0.025000,4.9087e-4,1.3651,0,1.7664,287.48,100125,339.99,0.043399,0.62201</datapoint>
+          <datapoint>2.6993,118.39,89.668,20.922,91.684,22.009,17.796,0,17.796,0,17.374,6.8332,5.9961e-4,0,-0.0034629,0,0.070312,0.31994,0.24194,3.1198,0.26972,2610587,4.3802,2.1663,0.86672,0.86672,0.43338,0.30388,0.12946,0.0071628,0.022346,0,0,0,0,0,-3.3688e-8,0.025000,4.9087e-4,1.3601,0,1.7438,287.38,99936,339.92,0.048415,0.62694</datapoint>
+          <datapoint>2.8671,133.72,92.955,18.525,95.184,19.487,20.800,0,20.800,0,18.438,6.0448,4.4890e-4,0,0.013654,0,0.069655,0.31215,0.24075,2.8558,0.28007,2707066,4.3530,2.3345,0.86784,0.86785,0.43313,0.30451,0.13020,0.0046945,0.013406,0,0,0,0,0,4.8982e-7,0.025000,4.9087e-4,1.3544,0,2.0402,287.28,99757,339.86,0.038661,0.64828</datapoint>
+          <datapoint>3.0235,148.46,95.486,16.191,97.848,17.068,23.755,0,23.755,0,19.334,5.4001,8.8428e-4,0,0.028766,0,0.067894,0.31209,0.23745,2.9855,0.28795,2779664,4.2693,2.4660,0.86873,0.86874,0.43294,0.30501,0.13078,0.0092591,0.027641,0,0,0,0,0,2.1046e-6,0.025000,4.9087e-4,1.3515,0,2.0362,287.18,99584,339.80,0.042993,0.65363</datapoint>
+          <datapoint>3.1833,163.93,98.028,15.790,100.53,16.781,26.919,0,26.919,0,20.274,5.6832,2.7547e-4,0,-0.017309,0,0.067038,0.31223,0.23579,3.0579,0.29590,2852445,4.3603,2.6019,0.86965,0.86965,0.43274,0.30553,0.13138,0.0028821,0.0088138,0,0,0,0,0,-7.3049e-7,0.025000,4.9087e-4,1.3475,0,2.0152,287.08,99402,339.74,0.041844,0.65841</datapoint>
+          <datapoint>3.3379,179.26,100.42,15.174,103.10,16.292,30.120,0,30.120,0,21.164,5.9299,1.9508e-4,0,-0.0068830,0,0.066208,0.32011,0.23413,3.4391,0.30353,2921966,4.4362,2.7357,0.87055,0.87055,0.43254,0.30604,0.13198,0.0023329,0.0080230,0,0,0,0,0,-1.1116e-7,0.025000,4.9087e-4,1.3421,0,2.1868,286.98,99223,339.68,0.032826,0.66361</datapoint>
+          <datapoint>3.4944,195.16,102.70,13.799,105.57,14.861,33.501,0,33.501,0,22.051,5.5156,1.7883e-4,0,0.041188,0,0.065208,0.31230,0.23208,3.2090,0.31084,2988138,4.4480,2.8666,0.87144,0.87144,0.43234,0.30654,0.13256,0.0018721,0.0060038,0,0,0,0,0,3.8556e-6,0.025000,4.9087e-4,1.3375,0,2.3773,286.88,99036,339.62,0.045876,0.66840</datapoint>
+          <datapoint>3.6539,211.28,97.477,-49.156,100.23,49.970,36.987,0,36.987,0,21.186,8.9854,8.2246e-4,0,0.0048211,0,0.063810,0.31997,0.22910,3.6349,0.29519,2833580,0,2.5747,0.86956,0.86957,0.43276,0.30548,0.13133,0.0098413,0.035772,0,0,0,0,0,5.9956e-8,0.025000,4.9087e-4,1.3349,0,2.1579,286.78,98847,339.56,0.027370,0.67515</datapoint>
+          <datapoint>3.7966,224.71,90.867,-43.733,93.448,44.529,39.919,0,39.919,0,19.932,8.3830,6.1044e-4,0,0.016255,0,0.063810,0.31210,0.22910,3.3203,0.27525,2638988,0,2.2292,0.86732,0.86732,0.43325,0.30422,0.12985,0.0063844,0.021197,0,0,0,0,0,7.8414e-7,0.025000,4.9087e-4,1.3358,0,1.8779,286.69,98690,339.50,0.044566,0.68064</datapoint>
+          <datapoint>3.9585,238.86,84.191,-38.821,86.647,39.513,43.043,0,43.043,0,18.696,7.3612,8.9224e-4,0,0.041689,0,0.063810,0.31199,0.22910,3.3158,0.25526,2444213,0,1.9093,0.86522,0.86523,0.43371,0.30304,0.12847,0.0093281,0.030924,0,0,0,0,0,5.9992e-6,0.025000,4.9087e-4,1.3330,0,1.7871,286.60,98524,339.45,0.024916,0.68527</datapoint>
+          <datapoint>4.1389,253.45,77.588,-34.479,79.978,35.012,46.307,0,46.307,0,17.503,6.0836,2.5096e-4,0,-0.052551,0,0.063810,0.31991,0.22910,3.6327,0.23565,2253507,0,1.6209,0.86332,0.86332,0.43413,0.30197,0.12722,0.0029914,0.010878,0,0,0,0,0,-1.1189e-5,0.025000,4.9087e-4,1.3255,0,1.9004,286.50,98352,339.39,0.045784,0.69183</datapoint>
+          <datapoint>4.3050,265.88,72.155,-31.186,74.491,31.605,49.133,0,49.133,0,16.531,5.1295,0.0012107,0,-0.094254,0,0.063810,0.31971,0.22910,3.6244,0.21952,2096873,0,1.4021,0.86187,0.86188,0.43446,0.30115,0.12626,0.014446,0.052398,0,0,0,0,0,-4.1491e-5,0.025000,4.9087e-4,1.3184,0,1.9804,286.42,98207,339.34,0.022586,0.70527</datapoint>
+          <datapoint>4.4533,276.25,67.736,-28.600,70.012,28.987,51.528,0,51.528,0,15.762,4.7156,7.5752e-4,0,-0.086572,0,0.063810,0.31976,0.22910,3.6265,0.20634,1969173,0,1.2357,0.86077,0.86077,0.43470,0.30053,0.12554,0.0090271,0.032776,0,0,0,0,0,-3.9625e-5,0.025000,4.9087e-4,1.3143,0,1.9456,286.35,98085,339.30,0.026695,0.71677</datapoint>
+          <datapoint>4.6005,285.91,63.696,-26.341,65.935,26.733,53.798,0,53.798,0,15.082,4.5590,7.0476e-4,0,0.046591,0,0.063810,0.31188,0.22910,3.3113,0.19435,1853102,0,1.0937,0.85982,0.85982,0.43491,0.30000,0.12491,0.0073478,0.024318,0,0,0,0,0,1.2940e-5,0.025000,4.9087e-4,1.3101,0,1.9552,286.29,97972,339.26,0.041646,0.72301</datapoint>
+          <datapoint>4.7751,296.65,59.285,-24.138,61.530,24.483,56.366,0,56.366,0,14.355,4.0939,6.6915e-4,0,-0.0019250,0,0.063810,0.31186,0.22910,3.3105,0.18139,1727819,0,0.95042,0.85886,0.85886,0.43512,0.29946,0.12428,0.0069732,0.023084,0,0,0,0,0,-2.5365e-8,0.025000,4.9087e-4,1.3005,0,2.1156,286.22,97846,339.22,0.036608,0.74544</datapoint>
+          <datapoint>4.9253,305.28,55.782,-22.583,57.961,22.830,58.477,0,58.477,0,13.783,3.3469,0.0014489,0,-0.0077604,0,0.063810,0.31957,0.22910,3.6189,0.17088,1626494,0,0.84196,0.85813,0.85815,0.43528,0.29905,0.12380,0.017266,0.062486,0,0,0,0,0,-4.6457e-7,0.025000,4.9087e-4,1.2943,0,1.9601,286.17,97745,339.19,0.034789,0.75045</datapoint>
+          <datapoint>5.0714,313.20,52.604,-21.098,54.762,21.358,60.453,0,60.453,0,13.261,3.3236,4.3325e-4,0,0.11043,0,0.063810,0.31187,0.22910,3.3108,0.16147,1535747,0,0.75044,0.85751,0.85751,0.43542,0.29870,0.12339,0.0045101,0.014826,0,0,0,0,0,1.0539e-4,0.025000,4.9087e-4,1.2896,0,1.9608,286.11,97652,339.16,0.031642,0.75698</datapoint>
+          <datapoint>5.2372,321.63,49.220,-19.586,51.401,19.888,62.610,0,62.610,0,12.754,3.4515,0.0042116,0,0.061384,0,0.063810,0.31114,0.22910,3.2817,0.15157,1440531,0,0.66026,0.85690,0.85706,0.43556,0.29836,0.12299,0.044157,0.14487,0,0,0,0,0,3.6960e-5,0.025000,4.9087e-4,1.2827,0,2.0602,286.06,97553,339.12,0.016069,0.76434</datapoint>
+          <datapoint>5.3856,328.73,46.374,-18.690,48.600,18.867,64.470,0,64.470,0,12.329,2.5758,0.0016500,0,-0.051640,0,0.063810,0.31949,0.22910,3.6158,0.14332,1361252,0,0.58942,0.85642,0.85645,0.43566,0.29809,0.12267,0.019654,0.071094,0,0,0,0,0,-2.9260e-5,0.025000,4.9087e-4,1.2653,0,2.2108,286.01,97470,339.09,0.025690,0.77288</datapoint>
+          <datapoint>5.5503,336.12,43.394,-17.669,45.587,17.794,66.463,0,66.463,0,11.899,2.1059,0.0038138,0,-0.017256,0,0.063810,0.31910,0.22910,3.5999,0.13445,1276116,0,0.51800,0.85594,0.85606,0.43577,0.29782,0.12235,0.045588,0.16412,0,0,0,0,0,-3.7133e-6,0.025000,4.9087e-4,1.2556,0,2.0699,285.97,97383,339.06,0.018145,0.79182</datapoint>
+          <datapoint>5.7095,342.81,40.682,-16.605,42.881,16.766,68.326,0,68.326,0,11.498,2.3222,7.1633e-4,0,0.11499,0,0.063810,0.31176,0.22910,3.3064,0.12648,1199727,0,0.45775,0.85553,0.85553,0.43586,0.29759,0.12208,0.0074547,0.024462,0,0,0,0,0,1.8637e-4,0.025000,4.9087e-4,1.2499,0,2.0580,285.92,97304,339.04,0.032796,0.80034</datapoint>
+          <datapoint>5.8636,348.88,38.180,-15.934,40.450,16.039,70.071,0,70.071,0,11.166,1.8318,0.0035259,0,-0.076816,0,0.063810,0.31913,0.22910,3.6012,0.11932,1131174,0,0.40697,0.85518,0.85529,0.43594,0.29739,0.12185,0.042112,0.15175,0,0,0,0,0,-9.3460e-5,0.025000,4.9087e-4,1.2307,0,2.1942,285.88,97233,339.01,0.026084,0.80495</datapoint>
+          <datapoint>6.0197,354.65,35.768,-15.070,38.123,15.217,71.789,0,71.789,0,10.838,2.1146,0.0026179,0,0.12375,0,0.063810,0.31138,0.22910,3.2914,0.11246,1065612,0,0.36114,0.85487,0.85493,0.43601,0.29722,0.12164,0.027338,0.089708,0,0,0,0,0,2.7306e-4,0.025000,4.9087e-4,1.2200,0,2.3549,285.84,97166,338.99,0.036593,0.81867</datapoint>
+          <datapoint>6.1679,359.79,33.568,-14.591,35.943,14.678,73.374,0,73.374,0,10.571,1.5920,0.0033713,0,-0.058975,0,0.063810,0.31914,0.22910,3.6017,0.10604,1004262,0,0.32076,0.85459,0.85469,0.43607,0.29706,0.12146,0.040244,0.14502,0,0,0,0,0,-6.9768e-5,0.025000,4.9087e-4,1.2019,0,2.2772,285.81,97105,338.97,0.030161,0.85353</datapoint>
+          <datapoint>6.3148,364.57,31.475,-13.862,33.840,13.989,74.910,0,74.910,0,10.326,1.8851,0.0053329,0,0.025379,0,0.063810,0.31086,0.22910,3.2706,0.099836,945127,0,0.28415,0.85434,0.85459,0.43612,0.29692,0.12130,0.055975,0.18305,0,0,0,0,0,1.4577e-5,0.025000,4.9087e-4,1.2001,0,2.1012,285.78,97049,338.95,0.030042,0.85816</datapoint>
+          <datapoint>6.4583,368.94,29.520,-13.460,31.878,13.546,76.372,0,76.372,0,10.072,1.5206,7.4681e-4,0,0.17262,0,0.063810,0.31171,0.22910,3.3046,0.094053,890023,0,0.25191,0.85412,0.85413,0.43617,0.29680,0.12115,0.0077675,0.024909,0,0,0,0,0,7.5993e-4,0.025000,4.9087e-4,1.1845,0,1.9601,285.75,96998,338.94,0.036540,0.86434</datapoint>
+          <datapoint>6.6242,373.65,27.326,-12.997,29.853,13.068,78.023,0,78.023,0,9.8334,1.3637,7.2480e-4,0,-0.16653,0,0.063810,0.31959,0.22910,3.6199,0.088085,833182,0,0.22077,0.85391,0.85391,0.43622,0.29668,0.12101,0.0086100,0.031974,0,0,0,0,0,-8.0640e-4,0.025000,4.9087e-4,1.1556,0,2.1885,285.72,96943,338.92,0.046768,0.86971</datapoint>
+          <datapoint>6.7671,377.43,25.495,-12.590,28.130,12.659,79.415,0,79.415,0,9.6483,1.3171,6.3483e-4,0,0.12798,0,0.063810,0.31172,0.22910,3.3051,0.083003,784845,0,0.19591,0.85374,0.85374,0.43626,0.29658,0.12090,0.0066003,0.021278,0,0,0,0,0,5.3645e-4,0.025000,4.9087e-4,1.1351,0,2.2387,285.70,96898,338.90,0.048892,0.87336</datapoint>
+          <datapoint>6.9147,381.05,23.660,-12.196,26.326,12.261,80.826,0,80.826,0,9.4733,1.2535,0.0027608,0,0.091870,0,0.063810,0.31132,0.22910,3.2889,0.077684,734306,0,0.17151,0.85357,0.85363,0.43630,0.29649,0.12078,0.028822,0.094476,0,0,0,0,0,3.1560e-4,0.025000,4.9087e-4,1.1197,0,2.0701,285.67,96856,338.89,0.049620,0.87734</datapoint>
+          <datapoint>7.0596,384.36,21.920,-11.861,24.653,11.920,82.186,0,82.186,0,9.2906,1.1775,0.0042005,0,0.18779,0,0.063810,0.31105,0.22910,3.2780,0.072750,687456,0,0.15034,0.85342,0.85357,0.43633,0.29641,0.12069,0.043973,0.14264,0,0,0,0,0,0.0015036,0.025000,4.9087e-4,1.0997,0,1.9910,285.65,96817,338.87,0.046912,0.88116</datapoint>
+          <datapoint>7.2028,387.38,20.239,-11.605,23.106,11.651,83.505,0,83.505,0,9.1335,1.0417,0.0021583,0,0.23249,0,0.063810,0.31142,0.22910,3.2931,0.068186,644149,0,0.13198,0.85330,0.85334,0.43636,0.29633,0.12060,0.022503,0.071482,0,0,0,0,0,0.0026237,0.025000,4.9087e-4,1.0696,0,2.0125,285.63,96782,338.86,0.048941,0.88462</datapoint>
+          <datapoint>7.3505,390.24,18.544,-11.366,21.591,11.404,84.843,0,84.843,0,8.9872,0.92647,1.1215e-4,0,0.25375,0,0.063810,0.31181,0.22910,3.3084,0.063717,601773,0,0.11519,0.85318,0.85318,0.43638,0.29627,0.12053,0.0011645,2.7285e-4,0,0,0,0,0,0.0035798,0.025000,4.9087e-4,1.0332,0,2.0704,285.61,96748,338.85,0.049637,0.88848</datapoint>
+          <datapoint>7.4997,392.88,16.869,-11.109,20.162,11.145,86.174,0,86.174,0,8.8479,0.89979,0.0025636,0,0.28274,0,0.063810,0.31134,0.22910,3.2898,0.059501,561824,0,0.10041,0.85308,0.85313,0.43640,0.29621,0.12046,0.026747,0.082897,0,0,0,0,0,0.0050968,0.025000,4.9087e-4,0.99380,0,2.1937,285.60,96717,338.84,0.049875,0.89239</datapoint>
+          <datapoint>7.6494,395.28,15.228,-10.879,18.853,10.915,87.488,0,87.488,0,8.7065,0.87895,0.0053729,0,0.36390,0,0.063810,0.31082,0.22910,3.2688,0.055642,525269,0,0.087796,0.85299,0.85324,0.43642,0.29616,0.12040,0.056366,0.17459,0,0,0,0,0,0.0096548,0.025000,4.9087e-4,0.94561,0,2.4094,285.58,96689,338.83,0.049957,0.89593</datapoint>
+          <datapoint>7.7994,397.44,13.601,-10.755,17.436,10.779,88.784,0,88.784,0,8.5964,0.70980,0.0022036,0,-0.33017,0,0.063810,0.31931,0.22910,3.6083,0.051461,485699,0,0.075051,0.85290,0.85294,0.43644,0.29611,0.12034,0.026233,0.10395,0,0,0,0,0,-0.0092927,0.025000,4.9087e-4,0.89254,0,2.3138,285.57,96664,338.82,0.049985,0.89978</datapoint>
+          <datapoint>7.9493,399.36,12.008,-10.509,16.223,10.536,90.065,0,90.065,0,8.4839,0.75461,0.0080849,0,0.36097,0,0.063810,0.31031,0.22910,3.2486,0.047882,451838,0,0.064993,0.85283,0.85339,0.43646,0.29607,0.12030,0.085261,0.26415,0,0,0,0,0,0.012830,0.025000,4.9087e-4,0.84146,0,2.4242,285.55,96641,338.82,0.049995,0.90322</datapoint>
+          <datapoint>8.0993,401.05,10.441,-10.373,14.885,10.393,91.330,0,91.330,0,8.3807,0.65619,0.0066138,0,0.39885,0,0.063810,0.31058,0.22910,3.2593,0.043933,414512,0,0.054688,0.85276,0.85314,0.43647,0.29603,0.12025,0.069546,0.20806,0,0,0,0,0,0.018608,0.025000,4.9087e-4,0.78403,0,2.2282,285.54,96621,338.81,0.049998,0.90671</datapoint>
+          <datapoint>8.2479,402.48,8.9150,-10.188,13.781,10.209,92.568,0,92.568,0,8.2811,0.65396,0.016533,0,0.47397,0,0.063810,0.30878,0.22910,3.1875,0.040674,383714,0,0.046970,0.85271,0.85500,0.43649,0.29600,0.12022,0.17720,0.53418,0,0,0,0,0,0.030657,0.025000,4.9087e-4,0.72008,0,2.2272,285.53,96605,338.80,0.049027,0.91056</datapoint>
+          <datapoint>8.3958,403.69,7.4193,-10.048,12.774,10.067,93.785,0,93.785,0,8.1869,0.61950,0.023276,0,0.57088,0,0.063810,0.30760,0.22910,3.1402,0.037705,355664,0,0.040458,0.85266,0.85714,0.43650,0.29598,0.12018,0.25269,0.74174,0,0,0,0,0,0.051756,0.025000,4.9087e-4,0.64298,0,2.2122,285.53,96590,338.80,0.049534,0.91404</datapoint>
+          <datapoint>8.5728,404.85,5.6543,-9.9370,11.714,9.9524,95.224,0,95.224,0,8.0801,0.55408,0.025991,0,0.70499,0,0.063810,0.30713,0.22910,3.1215,0.034577,326118,0,0.034380,0.86067,0.86626,0.44456,0.29595,0.12016,0.28362,0.79144,0,0,0,0,0,0.093862,0.025000,4.9087e-4,0.52970,0,2.1793,285.52,96577,338.79,0.045844,0.91902</datapoint>
+          <datapoint>8.7238,405.47,2.2939,-19.435,7.0674,31.069,96.191,0,96.191,0,3.9883,24.239,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.020860,196741,0,1.6640,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1907,285.51,96570,338.79,0.016093,0.92111</datapoint>
+          <datapoint>8.8747,405.65,0.22019,-11.171,4.3460,14.839,96.605,0,96.605,0,1.8262,9.7678,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012828,120982,0,0.62924,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1495,285.51,96568,338.79,0.033695,0.92178</datapoint>
+          <datapoint>9.0519,405.54,-1.3927,-8.2001,3.1994,9.6533,96.813,0,96.813,0,0.64809,5.0937,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.0094435,89062,0,0.34101,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1375,285.51,96568,338.79,0.051796,0.92347</datapoint>
+          <datapoint>9.2379,405.16,-2.6358,-5.9515,3.3208,7.3230,96.854,0,96.854,0,0.19075,4.2670,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.0098017,92444,0,0.36738,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.3605,285.52,96571,338.79,0.068278,0.95248</datapoint>
+          <datapoint>9.4079,404.64,-3.4227,-4.2969,3.4979,5.3670,96.766,0,96.766,0,0.80745,3.2158,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.010325,97378,0,0.40764,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2686,285.52,96576,338.79,0.093161,0.95269</datapoint>
+          <datapoint>9.5259,404.21,-3.7976,-3.1770,3.7154,4.2374,96.651,0,96.651,0,1.1383,2.8039,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.010966,103435,0,0.45992,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2528,285.52,96579,338.80,0.11800,0.95280</datapoint>
+          <datapoint>9.7101,403.48,-4.1847,-2.1020,3.8906,2.7146,96.412,0,96.412,0,1.4547,1.7179,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011484,108317,0,0.50435,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9839,285.52,96584,338.80,0.18419,0.95291</datapoint>
+          <datapoint>10.155,401.55,-4.4631,-0.62505,4.2062,1.1229,95.672,0,95.672,0,1.8701,0.93290,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012415,117112,0,0.58954,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8794,285.53,96593,338.80,0.44526,0.95323</datapoint>
+          <datapoint>10.655,399.39,-4.1697,0.58678,4.4631,0.58683,94.738,0,94.738,0,1.8660,0.0081671,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013173,124281,0,0.66386,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8666,285.54,96615,338.81,0.50000,0.95335</datapoint>
+          <datapoint>11.103,397.46,-4.4793,-0.69225,4.1889,1.1177,93.815,0,93.815,0,2.2586,0.87753,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012363,116667,0,0.58493,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2670,285.55,96641,338.82,0.44734,0.95346</datapoint>
+          <datapoint>11.603,395.30,-4.1456,0.66743,4.4795,0.67317,92.697,0,92.697,0,2.2147,0.087671,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013221,124780,0,0.66903,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2211,285.57,96663,338.82,0.50000,0.95357</datapoint>
+          <datapoint>12.103,393.13,-4.5550,-0.81880,4.1531,0.98097,91.657,0,91.657,0,1.9446,0.54025,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012257,115708,0,0.57520,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9658,285.58,96689,338.83,0.50000,0.95368</datapoint>
+          <datapoint>12.464,391.55,-4.1701,1.0646,4.5700,1.3830,90.896,0,90.896,0,2.2638,0.88273,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013487,127345,0,0.69663,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.3141,285.59,96714,338.84,0.36154,0.95413</datapoint>
+          <datapoint>12.964,389.37,-4.5324,-0.72457,4.1704,0.73148,89.752,0,89.752,0,2.3139,0.10034,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012308,116225,0,0.58022,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.3098,285.60,96733,338.85,0.50000,0.95427</datapoint>
+          <datapoint>13.335,387.76,-4.1742,0.96637,4.5496,1.3490,88.959,0,88.959,0,1.9651,0.94124,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013427,126817,0,0.69070,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9183,285.62,96758,338.86,0.37065,0.95438</datapoint>
+          <datapoint>13.835,385.59,-4.5181,-0.68770,4.1816,0.87640,87.909,0,87.909,0,2.2367,0.54327,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012340,116573,0,0.58356,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2135,285.63,96777,338.86,0.50000,0.95449</datapoint>
+          <datapoint>14.335,383.44,-4.0822,0.87182,4.5224,0.98860,86.848,0,86.848,0,2.0036,0.46612,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013345,126095,0,0.68269,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0397,285.64,96803,338.87,0.50000,0.95460</datapoint>
+          <datapoint>14.782,381.50,-4.5714,-1.0946,4.0836,1.1186,85.976,0,85.976,0,1.9006,0.23054,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012050,113880,0,0.55676,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8957,285.66,96828,338.88,0.44698,0.95471</datapoint>
+          <datapoint>15.228,379.58,-4.0722,1.1200,4.5715,1.1218,85.122,0,85.122,0,1.9289,0.063565,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013490,127507,0,0.69789,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9272,285.67,96851,338.89,0.44573,0.95483</datapoint>
+          <datapoint>15.664,377.69,-4.5677,-1.1353,4.0729,1.1458,84.266,0,84.266,0,1.9965,0.15478,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012018,113617,0,0.55406,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0015,285.68,96873,338.89,0.43636,0.95494</datapoint>
+          <datapoint>16.116,375.74,-4.0677,1.1058,4.5677,1.1058,83.362,0,83.362,0,2.0006,0.0091649,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013478,127438,0,0.69698,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0003,285.70,96895,338.90,0.45215,0.95505</datapoint>
+          <datapoint>16.534,373.94,-4.5471,-1.1463,4.0708,1.1954,82.496,0,82.496,0,2.1425,0.33919,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012011,113593,0,0.55369,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1597,285.71,96918,338.91,0.41827,0.95516</datapoint>
+          <datapoint>17.025,371.83,-4.0508,1.0125,4.5474,1.0200,81.431,0,81.431,0,2.2030,0.12338,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013418,126912,0,0.69107,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1943,285.72,96939,338.92,0.49020,0.95527</datapoint>
+          <datapoint>17.400,370.23,-4.5018,-1.2022,4.0598,1.3327,80.645,0,80.645,0,1.9872,0.57510,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011979,113323,0,0.55093,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9325,285.73,96964,338.92,0.37518,0.95538</datapoint>
+          <datapoint>17.900,368.08,-4.0989,0.80582,4.5039,0.86602,79.691,0,79.691,0,1.8286,0.31725,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013288,125733,0,0.67814,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8528,285.74,96983,338.93,0.50000,0.95553</datapoint>
+          <datapoint>18.369,366.04,-4.5712,-1.0057,4.1022,1.0648,78.871,0,78.871,0,1.6643,0.34982,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012103,114539,0,0.56269,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.6658,285.76,97008,338.94,0.46958,0.95565</datapoint>
+          <datapoint>18.744,364.41,-4.1385,1.1555,4.5797,1.3353,78.201,0,78.201,0,1.9149,0.66916,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013511,127893,0,0.70145,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9431,285.77,97032,338.95,0.37445,0.95576</datapoint>
+          <datapoint>19.223,362.34,-4.5288,-0.81503,4.1494,1.0442,77.209,0,77.209,0,2.2274,0.65279,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012242,115891,0,0.57592,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2150,285.78,97051,338.95,0.47882,0.95587</datapoint>
+          <datapoint>19.723,360.19,-4.0600,0.93751,4.5291,0.94656,76.112,0,76.112,0,2.1622,0.13056,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013362,126518,0,0.68629,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1725,285.79,97075,338.96,0.50000,0.95598</datapoint>
+          <datapoint>20.126,358.46,-4.5285,-1.1616,4.0651,1.2396,75.275,0,75.275,0,1.9876,0.43271,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011992,113575,0,0.55298,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9592,285.81,97101,338.97,0.40336,0.95609</datapoint>
+          <datapoint>20.587,356.47,-4.0892,0.95222,4.5338,1.0837,74.302,0,74.302,0,2.2263,0.51729,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013375,126688,0,0.68797,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2052,285.82,97121,338.98,0.46140,0.95620</datapoint>
+          <datapoint>21.061,354.41,-4.5831,-1.0429,4.0899,1.0559,73.267,0,73.267,0,2.1482,0.16492,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012065,114303,0,0.55997,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1494,285.83,97144,338.98,0.47355,0.95632</datapoint>
+          <datapoint>21.445,352.74,-4.1167,1.2147,4.5872,1.3025,72.477,0,72.477,0,1.9678,0.47006,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013532,128223,0,0.70456,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9529,285.85,97168,338.99,0.38389,0.95643</datapoint>
+          <datapoint>21.945,350.57,-4.5768,-0.92019,4.1178,0.94272,71.518,0,71.518,0,1.8653,0.20486,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012147,115118,0,0.56785,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8730,285.86,97188,339.00,0.50000,0.95654</datapoint>
+          <datapoint>22.359,348.78,-4.0875,1.1818,4.5780,1.2074,70.725,0,70.725,0,1.9679,0.24761,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013504,128005,0,0.70200,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9684,285.87,97213,339.01,0.41410,0.95665</datapoint>
+          <datapoint>22.833,346.72,-4.5822,-1.0439,4.0881,1.0549,69.809,0,69.809,0,1.8957,0.15223,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012059,114323,0,0.55989,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8969,285.88,97234,339.02,0.47397,0.95676</datapoint>
+          <datapoint>23.158,345.30,-4.1770,1.2455,4.5974,1.5369,69.145,0,69.145,0,2.1886,0.90043,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013561,128586,0,0.70823,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2687,285.90,97259,339.02,0.32532,0.95687</datapoint>
+          <datapoint>23.658,343.13,-4.5037,-0.65336,4.1771,0.65487,68.045,0,68.045,0,2.2109,0.044448,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012321,116844,0,0.58473,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2089,285.91,97275,339.03,0.50000,0.95698</datapoint>
+          <datapoint>24.137,341.07,-4.0944,0.85499,4.5108,1.0445,67.055,0,67.055,0,1.9237,0.59993,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013305,126201,0,0.68205,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9577,285.92,97301,339.04,0.47871,0.95710</datapoint>
+          <datapoint>24.603,339.05,-4.5606,-1.0002,4.0984,1.0727,66.116,0,66.116,0,2.1044,0.38773,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012088,114681,0,0.56314,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1037,285.93,97325,339.05,0.46611,0.95720</datapoint>
+          <datapoint>25.052,337.12,-4.0612,1.1136,4.5607,1.1148,65.167,0,65.167,0,2.1276,0.051832,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013451,127637,0,0.69748,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1260,285.95,97348,339.05,0.44851,0.95732</datapoint>
+          <datapoint>25.397,335.65,-4.4408,-1.0976,4.0847,1.4454,64.375,0,64.375,0,2.4530,0.94051,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012047,114335,0,0.55960,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.5657,285.96,97371,339.06,0.34591,0.95743</datapoint>
+          <datapoint>25.897,333.50,-4.1542,0.57336,4.4507,0.89966,63.235,0,63.235,0,2.1063,0.69328,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013126,124594,0,0.66448,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1567,285.97,97388,339.07,0.50000,0.95754</datapoint>
+          <datapoint>26.397,331.33,-4.5257,-0.74304,4.1542,0.74390,62.178,0,62.178,0,2.1243,0.035828,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012252,116313,0,0.57901,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1227,285.98,97414,339.08,0.50000,0.95765</datapoint>
+          <datapoint>26.897,329.19,-4.0483,0.95475,4.5257,0.95476,61.115,0,61.115,0,2.1267,0.0047927,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013347,126736,0,0.68734,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1263,286.00,97439,339.08,0.50000,0.95776</datapoint>
+          <datapoint>27.297,327.47,-4.5225,-1.1869,4.0526,1.2514,60.297,0,60.297,0,1.9682,0.39665,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011951,113507,0,0.55126,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9406,286.01,97464,339.09,0.39954,0.95787</datapoint>
+          <datapoint>27.797,325.33,-4.0505,0.94401,4.5226,0.94657,59.322,0,59.322,0,1.9334,0.069626,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013337,126689,0,0.68667,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9389,286.02,97484,339.10,0.50000,0.95798</datapoint>
+          <datapoint>28.195,323.63,-4.5168,-1.1715,4.0561,1.2562,58.516,0,58.516,0,2.1139,0.45354,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011961,113640,0,0.55242,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1459,286.04,97509,339.11,0.39803,0.95809</datapoint>
+          <datapoint>28.695,321.48,-4.0553,0.92291,4.5178,0.94986,57.431,0,57.431,0,2.2262,0.22466,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013322,126592,0,0.68546,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2084,286.05,97529,339.11,0.50000,0.95820</datapoint>
+          <datapoint>29.126,319.63,-4.5546,-1.1593,4.0554,1.1609,56.467,0,56.467,0,2.2526,0.061273,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011959,113656,0,0.55245,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2549,286.06,97555,339.12,0.43069,0.95832</datapoint>
+          <datapoint>29.530,317.88,-4.1028,1.1183,4.5600,1.2376,55.600,0,55.600,0,2.0385,0.52999,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013446,127815,0,0.69860,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0319,286.07,97576,339.13,0.40402,0.95843</datapoint>
+          <datapoint>30.029,315.71,-4.5753,-0.94650,4.1056,1.0016,54.623,0,54.623,0,1.8749,0.32760,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012106,115095,0,0.56641,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8870,286.08,97597,339.14,0.49920,0.95853</datapoint>
+          <datapoint>30.405,314.08,-4.1158,1.2215,4.5805,1.3293,53.881,0,53.881,0,2.0722,0.52433,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013506,128429,0,0.70515,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0923,286.10,97622,339.15,0.37614,0.95865</datapoint>
+          <datapoint>30.905,311.91,-4.5604,-0.88901,4.1176,0.92642,52.877,0,52.877,0,1.9419,0.26061,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012141,115466,0,0.56993,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9520,286.11,97641,339.15,0.50000,0.95875</datapoint>
+          <datapoint>31.282,310.27,-4.1229,1.1599,4.5682,1.3258,52.099,0,52.099,0,2.1840,0.64216,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013469,128123,0,0.70163,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2086,286.12,97667,339.16,0.37713,0.95887</datapoint>
+          <datapoint>31.782,308.10,-4.5523,-0.85870,4.1230,0.85983,51.002,0,51.002,0,2.2061,0.044191,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012156,115652,0,0.57163,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2044,286.13,97686,339.17,0.50000,0.95898</datapoint>
+          <datapoint>32.231,306.17,-4.0553,1.1071,4.5525,1.1137,49.999,0,49.999,0,2.2607,0.12165,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013422,127724,0,0.69710,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2568,286.15,97711,339.18,0.44894,0.95909</datapoint>
+          <datapoint>32.655,304.35,-4.5389,-1.1418,4.0577,1.1804,49.068,0,49.068,0,2.1339,0.29936,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011963,113857,0,0.55389,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1208,286.16,97734,339.18,0.42359,0.95920</datapoint>
+          <datapoint>33.123,302.34,-4.0480,1.0482,4.5397,1.0676,48.047,0,48.047,0,2.2287,0.20243,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013384,127401,0,0.69342,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2185,286.17,97755,339.19,0.46834,0.95931</datapoint>
+          <datapoint>33.450,300.96,-4.4121,-1.1125,4.0772,1.5277,47.373,0,47.373,0,1.8861,1.0469,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012020,114439,0,0.55943,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7419,286.18,97779,339.20,0.32729,0.95942</datapoint>
+          <datapoint>33.892,299.06,-4.1910,0.50090,4.4334,1.1328,46.442,0,46.442,0,2.3345,1.0160,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013070,124453,0,0.66156,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.3205,286.19,97795,339.20,0.44140,0.95957</datapoint>
+          <datapoint>34.392,296.90,-4.4595,-0.53696,4.1971,0.73345,45.337,0,45.337,0,2.0847,0.49961,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012373,117835,0,0.59301,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1089,286.21,97818,339.21,0.50000,0.95968</datapoint>
+          <datapoint>34.892,294.75,-4.1209,0.67712,4.4595,0.67725,44.296,0,44.296,0,2.0779,0.013690,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013146,125224,0,0.66962,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0789,286.22,97843,339.22,0.50000,0.95979</datapoint>
+          <datapoint>35.392,292.58,-4.5478,-0.85377,4.1210,0.85541,43.264,0,43.264,0,2.0515,0.052866,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012148,115739,0,0.57195,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0536,286.23,97868,339.23,0.50000,0.95990</datapoint>
+          <datapoint>35.771,290.94,-4.1218,1.1232,4.5569,1.3184,42.436,0,42.436,0,2.3133,0.69033,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013433,128002,0,0.69948,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.3384,286.25,97893,339.24,0.37925,0.96001</datapoint>
+          <datapoint>36.271,288.77,-4.5424,-0.84120,4.1243,0.89760,41.319,0,41.319,0,2.1567,0.31314,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012157,115868,0,0.57309,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1695,286.26,97913,339.24,0.50000,0.96012</datapoint>
+          <datapoint>36.608,287.31,-4.1640,1.1224,4.5602,1.4830,40.647,0,40.647,0,1.8299,0.96933,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013442,128135,0,0.70077,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7542,286.27,97938,339.25,0.33714,0.96023</datapoint>
+          <datapoint>37.108,285.14,-4.4931,-0.65808,4.1644,0.66914,39.747,0,39.747,0,1.7693,0.12117,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012275,117026,0,0.58447,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7748,286.28,97955,339.26,0.50000,0.96034</datapoint>
+          <datapoint>37.608,283.00,-4.0685,0.84908,4.4936,0.86404,38.842,0,38.842,0,1.8494,0.16010,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013245,126298,0,0.68067,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8367,286.30,97981,339.27,0.50000,0.96046</datapoint>
+          <datapoint>38.024,281.22,-4.5056,-1.0511,4.0775,1.2025,38.023,0,38.023,0,2.0922,0.58410,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012018,114625,0,0.56059,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1205,286.31,98006,339.27,0.41581,0.96057</datapoint>
+          <datapoint>38.524,279.08,-4.0470,0.91709,4.5079,0.98117,36.933,0,36.933,0,2.2666,0.34876,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013287,126742,0,0.68530,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2386,286.32,98027,339.28,0.50000,0.96068</datapoint>
+          <datapoint>38.924,277.37,-4.5050,-1.1449,4.0538,1.2500,36.067,0,36.067,0,2.0659,0.50185,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011948,113993,0,0.55429,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0324,286.34,98052,339.29,0.39999,0.96079</datapoint>
+          <datapoint>39.424,275.23,-4.0475,0.91501,4.5060,0.94355,35.062,0,35.062,0,1.9507,0.23035,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013280,126726,0,0.68496,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9692,286.35,98072,339.30,0.50000,0.96090</datapoint>
+          <datapoint>39.842,273.44,-4.5278,-1.1479,4.0504,1.1949,34.275,0,34.275,0,1.8119,0.33159,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011937,113932,0,0.55357,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7959,286.36,98097,339.30,0.41845,0.96102</datapoint>
+          <datapoint>40.233,271.75,-4.1173,1.0503,4.5380,1.2792,33.511,0,33.511,0,2.0974,0.73027,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013374,127666,0,0.69500,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1162,286.37,98118,339.31,0.39087,0.96113</datapoint>
+          <datapoint>40.733,269.58,-4.5408,-0.84699,4.1186,0.87534,32.490,0,32.490,0,1.9869,0.22095,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012138,115880,0,0.57254,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9960,286.38,98138,339.32,0.50000,0.96124</datapoint>
+          <datapoint>41.174,267.69,-4.0580,1.0961,4.5425,1.1351,31.586,0,31.586,0,2.1167,0.29475,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013387,127829,0,0.69661,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1096,286.40,98163,339.33,0.44051,0.96136</datapoint>
+          <datapoint>41.615,265.79,-4.5422,-1.0984,4.0601,1.1341,30.626,0,30.626,0,2.2412,0.28235,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011965,114272,0,0.55662,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2482,286.41,98185,339.33,0.44088,0.96147</datapoint>
+          <datapoint>42.046,263.94,-4.0642,1.1082,4.5444,1.1591,29.690,0,29.690,0,2.0947,0.33977,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013392,127922,0,0.69747,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1000,286.42,98208,339.34,0.43136,0.96158</datapoint>
+          <datapoint>42.503,261.97,-4.5532,-1.0701,4.0656,1.0941,28.709,0,28.709,0,2.1990,0.22824,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011980,114460,0,0.55832,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2007,286.43,98229,339.35,0.45698,0.96169</datapoint>
+          <datapoint>42.861,260.41,-4.1286,1.1843,4.5634,1.3946,27.968,0,27.968,0,1.9349,0.73647,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013447,128495,0,0.70356,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8942,286.45,98253,339.36,0.35852,0.96181</datapoint>
+          <datapoint>43.361,258.25,-4.5185,-0.77988,4.1335,0.89629,26.946,0,26.946,0,2.1558,0.44172,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012180,116405,0,0.57734,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1367,286.46,98271,339.36,0.50000,0.96192</datapoint>
+          <datapoint>43.822,256.28,-4.0558,1.0050,4.5218,1.0859,25.997,0,25.997,0,1.9664,0.41122,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013324,127361,0,0.69104,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9841,286.47,98296,339.37,0.46046,0.96204</datapoint>
+          <datapoint>44.271,254.34,-4.5500,-1.1011,4.0565,1.1141,25.131,0,25.131,0,1.8905,0.16921,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011953,114274,0,0.55626,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8877,286.48,98319,339.38,0.44881,0.96215</datapoint>
+          <datapoint>44.705,252.48,-4.0500,1.1523,4.5500,1.1525,24.313,0,24.313,0,1.8828,0.017806,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013406,128194,0,0.69995,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8831,286.50,98342,339.39,0.43385,0.96226</datapoint>
+          <datapoint>45.149,250.57,-4.5498,-1.1242,4.0500,1.1246,23.473,0,23.473,0,1.8961,0.029981,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011933,114126,0,0.55468,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8967,286.51,98364,339.39,0.44461,0.96238</datapoint>
+          <datapoint>45.579,248.72,-4.0527,1.1565,4.5501,1.1631,22.669,0,22.669,0,1.8427,0.12432,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013406,128237,0,0.70025,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8446,286.52,98386,339.40,0.42988,0.96249</datapoint>
+          <datapoint>46.010,246.87,-4.5282,-1.1022,4.0561,1.1591,21.841,0,21.841,0,1.9974,0.35865,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011951,114331,0,0.55656,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0094,286.53,98408,339.41,0.43139,0.96260</datapoint>
+          <datapoint>46.430,245.06,-4.0799,1.0681,4.5335,1.1915,20.956,0,20.956,0,2.2190,0.52804,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013357,127805,0,0.69539,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2170,286.55,98430,339.42,0.41963,0.96271</datapoint>
+          <datapoint>46.923,242.93,-4.5656,-0.98569,4.0815,1.0147,19.833,0,19.833,0,2.3377,0.24092,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012025,115078,0,0.56373,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.3303,286.56,98451,339.42,0.49275,0.96283</datapoint>
+          <datapoint>47.309,241.26,-4.0845,1.2459,4.5680,1.2946,18.904,0,18.904,0,2.4736,0.35195,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013458,128816,0,0.70627,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.4829,286.57,98476,339.43,0.38621,0.96384</datapoint>
+          <datapoint>47.809,239.10,-4.5666,-0.96419,4.0854,0.98161,17.690,0,17.690,0,2.3816,0.18408,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012036,115222,0,0.56501,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.3887,286.58,98495,339.44,0.50000,0.96406</datapoint>
+          <datapoint>48.165,237.55,-4.1163,1.2657,4.5735,1.4055,16.882,0,16.882,0,2.1642,0.61106,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013473,129012,0,0.70825,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1298,286.60,98521,339.45,0.35576,0.96417</datapoint>
+          <datapoint>48.665,235.39,-4.5260,-0.81946,4.1186,0.87227,15.837,0,15.837,0,2.0147,0.29889,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012133,116193,0,0.57444,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0274,286.61,98539,339.45,0.50000,0.96429</datapoint>
+          <datapoint>49.136,233.38,-4.0277,1.0575,4.5262,1.0611,14.878,0,14.878,0,2.0560,0.087541,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013333,127714,0,0.69392,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0512,286.62,98564,339.46,0.47121,0.96440</datapoint>
+          <datapoint>49.549,231.61,-4.5251,-1.2029,4.0282,1.2093,14.017,0,14.017,0,2.1076,0.12485,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011866,113679,0,0.54972,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1143,286.63,98588,339.47,0.41346,0.96451</datapoint>
+          <datapoint>50.013,229.62,-4.0341,1.0584,4.5259,1.0779,13.018,0,13.018,0,2.2023,0.20426,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013332,127743,0,0.69407,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1926,286.64,98609,339.48,0.46387,0.96463</datapoint>
+          <datapoint>50.368,228.12,-4.4357,-1.1329,4.0530,1.4105,12.290,0,12.290,0,1.9045,0.84031,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011939,114413,0,0.55671,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8120,286.66,98632,339.48,0.35447,0.96474</datapoint>
+          <datapoint>50.868,225.99,-4.1074,0.65662,4.4450,0.94322,11.253,0,11.253,0,2.2430,0.67713,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013093,125494,0,0.66971,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1913,286.67,98649,339.49,0.50000,0.96485</datapoint>
+          <datapoint>51.368,223.83,-4.5336,-0.85232,4.1078,0.86231,10.148,0,10.148,0,2.1776,0.13093,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012100,115995,0,0.57209,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1831,286.68,98675,339.50,0.50000,0.96497</datapoint>
+          <datapoint>51.811,221.93,-4.0423,1.1075,4.5344,1.1272,9.1613,0,9.1613,0,2.2706,0.20965,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013356,128062,0,0.69721,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2646,286.70,98700,339.51,0.44358,0.96508</datapoint>
+          <datapoint>52.145,220.52,-4.3995,-1.0698,4.0712,1.4972,8.4615,0,8.4615,0,1.9208,1.0475,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011991,114996,0,0.56214,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7865,286.71,98722,339.51,0.33395,0.96519</datapoint>
+          <datapoint>52.645,218.38,-4.1632,0.47264,4.3996,0.47475,7.5067,0,7.5067,0,1.8984,0.044689,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012958,124286,0,0.65658,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9016,286.72,98739,339.52,0.50000,0.96531</datapoint>
+          <datapoint>53.145,216.22,-4.4593,-0.59223,4.1673,0.71948,6.5064,0,6.5064,0,2.1027,0.40856,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012274,117744,0,0.58920,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0828,286.73,98764,339.53,0.50000,0.96542</datapoint>
+          <datapoint>53.645,214.09,-4.0785,0.76164,4.4607,0.80407,5.4228,0,5.4228,0,2.2316,0.25775,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013137,126054,0,0.67522,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2113,286.74,98789,339.54,0.50000,0.96553</datapoint>
+          <datapoint>54.006,212.56,-4.4055,-0.90760,4.1067,1.3877,4.6869,0,4.6869,0,1.8533,1.0498,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012095,116072,0,0.57244,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7510,286.76,98814,339.55,0.36030,0.96565</datapoint>
+          <datapoint>54.506,210.42,-4.1468,0.51750,4.4094,0.67510,3.8145,0,3.8145,0,1.6366,0.43354,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012986,124641,0,0.66002,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.6685,286.77,98832,339.55,0.50000,0.96576</datapoint>
+          <datapoint>55.006,208.26,-4.4799,-0.66617,4.1471,0.67706,2.9811,0,2.9811,0,1.6970,0.12093,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012213,117247,0,0.58396,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.6914,286.78,98857,339.56,0.50000,0.96588</datapoint>
+          <datapoint>55.506,206.13,-4.0464,0.86691,4.4810,0.89960,2.1025,0,2.1025,0,1.8172,0.24033,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013196,126707,0,0.68190,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7978,286.80,98882,339.57,0.50000,0.96599</datapoint>
+          <datapoint>55.957,204.19,-4.5429,-1.1000,4.0469,1.1077,1.2690,0,1.2690,0,1.8761,0.13058,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011917,114450,0,0.55629,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8778,286.81,98907,339.58,0.45139,0.96610</datapoint>
+          <datapoint>56.376,202.39,-4.0515,1.1735,4.5438,1.1939,0.50258,0,0.50258,0,1.7840,0.21994,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013381,128525,0,0.70144,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7852,286.82,98930,339.58,0.41878,0.96621</datapoint>
+          <datapoint>56.840,200.39,-4.5512,-1.0759,4.0515,1.0764,-0.32244,0,0.32244,3.1416,1.7683,0.033927,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011931,114615,0,0.55777,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7683,286.83,98951,339.59,0.46450,0.96632</datapoint>
+          <datapoint>57.247,198.64,-4.0563,1.2169,4.5518,1.2294,-1.0560,0,1.0560,3.1416,1.8393,0.17480,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013403,128788,0,0.70416,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8404,286.85,98975,339.60,0.40669,0.96643</datapoint>
+          <datapoint>57.720,196.61,-4.5536,-1.0513,4.0566,1.0569,-1.9140,0,1.9140,3.1416,1.7878,0.10891,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011945,114793,0,0.55938,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7889,286.86,98995,339.61,0.47308,0.96655</datapoint>
+          <datapoint>58.093,195.00,-4.0907,1.2429,4.5584,1.3423,-2.6151,0,2.6151,3.1416,1.9766,0.50688,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013422,129014,0,0.70646,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9965,286.87,99019,339.61,0.37250,0.96666</datapoint>
+          <datapoint>58.439,193.53,-4.3755,-0.82244,4.1261,1.4439,-3.3708,0,3.3708,3.1416,2.3876,1.1867,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012149,116793,0,0.57891,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.5164,286.88,99038,339.62,0.34629,0.96677</datapoint>
+          <datapoint>58.939,191.39,-4.1798,0.39139,4.3775,0.50061,-4.5256,0,4.5256,3.1416,2.2315,0.31212,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012889,123923,0,0.65169,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2538,286.89,99055,339.63,0.50000,0.96688</datapoint>
+          <datapoint>59.439,189.24,-4.4316,-0.50372,4.1798,0.50490,-5.6456,0,5.6456,3.1416,2.2488,0.034450,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012307,118346,0,0.59428,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2470,286.91,99080,339.64,0.50000,0.96699</datapoint>
+          <datapoint>59.939,187.11,-4.0961,0.67110,4.4386,0.89343,-6.6963,0,6.6963,3.1416,1.9539,0.58978,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013069,125695,0,0.67030,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9995,286.92,99106,339.64,0.50000,0.96710</datapoint>
+          <datapoint>60.383,185.21,-4.4683,-0.83804,4.1104,1.1256,-7.6383,0,7.6383,3.1416,2.2877,0.75150,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012102,116420,0,0.57494,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2967,286.93,99131,339.65,0.44419,0.96722</datapoint>
+          <datapoint>60.840,183.26,-4.0782,0.85475,4.4775,1.0954,-8.6112,0,8.6112,3.1416,1.9750,0.68509,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013182,126837,0,0.68236,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0008,286.95,99153,339.66,0.45645,0.96733</datapoint>
+          <datapoint>61.243,181.54,-4.4425,-0.90385,4.0967,1.2405,-9.3382,0,9.3382,3.1416,1.6325,0.84962,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012061,116065,0,0.57132,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.5862,286.96,99176,339.67,0.40307,0.96744</datapoint>
+          <datapoint>61.743,179.41,-4.0838,0.71741,4.4441,0.76965,-10.189,0,10.189,3.1416,1.7719,0.27871,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013083,125924,0,0.67243,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7501,286.97,99196,339.67,0.50000,0.96760</datapoint>
+          <datapoint>62.242,177.25,-4.5364,-0.90624,4.0885,1.0012,-11.127,0,11.127,3.1416,1.9844,0.42567,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012036,115867,0,0.56924,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9670,286.98,99221,339.68,0.49939,0.96771</datapoint>
+          <datapoint>62.669,175.42,-4.0377,1.1682,4.5365,1.1714,-11.966,0,11.966,3.1416,1.9476,0.086387,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013355,128586,0,0.70098,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9488,287.00,99246,339.69,0.42684,0.96783</datapoint>
+          <datapoint>63.116,173.51,-4.5345,-1.1119,4.0381,1.1190,-12.849,0,12.849,3.1416,2.0039,0.12601,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011887,114477,0,0.55552,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0060,287.01,99268,339.70,0.44683,0.96794</datapoint>
+          <datapoint>63.541,171.69,-4.0393,1.1642,4.5350,1.1754,-13.716,0,13.716,3.1416,2.0728,0.16203,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013350,128582,0,0.70078,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0708,287.02,99290,339.71,0.42538,0.96805</datapoint>
+          <datapoint>63.993,169.75,-4.5375,-1.1023,4.0395,1.1063,-14.663,0,14.663,3.1416,2.1151,0.093497,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011891,114550,0,0.55611,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1161,287.03,99311,339.71,0.45197,0.96816</datapoint>
+          <datapoint>64.398,168.01,-4.0565,1.1865,4.5396,1.2332,-15.493,0,15.493,3.1416,1.9788,0.33616,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013363,128750,0,0.70246,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9764,287.05,99334,339.72,0.40544,0.96827</datapoint>
+          <datapoint>64.844,166.10,-4.5071,-1.0122,4.0626,1.1231,-16.422,0,16.422,3.1416,2.1955,0.48677,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011959,115238,0,0.56269,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2030,287.06,99355,339.73,0.44518,0.96838</datapoint>
+          <datapoint>65.296,164.17,-4.0346,1.0440,4.5095,1.1048,-17.452,0,17.452,3.1416,2.3590,0.36143,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013274,127933,0,0.69342,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.3455,287.07,99377,339.73,0.45258,0.96849</datapoint>
+          <datapoint>65.742,162.26,-4.5317,-1.1162,4.0349,1.1226,-18.491,0,18.491,3.1416,2.3058,0.11960,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011876,114486,0,0.55524,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.3036,287.08,99400,339.74,0.44540,0.96860</datapoint>
+          <datapoint>66.169,160.43,-4.0351,1.1620,4.5321,1.1700,-19.464,0,19.464,3.1416,2.2474,0.13667,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013339,128610,0,0.70062,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2494,287.10,99422,339.75,0.42735,0.96871</datapoint>
+          <datapoint>66.506,159.01,-4.3888,-1.0494,4.0639,1.4837,-20.162,0,20.162,3.1416,1.8939,1.0489,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011961,115341,0,0.56345,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7646,287.11,99443,339.76,0.33700,0.96882</datapoint>
+          <datapoint>67.006,156.87,-4.1468,0.48391,4.3893,0.50934,-21.089,0,21.089,3.1416,1.8144,0.15891,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012919,124590,0,0.65737,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8262,287.12,99460,339.76,0.50000,0.96893</datapoint>
+          <datapoint>67.506,154.73,-4.4449,-0.59623,4.1574,0.88967,-22.079,0,22.079,3.1416,2.1446,0.66031,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012236,118028,0,0.58988,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1114,287.13,99485,339.77,0.50000,0.96904</datapoint>
+          <datapoint>68.006,152.60,-4.0660,0.75792,4.4473,0.83284,-23.108,0,23.108,3.1416,1.9720,0.34523,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013089,126278,0,0.67514,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9995,287.14,99510,339.78,0.50000,0.96915</datapoint>
+          <datapoint>68.391,150.97,-4.4220,-0.92486,4.0873,1.2990,-23.934,0,23.934,3.1416,2.3231,0.91213,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012029,116075,0,0.57038,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.3891,287.16,99535,339.79,0.38492,0.96926</datapoint>
+          <datapoint>68.891,148.84,-4.0919,0.66021,4.4275,0.84310,-25.030,0,25.030,3.1416,2.0609,0.52435,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013030,125753,0,0.66938,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1018,287.17,99554,339.79,0.50000,0.96937</datapoint>
+          <datapoint>69.391,146.69,-4.5118,-0.83995,4.0988,0.98874,-26.126,0,26.126,3.1416,2.3217,0.52162,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012062,116435,0,0.57378,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2987,287.18,99579,339.80,0.50000,0.96948</datapoint>
+          <datapoint>69.701,145.34,-4.1585,1.1402,4.5363,1.6133,-26.791,0,26.791,3.1416,1.9680,1.1413,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013349,128884,0,0.70295,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8517,287.20,99605,339.81,0.30993,0.96960</datapoint>
+          <datapoint>70.201,143.19,-4.4354,-0.55390,4.1603,0.61669,-27.741,0,27.741,3.1416,1.8324,0.27110,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012243,118213,0,0.59132,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8463,287.21,99620,339.82,0.50000,0.96971</datapoint>
+          <datapoint>70.701,141.07,-4.0747,0.72150,4.4366,0.76205,-28.627,0,28.627,3.1416,1.7098,0.24528,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013056,126087,0,0.67264,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7292,287.22,99646,339.82,0.50000,0.96982</datapoint>
+          <datapoint>71.147,139.16,-4.4753,-0.89851,4.0862,1.1215,-29.455,0,29.455,3.1416,2.0090,0.67118,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012024,116147,0,0.57069,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0164,287.23,99671,339.83,0.44583,0.96993</datapoint>
+          <datapoint>71.610,137.19,-4.0460,0.92706,4.4812,1.0798,-30.445,0,30.445,3.1416,2.2654,0.55370,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013186,127393,0,0.68648,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2396,287.25,99693,339.84,0.46304,0.97004</datapoint>
+          <datapoint>72.062,135.25,-4.5149,-1.0368,4.0498,1.1055,-31.430,0,31.430,3.1416,2.0920,0.38343,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011917,115148,0,0.56079,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0887,287.26,99716,339.85,0.45230,0.97015</datapoint>
+          <datapoint>72.508,133.35,-4.0200,1.1092,4.5154,1.1206,-32.348,0,32.348,3.1416,2.0211,0.15893,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013286,128405,0,0.69727,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0263,287.27,99739,339.86,0.44621,0.97026</datapoint>
+          <datapoint>72.926,131.57,-4.4994,-1.1477,4.0231,1.1970,-33.163,0,33.163,3.1416,1.8790,0.34009,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011837,114421,0,0.55361,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8634,287.28,99761,339.86,0.41771,0.97037</datapoint>
+          <datapoint>73.390,129.59,-4.0164,1.0403,4.5009,1.0769,-34.065,0,34.065,3.1416,2.0081,0.27815,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013243,128028,0,0.69302,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9943,287.29,99782,339.87,0.46432,0.97048</datapoint>
+          <datapoint>73.808,127.81,-4.5017,-1.1622,4.0186,1.1972,-34.929,0,34.929,3.1416,2.1283,0.28767,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011824,114326,0,0.55256,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1416,287.31,99805,339.88,0.41763,0.97060</datapoint>
+          <datapoint>74.268,125.85,-4.0163,1.0549,4.5030,1.0865,-35.881,0,35.881,3.1416,2.0086,0.26010,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013249,128125,0,0.69393,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0206,287.32,99826,339.89,0.46019,0.97071</datapoint>
+          <datapoint>74.697,124.02,-4.5159,-1.1642,4.0163,1.1650,-36.739,0,36.739,3.1416,1.9898,0.043747,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011816,114294,0,0.55213,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9883,287.33,99849,339.89,0.42917,0.97082</datapoint>
+          <datapoint>75.135,122.15,-4.0231,1.1261,4.5166,1.1426,-37.628,0,37.628,3.1416,2.0745,0.19353,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013288,128550,0,0.69838,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0697,287.34,99870,339.90,0.43761,0.97093</datapoint>
+          <datapoint>75.576,120.27,-4.5226,-1.1315,4.0232,1.1326,-38.549,0,38.549,3.1416,2.0965,0.049868,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011836,114523,0,0.55422,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0976,287.36,99892,339.91,0.44146,0.97104</datapoint>
+          <datapoint>76.006,118.43,-4.0236,1.1612,4.5227,1.1635,-39.443,0,39.443,3.1416,2.0652,0.072947,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013306,128761,0,0.70053,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0665,287.37,99914,339.92,0.42975,0.97115</datapoint>
+          <datapoint>76.435,116.60,-4.5048,-1.1207,4.0263,1.1645,-40.300,0,40.300,3.1416,1.9293,0.31635,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011845,114644,0,0.55527,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9188,287.38,99936,339.92,0.42937,0.97126</datapoint>
+          <datapoint>76.825,114.93,-4.0772,1.0986,4.5132,1.2844,-41.102,0,41.102,3.1416,2.1884,0.66544,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013277,128526,0,0.69781,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2040,287.39,99957,339.93,0.38928,0.97137</datapoint>
+          <datapoint>77.286,112.95,-4.4776,-0.86731,4.0878,1.0829,-42.043,0,42.043,3.1416,1.8890,0.64834,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012025,116428,0,0.57257,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8930,287.40,99977,339.94,0.46174,0.97152</datapoint>
+          <datapoint>77.773,110.89,-4.0118,0.95744,4.4803,1.0277,-43.007,0,43.007,3.1416,2.0707,0.37351,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013180,127625,0,0.68792,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0442,287.42,100000,339.94,0.48652,1.0001</datapoint>
+          <datapoint>78.191,109.11,-4.4993,-1.1671,4.0137,1.1971,-43.895,0,43.895,3.1416,2.1820,0.26639,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011807,114352,0,0.55221,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1943,287.43,100024,339.95,0.41768,1.0003</datapoint>
+          <datapoint>78.637,107.21,-4.0238,1.0648,4.5016,1.1198,-44.834,0,44.834,3.1416,2.0273,0.34648,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013241,128268,0,0.69471,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0387,287.44,100045,339.96,0.44651,1.0004</datapoint>
+          <datapoint>79.061,105.41,-4.4925,-1.1066,4.0283,1.1807,-45.730,0,45.730,3.1416,2.2016,0.41159,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011849,114800,0,0.55642,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2174,287.45,100068,339.97,0.42347,1.0005</datapoint>
+          <datapoint>79.491,103.57,-4.0440,1.0423,4.4975,1.1621,-46.630,0,46.630,3.1416,1.9805,0.51385,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013229,128188,0,0.69370,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9890,287.46,100089,339.97,0.43027,1.0006</datapoint>
+          <datapoint>79.948,101.61,-4.5089,-1.0167,4.0482,1.0935,-47.493,0,47.493,3.1416,1.7964,0.40254,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011907,115400,0,0.56213,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7955,287.48,100110,339.98,0.45726,1.0007</datapoint>
+          <datapoint>80.380,99.772,-4.0266,1.1178,4.5106,1.1589,-48.297,0,48.297,3.1416,1.9284,0.30583,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013267,128601,0,0.69801,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9225,287.49,100133,339.99,0.43145,1.0008</datapoint>
+          <datapoint>80.834,97.830,-4.5251,-1.0978,4.0268,1.1010,-49.181,0,49.181,3.1416,1.9667,0.084298,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011844,114822,0,0.55639,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9673,287.50,100155,340.00,0.45413,1.0009</datapoint>
+          <datapoint>81.232,96.122,-4.0459,1.2022,4.5275,1.2544,-49.993,0,49.993,3.1416,2.1094,0.35801,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013316,129120,0,0.70350,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1137,287.51,100178,340.00,0.39859,1.0010</datapoint>
+          <datapoint>81.722,94.019,-4.5407,-1.0100,4.0465,1.0206,-51.044,0,51.044,3.1416,2.1813,0.14684,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011901,115416,0,0.56204,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1768,287.53,100198,340.01,0.48989,1.0011</datapoint>
+          <datapoint>82.109,92.356,-4.0459,1.2780,4.5414,1.2912,-51.903,0,51.903,3.1416,2.2527,0.18431,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013356,129552,0,0.70806,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2567,287.54,100222,340.02,0.38723,1.0013</datapoint>
+          <datapoint>82.602,90.241,-4.5421,-1.0076,4.0463,1.0151,-53.027,0,53.027,3.1416,2.3134,0.12340,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011900,115443,0,0.56218,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.3093,287.55,100242,340.03,0.49255,1.0014</datapoint>
+          <datapoint>82.955,88.719,-4.0827,1.3013,4.5479,1.4162,-53.809,0,53.809,3.1416,2.1162,0.55867,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013375,129775,0,0.71035,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0852,287.56,100267,340.03,0.35306,1.0015</datapoint>
+          <datapoint>83.455,86.574,-4.4969,-0.82841,4.0899,0.98557,-54.801,0,54.801,3.1416,1.8492,0.53393,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012028,116720,0,0.57457,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8737,287.57,100284,340.04,0.50000,1.0016</datapoint>
+          <datapoint>83.916,84.614,-4.0024,1.0721,4.4974,1.0841,-55.637,0,55.637,3.1416,1.7753,0.16038,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013226,128371,0,0.69490,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7830,287.59,100310,340.05,0.46122,1.0017</datapoint>
+          <datapoint>84.314,82.930,-4.4711,-1.1793,4.0075,1.2579,-56.377,0,56.377,3.1416,1.9493,0.43779,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011785,114406,0,0.55187,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9781,287.60,100333,340.06,0.39749,1.0018</datapoint>
+          <datapoint>84.801,80.867,-4.0054,0.95677,4.4738,1.0271,-57.370,0,57.370,3.1416,2.1311,0.37342,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013156,127734,0,0.68788,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1042,287.61,100352,340.06,0.48683,1.0019</datapoint>
+          <datapoint>85.226,79.055,-4.5054,-1.1745,4.0054,1.1745,-58.277,0,58.277,3.1416,2.1307,8.8310e-4,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011778,114376,0,0.55147,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1307,287.62,100377,340.07,0.42571,1.0020</datapoint>
+          <datapoint>85.632,77.320,-4.0465,1.1307,4.5099,1.2320,-59.102,0,59.102,3.1416,1.9321,0.48937,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013261,128801,0,0.69926,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9293,287.64,100398,340.08,0.40584,1.0021</datapoint>
+          <datapoint>86.093,75.349,-4.4989,-0.98110,4.0520,1.0843,-59.943,0,59.943,3.1416,1.7192,0.46178,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011915,115740,0,0.56458,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7206,287.65,100418,340.08,0.46111,1.0022</datapoint>
+          <datapoint>86.481,73.688,-4.0677,1.1116,4.5069,1.2891,-60.659,0,60.659,3.1416,1.9724,0.65281,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013252,128753,0,0.69859,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9879,287.66,100441,340.09,0.38786,1.0024</datapoint>
+          <datapoint>86.972,71.587,-4.5007,-0.88268,4.0744,1.0193,-61.688,0,61.688,3.1416,2.2224,0.50982,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011980,116410,0,0.57102,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2045,287.67,100461,340.10,0.49052,1.0025</datapoint>
+          <datapoint>87.328,70.054,-4.0957,1.1356,4.5134,1.4019,-62.428,0,62.428,3.1416,1.9292,0.82213,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013270,128974,0,0.70084,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8846,287.68,100485,340.11,0.35665,1.0029</datapoint>
+          <datapoint>87.828,67.910,-4.4805,-0.76956,4.0964,0.78659,-63.413,0,63.413,3.1416,2.0106,0.16278,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012044,117072,0,0.57740,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0029,287.69,100503,340.11,0.50000,1.0031</datapoint>
+          <datapoint>88.299,65.914,-4.0029,1.0152,4.4824,1.0628,-64.324,0,64.324,3.1416,1.8627,0.31446,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013179,128124,0,0.69149,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8805,287.71,100529,340.12,0.47045,1.0032</datapoint>
+          <datapoint>88.705,64.192,-4.4756,-1.1638,4.0072,1.2310,-65.114,0,65.114,3.1416,2.0256,0.40121,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011781,114559,0,0.55275,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0483,287.72,100552,340.13,0.40617,1.0033</datapoint>
+          <datapoint>89.166,62.236,-4.0153,0.99900,4.4790,1.0851,-66.002,0,66.002,3.1416,1.8304,0.42363,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013168,128064,0,0.69069,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8503,287.73,100572,340.14,0.46078,1.0034</datapoint>
+          <datapoint>89.570,60.521,-4.4596,-1.0982,4.0237,1.2357,-66.790,0,66.790,3.1416,2.0596,0.56642,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011829,115064,0,0.55751,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0913,287.75,100595,340.14,0.40464,1.0035</datapoint>
+          <datapoint>90.070,58.407,-3.9982,0.92285,4.4618,0.98282,-67.777,0,67.777,3.1416,1.8906,0.33808,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013117,127609,0,0.68564,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9192,287.76,100615,340.15,0.50000,1.0037</datapoint>
+          <datapoint>90.491,56.618,-4.4980,-1.1871,3.9982,1.1875,-68.576,0,68.576,3.1416,1.9044,0.032696,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011754,114368,0,0.55067,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9057,287.77,100640,340.16,0.42104,1.0038</datapoint>
+          <datapoint>90.943,54.700,-3.9981,1.1071,4.4980,1.1072,-69.437,0,69.437,3.1416,1.9111,0.014908,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013223,128682,0,0.69706,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9105,287.78,100661,340.17,0.45157,1.0039</datapoint>
+          <datapoint>91.354,52.959,-4.4825,-1.1795,4.0005,1.2175,-70.248,0,70.248,3.1416,2.0350,0.30167,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011760,114465,0,0.55149,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0507,287.79,100683,340.17,0.41068,1.0040</datapoint>
+          <datapoint>91.828,50.948,-3.9904,1.0371,4.4831,1.0537,-71.234,0,71.234,3.1416,2.1234,0.18641,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013179,128292,0,0.69269,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1120,287.81,100704,340.18,0.47452,1.0041</datapoint>
+          <datapoint>92.238,49.212,-4.4876,-1.2140,3.9908,1.2207,-72.093,0,72.093,3.1416,2.0713,0.12720,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011731,114220,0,0.54901,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0644,287.82,100727,340.19,0.40960,1.0042</datapoint>
+          <datapoint>92.707,47.224,-3.9883,1.0644,4.4877,1.0658,-73.059,0,73.059,3.1416,2.0464,0.053079,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013192,128459,0,0.69435,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0494,287.83,100748,340.20,0.46914,1.0043</datapoint>
+          <datapoint>93.041,45.824,-4.3802,-1.1717,4.0112,1.4947,-73.692,0,73.692,3.1416,1.7360,0.92807,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011791,114836,0,0.55482,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.6183,287.84,100771,340.20,0.33452,1.0047</datapoint>
+          <datapoint>93.541,43.703,-4.1037,0.55298,4.3803,0.55585,-74.567,0,74.567,3.1416,1.7642,0.056366,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012875,125416,0,0.66171,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7598,287.85,100788,340.21,0.50000,1.0049</datapoint>
+          <datapoint>94.041,41.563,-4.4582,-0.70906,4.1056,0.76025,-75.415,0,75.415,3.1416,1.6270,0.27425,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012068,117570,0,0.58143,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.6406,287.87,100812,340.22,0.50000,1.0050</datapoint>
+          <datapoint>94.541,39.450,-3.9925,0.93142,4.4589,0.94867,-76.251,0,76.251,3.1416,1.7171,0.18011,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013106,127707,0,0.68595,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7017,287.88,100838,340.23,0.50000,1.0051</datapoint>
+          <datapoint>94.933,37.793,-4.4566,-1.1833,3.9986,1.2750,-76.961,0,76.961,3.1416,1.9033,0.47476,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011752,114542,0,0.55174,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9366,287.89,100862,340.23,0.39215,1.0052</datapoint>
+          <datapoint>95.433,35.681,-3.9935,0.92620,4.4568,0.93219,-77.926,0,77.926,3.1416,1.9560,0.10549,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013099,127684,0,0.68555,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9470,287.90,100882,340.24,0.50000,1.0053</datapoint>
+          <datapoint>95.853,33.903,-4.4916,-1.1886,3.9938,1.1932,-78.736,0,78.736,3.1416,1.9123,0.10430,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011738,114437,0,0.55061,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9077,287.92,100907,340.25,0.41905,1.0054</datapoint>
+          <datapoint>96.261,32.160,-4.0374,1.1110,4.4965,1.2232,-79.561,0,79.561,3.1416,2.1215,0.51186,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013215,128860,0,0.69807,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1227,287.93,100927,340.26,0.40876,1.0055</datapoint>
+          <datapoint>96.691,30.337,-4.4547,-0.97211,4.0481,1.1648,-80.412,0,80.412,3.1416,1.8461,0.64175,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011897,116024,0,0.56587,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8286,287.94,100948,340.26,0.42925,1.0056</datapoint>
+          <datapoint>97.191,28.225,-3.9922,0.92497,4.4550,0.93368,-81.319,0,81.319,3.1416,1.7824,0.12727,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013093,127706,0,0.68549,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7933,287.95,100969,340.27,0.50000,1.0057</datapoint>
+          <datapoint>97.609,26.449,-4.4898,-1.1878,3.9926,1.1936,-82.076,0,82.076,3.1416,1.8319,0.11821,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011733,114469,0,0.55068,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8371,287.97,100994,340.28,0.41889,1.0058</datapoint>
+          <datapoint>98.040,24.617,-4.0142,1.1038,4.4922,1.1606,-82.832,0,82.832,3.1416,1.6774,0.35871,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013201,128809,0,0.69722,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.6845,287.98,101015,340.28,0.43080,1.0060</datapoint>
+          <datapoint>98.491,22.697,-4.5044,-1.0874,4.0155,1.1092,-83.610,0,83.610,3.1416,1.7760,0.21868,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011800,115157,0,0.55720,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7780,287.99,101036,340.29,0.45077,1.0061</datapoint>
+          <datapoint>98.804,21.348,-4.1225,1.2211,4.5241,1.5986,-84.216,0,84.216,3.1416,2.0987,1.0317,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013294,129760,0,0.70740,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1970,288.00,101059,340.30,0.31277,1.0062</datapoint>
+          <datapoint>99.304,19.211,-4.4264,-0.60785,4.1236,0.64417,-85.239,0,85.239,3.1416,1.9921,0.21326,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012117,118286,0,0.58779,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0032,288.01,101075,340.30,0.50000,1.0063</datapoint>
+          <datapoint>99.804,17.098,-4.0248,0.80331,4.4281,0.85441,-86.271,0,86.271,3.1416,2.1376,0.29106,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013012,127041,0,0.67793,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1134,288.03,101100,340.31,0.50000,1.0064</datapoint>
+          <datapoint>100.28,15.082,-4.5136,-1.0354,4.0261,1.0590,-87.256,0,87.256,3.1416,2.0325,0.22255,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011830,115525,0,0.56053,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0356,288.04,101124,340.32,0.47214,1.0065</datapoint>
+          <datapoint>100.66,13.428,-4.0366,1.2327,4.5164,1.2921,-88.071,0,88.071,3.1416,2.1824,0.38724,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013271,129614,0,0.70550,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1907,288.05,101148,340.33,0.38698,1.0066</datapoint>
+          <datapoint>101.14,11.394,-4.5012,-0.97502,4.0405,1.0493,-89.067,0,89.067,3.1416,1.9976,0.38780,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011872,115971,0,0.56474,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0053,288.06,101168,340.34,0.47650,1.0067</datapoint>
+          <datapoint>101.50,9.8608,-4.0746,1.1931,4.5111,1.3985,-89.735,0,89.735,3.1416,1.7367,0.72968,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013254,129498,0,0.70409,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.6993,288.08,101191,340.34,0.35752,1.0068</datapoint>
+          <datapoint>101.88,8.2535,-4.3605,-0.74996,4.1033,1.3120,-90.475,0,90.475,3.1416,2.1470,1.0765,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012056,117805,0,0.58262,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2205,288.09,101209,340.35,0.38110,1.0069</datapoint>
+          <datapoint>102.38,6.1353,-4.1123,0.49637,4.3607,0.50873,-91.562,0,91.562,3.1416,2.2027,0.11149,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012812,125211,0,0.65813,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1941,288.10,101228,340.36,0.50000,1.0071</datapoint>
+          <datapoint>102.88,4.0018,-4.4218,-0.61906,4.1230,0.90797,-92.581,0,92.581,3.1416,1.8706,0.66421,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012113,118404,0,0.58844,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9057,288.11,101253,340.36,0.50000,1.0072</datapoint>
+          <datapoint>103.38,1.8903,-4.0240,0.79569,4.4233,0.84119,-93.482,0,93.482,3.1416,1.7341,0.27290,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012995,127048,0,0.67741,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7569,288.12,101278,340.37,0.50000,1.0073</datapoint>
+          <datapoint>103.84,-0.082429,-4.4974,-1.0224,4.0271,1.0799,-94.322,0,94.322,3.1416,1.8951,0.34752,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011831,115687,0,0.56161,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8932,288.14,101303,340.38,0.46302,1.0074</datapoint>
+        </databranch>
+      </flightdata>
+    </simulation>
+
+    <simulation status="uptodate">
+      <name>Simulation 3</name>
+      <simulator>RK4Simulator</simulator>
+      <calculator>BarrowmanCalculator</calculator>
+      <conditions>
+        <configid>b13e8ca2-f54d-4ca8-9b23-06c6c9eb237a</configid>
+        <launchrodlength>1.0</launchrodlength>
+        <launchrodangle>0.0</launchrodangle>
+        <launchroddirection>0.0</launchroddirection>
+        <windaverage>2.0</windaverage>
+        <windturbulence>0.1</windturbulence>
+        <launchaltitude>0.0</launchaltitude>
+        <launchlatitude>45.0</launchlatitude>
+        <atmosphere model="isa"/>
+        <timestep>0.05</timestep>
+      </conditions>
+      <flightdata maxaltitude="524.80" maxvelocity="113.07" maxacceleration="155.36" maxmach="0.33342" timetoapogee="10.864" flighttime="133.43" groundhitvelocity="4.0263">
+        <databranch name="Main" types="Time,Altitude,Vertical velocity,Vertical acceleration,Total velocity,Total acceleration,Position upwind,Position parallel to wind,Lateral distance,Lateral direction,Lateral velocity,Lateral acceleration,Angle of attack,Roll rate,Pitch rate,Yaw rate,Mass,CP location,CG location,Stability margin calibers,Mach number,Reynolds number,Thrust,Drag force,Drag coefficient,Axial drag coefficient,Friction drag coefficient,Pressure drag coefficient,Base drag coefficient,Normal force coefficient,Pitch moment coefficient,Yaw moment coefficient,Side force coefficient,Roll moment coefficient,Roll forcing coefficient,Roll damping coefficient,Pitch damping coefficient,Reference length,Reference area,Vertical orientation (zenith),Lateral orientation (azimuth),Wind velocity,Air temperature,Air pressure,Speed of sound,Simulation time step,Computation time">
+          <event time="0" type="launch"/>
+          <event time="0" type="ignition"/>
+          <event time="0.10000" type="liftoff"/>
+          <event time="0.30000" type="launchrod"/>
+          <event time="1.8808" type="burnout"/>
+          <event time="1.8808" type="ejectioncharge"/>
+          <event time="1.8808" type="ignition"/>
+          <event time="1.8808" type="stageseparation"/>
+          <event time="3.7599" type="burnout"/>
+          <event time="3.7599" type="ejectioncharge"/>
+          <event time="3.7599" type="ignition"/>
+          <event time="3.7599" type="stageseparation"/>
+          <event time="5.6302" type="burnout"/>
+          <event time="10.646" type="ejectioncharge"/>
+          <event time="10.646" type="recoverydevicedeployment"/>
+          <event time="10.889" type="apogee"/>
+          <event time="133.43" type="groundhit"/>
+          <event time="133.43" type="simulationend"/>
+          <datapoint>0,0,0,-3.8149,1.7862,3.8149,0,0,0,0,0,0,1.5708,0,0,0,0.15284,NaN,NaN,NaN,0.0052476,67623,0.91733,0,2.4269,0,1.3773,0.92965,0.12000,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,0.025000,4.9087e-4,1.5708,0,1.7862,288.15,101325,340.39,0.050000,0.0076236</datapoint>
+          <datapoint>0.15000,0.19831,4.6780,71.657,5.1312,71.657,0,0,0,0,0,0,0.42346,0,0,0,0.15251,NaN,NaN,NaN,0.015075,194254,12.446,0.020533,2.1043,2.5939,1.0545,0.92972,0.12003,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,0.025000,4.9087e-4,1.5708,0,2.1085,288.15,101323,340.39,0.050000,0.11554</datapoint>
+          <datapoint>0.30000,1.4799,10.972,24.324,11.155,24.404,0,0,0,0,0,1.9731,0.18165,0,0,0,0.15119,0.41261,0.36793,1.7873,0.032773,422267,5.2487,0.086815,1.9345,2.3207,0.88431,0.93003,0.12014,7.9744,14.253,0,0,0,0,0,0,0.025000,4.9087e-4,1.5708,0,2.0152,288.14,101308,340.38,0.050000,0.12336</datapoint>
+          <datapoint>0.46396,3.5793,14.502,19.039,14.628,19.039,-0.022912,0,0.022912,3.1416,0.22672,0.017487,0.082108,0,0.59103,0,0.15071,0.42071,0.36743,2.1315,0.042977,553648,4.4739,0.13045,1.9202,2.0282,0.86969,0.93032,0.12024,3.3689,7.1233,0,0,0,0,0,0.057420,0.025000,4.9087e-4,1.5216,0,2.1426,288.13,101283,340.37,0.010557,0.21072</datapoint>
+          <datapoint>0.63758,6.3733,17.622,16.888,17.807,17.764,-0.034509,0,0.034509,3.1416,0.25456,5.5091,0.028760,0,-0.68214,0,0.15036,0.42897,0.36705,2.4767,0.052317,673797,4.2823,0.18444,1.9206,1.9358,0.86961,0.93064,0.12036,1.3210,3.3233,0,0,0,0,0,-0.051525,0.025000,4.9087e-4,1.3981,0,2.3003,288.11,101250,340.36,0.016704,0.24671</datapoint>
+          <datapoint>0.80053,9.4659,20.299,16.330,20.613,18.476,0.10033,0,0.10033,0,1.4829,8.6443,0.058815,0,0.034650,0,0.14912,0.42647,0.36575,2.4290,0.060565,779815,4.3442,0.25272,1.9210,1.9799,0.86953,0.93099,0.12048,2.7536,6.6886,0,0,0,0,0,9.8586e-5,0.025000,4.9087e-4,1.3372,0,2.1018,288.09,101214,340.35,0.0061324,0.35805</datapoint>
+          <datapoint>0.96038,12.927,23.027,17.309,23.455,17.795,0.43598,0,0.43598,0,2.5867,4.1322,0.015567,0,-0.47709,0,0.14859,0.42693,0.36518,2.4701,0.068916,887084,4.3941,0.31819,1.9214,1.9260,0.86944,0.93138,0.12062,0.60848,1.5174,0,0,0,0,0,-0.014397,0.025000,4.9087e-4,1.3950,0,1.8751,288.07,101173,340.34,0.020929,0.43411</datapoint>
+          <datapoint>1.1227,16.890,25.808,16.888,26.271,16.992,0.89043,0,0.89043,0,2.9536,1.8731,0.038301,0,0.24368,0,0.14799,0.42474,0.36453,2.4081,0.077195,993303,4.3530,0.40365,1.9219,1.9483,0.86933,0.93183,0.12077,1.5229,3.6644,0,0,0,0,0,0.0029848,0.025000,4.9087e-4,1.4210,0,1.9576,288.04,101127,340.32,0.0066798,0.51706</datapoint>
+          <datapoint>1.2819,21.208,28.311,14.562,28.886,16.340,1.4033,0,1.4033,0,3.6374,7.4121,0.023355,0,-0.39876,0,0.14637,0.42944,0.36275,2.6675,0.084883,1091811,4.2039,0.48387,1.9224,1.9326,0.86922,0.93228,0.12094,1.0695,2.8594,0,0,0,0,0,-0.0065590,0.025000,4.9087e-4,1.3475,0,2.0997,288.01,101076,340.31,0.0071727,0.57624</datapoint>
+          <datapoint>1.4410,25.898,30.682,15.595,31.424,16.490,2.0831,0,2.0831,0,4.8495,5.3582,0.0024629,0,-0.35384,0,0.14537,0.42824,0.36164,2.6640,0.092347,1187334,4.3450,0.56959,1.9230,1.9231,0.86911,0.93277,0.12111,0.095356,0.25837,0,0,0,0,0,-0.0043428,0.025000,4.9087e-4,1.3555,0,1.9393,287.98,101021,340.29,0.026079,0.66743</datapoint>
+          <datapoint>1.6053,31.154,33.297,15.830,34.080,16.401,2.9326,0,2.9326,0,5.4658,4.2879,0.010676,0,0.26544,0,0.14449,0.42743,0.36065,2.6712,0.10016,1287180,4.4251,0.67055,1.9236,1.9258,0.86898,0.93332,0.12130,0.41598,1.1091,0,0,0,0,0,0.0020693,0.025000,4.9087e-4,1.3666,0,1.8016,287.95,100960,340.27,0.010556,0.75358</datapoint>
+          <datapoint>1.7690,36.810,35.785,14.831,36.773,16.336,3.9058,0,3.9058,0,6.5155,6.8477,0.0064539,0,0.029624,0,0.14346,0.43091,0.35946,2.8580,0.10808,1388264,4.4480,0.77998,1.9243,1.9251,0.86883,0.93393,0.12152,0.29247,0.83585,0,0,0,0,0,2.2031e-5,0.025000,4.9087e-4,1.3321,0,1.9479,287.91,100893,340.24,0.011636,0.80813</datapoint>
+          <datapoint>1.9284,42.552,35.619,7.6765,36.676,8.4737,4.9836,0,4.9836,0,6.8107,3.5882,0.0066035,0,0.086426,0,0.11445,0.38171,0.31808,2.5449,0.10780,1248097,2.5661,0.52337,1.2987,1.2993,0.66926,0.50794,0.12151,0.16080,0.40908,0,0,0,0,0,1.3752e-4,0.025000,4.9087e-4,1.3368,0,1.9292,287.87,100826,340.22,0.017858,0.83444</datapoint>
+          <datapoint>2.1007,49.391,45.652,52.204,47.189,55.047,6.3641,0,6.3641,0,9.7690,17.464,0.0051768,0,-0.13180,0,0.11340,0.38620,0.31691,2.7717,0.13871,1605054,8.1731,0.86714,1.3008,1.3012,0.66875,0.50956,0.12250,0.14626,0.40559,0,0,0,0,0,-1.9286e-4,0.025000,4.9087e-4,1.3097,0,2.1781,287.83,100746,340.19,0.014519,0.85043</datapoint>
+          <datapoint>2.2521,56.682,50.153,23.100,51.968,24.503,7.9822,0,7.9822,0,11.429,8.1720,0.0035418,0,-0.0083908,0,0.11260,0.38215,0.31600,2.6458,0.15277,1766616,4.8699,1.0517,1.3019,1.3021,0.66847,0.51043,0.12303,0.086085,0.22777,0,0,0,0,0,-6.4374e-7,0.025000,4.9087e-4,1.3092,0,2.1869,287.78,100660,340.17,0.020133,0.86615</datapoint>
+          <datapoint>2.4059,64.643,53.192,17.547,55.203,19.324,9.8339,0,9.8339,0,12.657,8.0946,0.0018673,0,-0.024782,0,0.11221,0.38661,0.31556,2.8421,0.16230,1875453,4.3882,1.1865,1.3028,1.3028,0.66827,0.51106,0.12342,0.052646,0.14963,0,0,0,0,0,-4.9738e-6,0.025000,4.9087e-4,1.2982,0,2.1086,287.73,100567,340.13,0.023082,0.89694</datapoint>
+          <datapoint>2.5640,73.262,55.836,16.910,58.079,18.505,11.927,0,11.927,0,13.806,7.5163,5.2785e-4,0,0.11031,0,0.11175,0.38256,0.31502,2.7016,0.17077,1971858,4.4155,1.3130,1.3035,1.3035,0.66808,0.51166,0.12379,0.012798,0.034487,0,0,0,0,0,8.8976e-5,0.025000,4.9087e-4,1.2925,0,2.1792,287.67,100466,340.10,0.033376,0.90724</datapoint>
+          <datapoint>2.7149,81.864,58.188,16.364,60.643,17.888,14.098,0,14.098,0,14.938,7.2245,0.0016488,0,0.044790,0,0.11062,0.38242,0.31369,2.7494,0.17833,2057562,4.4351,1.4311,1.3043,1.3043,0.66791,0.51222,0.12413,0.040035,0.11006,0,0,0,0,0,1.3439e-5,0.025000,4.9087e-4,1.2869,0,2.1423,287.62,100365,340.07,0.029882,0.91880</datapoint>
+          <datapoint>2.8906,92.328,60.892,14.386,63.652,16.247,16.837,0,16.837,0,16.260,7.5504,5.1638e-4,0,-0.044850,0,0.11008,0.38679,0.31304,2.9500,0.18720,2157929,4.3669,1.5762,1.3052,1.3052,0.66769,0.51291,0.12456,0.014556,0.042951,0,0,0,0,0,-1.2225e-5,0.025000,4.9087e-4,1.2747,0,2.2812,287.55,100242,340.03,0.044166,0.94641</datapoint>
+          <datapoint>3.0278,100.82,62.799,13.491,65.726,15.316,19.138,0,19.138,0,17.267,7.2505,1.3891e-4,0,-0.022475,0,0.10951,0.38685,0.31236,2.9795,0.19332,2226796,4.3530,1.6800,1.3058,1.3058,0.66753,0.51340,0.12486,0.0039152,0.011668,0,0,0,0,0,-2.8779e-6,0.025000,4.9087e-4,1.2711,0,2.1290,287.49,100143,339.99,0.047999,0.95277</datapoint>
+          <datapoint>3.1734,110.09,64.571,12.154,67.678,13.843,21.726,0,21.726,0,18.259,6.6268,7.8156e-4,0,0.031635,0,0.10787,0.38257,0.31035,2.8888,0.19908,2291283,4.2559,1.7806,1.3064,1.3064,0.66738,0.51389,0.12515,0.018977,0.054814,0,0,0,0,0,5.3733e-6,0.025000,4.9087e-4,1.2674,0,2.0110,287.43,100034,339.96,0.033927,0.95831</datapoint>
+          <datapoint>3.3390,120.95,66.567,11.950,69.975,13.994,24.842,0,24.842,0,19.424,7.2808,5.3144e-4,0,1.2725e-4,0,0.10692,0.38682,0.30914,3.1069,0.20586,2367079,4.3565,1.9026,1.3072,1.3072,0.66720,0.51447,0.12551,0.014993,0.046581,0,0,0,0,0,0,0.025000,4.9087e-4,1.2569,0,2.1464,287.36,99906,339.91,0.034262,0.96822</datapoint>
+          <datapoint>3.4975,131.65,68.452,11.717,72.055,13.888,28.009,0,28.009,0,20.562,7.4550,8.2586e-4,0,0.044434,0,0.10606,0.38679,0.30805,3.1495,0.21201,2435454,4.4332,2.0165,1.3079,1.3079,0.66703,0.51501,0.12584,0.023312,0.073410,0,0,0,0,0,9.3510e-6,0.025000,4.9087e-4,1.2524,0,1.9393,287.29,99781,339.87,0.020154,0.98217</datapoint>
+          <datapoint>3.6660,143.35,70.396,10.870,74.313,13.117,31.569,0,31.569,0,21.717,7.3416,7.0590e-4,0,-0.074656,0,0.10498,0.38681,0.30664,3.2068,0.21868,2509511,4.4480,2.1438,1.3087,1.3087,0.66683,0.51563,0.12622,0.019930,0.063936,0,0,0,0,0,-2.4827e-5,0.025000,4.9087e-4,1.2439,0,2.0937,287.22,99644,339.82,0.029552,1.0115</datapoint>
+          <datapoint>3.8416,155.61,70.171,40.481,74.259,43.843,35.401,0,35.401,0,22.227,16.837,0.0019449,0,0.081079,0,0.074555,0.31170,0.24912,2.5033,0.21855,2108398,5.3624,1.4081,0.86179,0.86182,0.43447,0.30111,0.12621,0.020344,0.050902,0,0,0,0,0,2.6929e-5,0.025000,4.9087e-4,1.2394,0,2.0733,287.14,99500,339.78,0.028274,1.0202</datapoint>
+          <datapoint>3.9993,167.83,84.993,44.788,90.119,48.415,39.353,0,39.353,0,27.979,18.386,0.0020254,0,0.0082674,0,0.073318,0.31181,0.24711,2.5879,0.26527,2556264,6.3061,2.0821,0.86625,0.86629,0.43349,0.30362,0.12915,0.021232,0.054946,0,0,0,0,0,1.9237e-7,0.025000,4.9087e-4,1.2339,0,1.9802,287.06,99357,339.73,0.016439,1.0290</datapoint>
+          <datapoint>4.1613,182.03,89.811,21.429,95.477,23.912,44.082,0,44.082,0,30.248,10.611,0.0014755,0,0.025118,0,0.072657,0.31196,0.24601,2.6380,0.28109,2705282,4.7356,2.3384,0.86796,0.86798,0.43311,0.30458,0.13027,0.015462,0.040787,0,0,0,0,0,1.5926e-6,0.025000,4.9087e-4,1.2260,0,2.1536,286.97,99190,339.67,0.019426,1.0479</datapoint>
+          <datapoint>4.3051,195.13,92.266,14.781,98.198,17.156,48.536,0,48.536,0,31.652,8.7093,5.3969e-4,0,0.0058705,0,0.072313,0.31216,0.24543,2.6692,0.28914,2779531,4.3599,2.4730,0.86887,0.86887,0.43291,0.30509,0.13087,0.0056475,0.015074,0,0,0,0,0,8.2533e-8,0.025000,4.9087e-4,1.2220,0,1.9596,286.88,99036,339.62,0.041350,1.0547</datapoint>
+          <datapoint>4.4571,209.31,94.325,12.847,100.56,15.161,53.444,0,53.444,0,32.952,8.0490,6.6116e-4,0,0.0086295,0,0.071692,0.31216,0.24437,2.7117,0.29613,2843150,4.3163,2.5921,0.86967,0.86968,0.43273,0.30554,0.13140,0.0069227,0.018772,0,0,0,0,0,1.7121e-7,0.025000,4.9087e-4,1.2176,0,1.8941,286.79,98870,339.56,0.039727,1.0594</datapoint>
+          <datapoint>4.6073,223.62,96.186,13.428,102.70,15.687,58.486,0,58.486,0,34.179,8.1097,0.0011397,0,0.042163,0,0.070703,0.31209,0.24264,2.7781,0.30250,2900584,4.4428,2.7026,0.87043,0.87044,0.43256,0.30597,0.13190,0.011948,0.033189,0,0,0,0,0,3.9620e-6,0.025000,4.9087e-4,1.2138,0,1.8213,286.70,98702,339.51,0.023183,1.0645</datapoint>
+          <datapoint>4.7711,239.54,98.160,11.195,104.93,13.205,64.196,0,64.196,0,35.516,7.0030,0.0017292,0,0.062356,0,0.070213,0.31200,0.24176,2.8096,0.30913,2959890,4.3735,2.8196,0.87123,0.87126,0.43239,0.30642,0.13242,0.018156,0.051003,0,0,0,0,0,8.3490e-6,0.025000,4.9087e-4,1.2113,0,1.5710,286.59,98516,339.45,0.011499,1.0937</datapoint>
+          <datapoint>4.9294,255.20,99.745,9.3865,106.96,11.816,69.913,0,69.913,0,36.699,7.1768,4.5624e-4,0,0.10321,0,0.069538,0.31226,0.24054,2.8690,0.31516,3013336,4.3530,2.9275,0.87198,0.87198,0.43222,0.30684,0.13291,0.0047801,0.013692,0,0,0,0,0,2.2194e-5,0.025000,4.9087e-4,1.2019,0,1.9153,286.49,98332,339.38,0.022610,1.1061</datapoint>
+          <datapoint>5.0826,270.57,100.87,7.3305,108.42,10.484,75.617,0,75.617,0,37.721,7.4950,0.0010866,0,-0.10393,0,0.067776,0.32000,0.23723,3.3108,0.31953,3050926,4.2733,3.0057,0.87252,0.87254,0.43210,0.30715,0.13327,0.013025,0.043147,0,0,0,0,0,-2.2409e-5,0.025000,4.9087e-4,1.1941,0,2.0519,286.39,98152,339.32,0.013739,1.1196</datapoint>
+          <datapoint>5.2411,286.66,102.09,7.6300,109.92,10.865,81.685,0,81.685,0,38.837,7.7355,0.0011036,0,-0.035866,0,0.066934,0.32001,0.23558,3.3771,0.32399,3089017,4.3629,3.0863,0.87309,0.87310,0.43198,0.30747,0.13365,0.013233,0.044691,0,0,0,0,0,-2.6277e-6,0.025000,4.9087e-4,1.1901,0,1.8931,286.29,97963,339.26,0.012611,1.1554</datapoint>
+          <datapoint>5.4031,303.30,103.38,8.0244,111.53,10.803,88.072,0,88.072,0,40.004,7.2325,1.6449e-5,0,0.012295,0,0.066063,0.32022,0.23383,3.4553,0.32880,3130178,4.4463,3.1745,0.87372,0.87372,0.43184,0.30782,0.13405,1.9693e-4,6.8015e-4,0,0,0,0,0,3.0379e-7,0.025000,4.9087e-4,1.1862,0,1.8358,286.18,97768,339.19,0.030930,1.1655</datapoint>
+          <datapoint>5.5602,319.65,104.57,7.3520,113.00,9.7763,94.445,0,94.445,0,41.106,6.4440,8.7914e-4,0,0.019673,0,0.065022,0.31225,0.23169,3.2225,0.33322,3167488,4.4480,3.2561,0.87429,0.87430,0.43171,0.30815,0.13443,0.0092280,0.029736,0,0,0,0,0,7.6989e-7,0.025000,4.9087e-4,1.1829,0,1.7280,286.07,97576,339.13,0.019340,1.1746</datapoint>
+          <datapoint>5.7003,333.97,98.723,-51.773,106.91,54.676,100.11,0,100.11,0,39.245,17.578,2.5706e-4,0,0.069742,0,0.063810,0.31230,0.22910,3.3282,0.31530,2993270,0,2.9027,0.87199,0.87199,0.43222,0.30685,0.13292,0.0026922,0.0089490,0,0,0,0,0,1.1028e-5,0.025000,4.9087e-4,1.1771,0,1.7872,285.98,97408,339.07,0.040115,1.1811</datapoint>
+          <datapoint>5.8512,348.30,91.376,-45.808,99.111,48.141,105.84,0,105.84,0,36.806,14.805,5.8256e-4,0,-0.0032178,0,0.063810,0.32000,0.22910,3.6362,0.29235,2771716,0,2.4832,0.86923,0.86924,0.43283,0.30530,0.13111,0.0069668,0.025333,0,0,0,0,0,-2.7317e-8,0.025000,4.9087e-4,1.1725,0,1.5771,285.89,97240,339.02,0.039323,1.2017</datapoint>
+          <datapoint>6.0038,361.73,84.805,-40.758,92.190,42.764,111.29,0,111.29,0,34.653,12.942,5.3329e-4,0,-0.037150,0,0.063810,0.31995,0.22910,3.6343,0.27198,2575404,0,2.1401,0.86696,0.86696,0.43333,0.30402,0.12962,0.0063704,0.023156,0,0,0,0,0,-4.2083e-6,0.025000,4.9087e-4,1.1673,0,1.4997,285.80,97083,338.96,0.031550,1.2068</datapoint>
+          <datapoint>6.1524,373.90,79.077,-36.515,86.193,38.398,116.30,0,116.30,0,32.809,11.878,8.4883e-4,0,0.083864,0,0.063810,0.31200,0.22910,3.3161,0.25432,2405515,0,1.8645,0.86513,0.86513,0.43374,0.30298,0.12841,0.0088731,0.029399,0,0,0,0,0,2.4534e-5,0.025000,4.9087e-4,1.1625,0,1.4837,285.72,96940,338.92,0.042301,1.2114</datapoint>
+          <datapoint>6.3037,385.46,73.803,-33.161,80.771,34.774,121.14,0,121.14,0,31.145,10.469,2.8308e-4,0,0.087018,0,0.063810,0.31206,0.22910,3.3186,0.23835,2252112,0,1.6325,0.86357,0.86357,0.43408,0.30211,0.12739,0.0029539,0.0097726,0,0,0,0,0,3.0080e-5,0.025000,4.9087e-4,1.1527,0,1.6734,285.64,96804,338.87,0.043582,1.2165</datapoint>
+          <datapoint>6.4771,397.78,68.343,-29.627,75.070,31.166,126.39,0,126.39,0,29.457,9.6740,0.0024850,0,0.080017,0,0.063810,0.31161,0.22910,3.3003,0.22156,2091094,0,1.4061,0.86205,0.86210,0.43442,0.30125,0.12638,0.026025,0.085862,0,0,0,0,0,2.9444e-5,0.025000,4.9087e-4,1.1467,0,1.6040,285.56,96660,338.82,0.014812,1.2211</datapoint>
+          <datapoint>6.6455,408.87,63.542,-26.961,70.118,28.303,131.23,0,131.23,0,28.014,8.6111,0.0025896,0,0.030956,0,0.063810,0.31155,0.22910,3.2982,0.20697,1951402,0,1.2236,0.86082,0.86088,0.43469,0.30056,0.12557,0.027111,0.089414,0,0,0,0,0,5.0512e-6,0.025000,4.9087e-4,1.1368,0,1.6338,285.49,96530,338.78,0.014033,1.2348</datapoint>
+          <datapoint>6.8101,418.97,59.249,-25.055,65.804,26.068,135.73,0,135.73,0,26.748,7.1983,6.8670e-4,0,5.7990e-4,0,0.063810,0.31975,0.22910,3.6261,0.19426,1829858,0,1.0753,0.85981,0.85982,0.43491,0.29999,0.12491,0.0081786,0.029656,0,0,0,0,0,0,0.025000,4.9087e-4,1.1200,0,1.8838,285.43,96411,338.74,0.024073,1.2537</datapoint>
+          <datapoint>6.9663,427.93,55.496,-23.379,61.970,24.196,139.82,0,139.82,0,25.641,6.2317,0.0023613,0,-0.074043,0,0.063810,0.31943,0.22910,3.6133,0.18296,1721974,0,0.95189,0.85897,0.85902,0.43510,0.29952,0.12435,0.028194,0.10191,0,0,0,0,0,-3.6998e-5,0.025000,4.9087e-4,1.1073,0,1.9348,285.37,96306,338.70,0.016062,1.2623</datapoint>
+          <datapoint>7.1290,436.66,51.871,-21.532,58.250,22.349,143.90,0,143.90,0,24.599,5.9875,7.8959e-6,0,0,0,0.063810,0.31197,0.22910,3.3147,0.17200,1617468,0,0.83952,0.85820,0.85820,0.43527,0.29909,0.12385,8.2152e-5,2.7231e-4,0,0,0,0,0,0,0.025000,4.9087e-4,1.0984,0,1.9054,285.31,96204,338.67,0.028847,1.2719</datapoint>
+          <datapoint>7.2957,445.02,48.401,-19.892,54.735,20.710,147.93,0,147.93,0,23.660,5.7636,0.0030194,0,0.090931,0,0.063810,0.31138,0.22910,3.2913,0.16163,1518837,0,0.74013,0.85752,0.85760,0.43542,0.29871,0.12340,0.031592,0.10391,0,0,0,0,0,7.1525e-5,0.025000,4.9087e-4,1.0880,0,1.8992,285.26,96106,338.64,0.019551,1.2975</datapoint>
+          <datapoint>7.4688,453.10,45.040,-18.781,51.398,19.407,151.94,0,151.94,0,22.773,4.8901,2.5393e-4,0,-0.047607,0,0.063810,0.31975,0.22910,3.6263,0.15179,1425291,0,0.65158,0.85692,0.85692,0.43555,0.29837,0.12300,0.0030181,0.010967,0,0,0,0,0,-2.2234e-5,0.025000,4.9087e-4,1.0679,0,1.9880,285.20,96011,338.60,0.033252,1.3069</datapoint>
+          <datapoint>7.6263,459.97,42.173,-17.707,48.465,18.262,155.47,0,155.47,0,22.025,4.4695,1.5210e-5,0,0,0,0.063810,0.31192,0.22910,3.3127,0.14314,1343224,0,0.57861,0.85641,0.85641,0.43566,0.29808,0.12266,1.5813e-4,5.2384e-4,0,0,0,0,0,0,0.025000,4.9087e-4,1.0556,0,1.8563,285.16,95930,338.58,0.045979,1.3118</datapoint>
+          <datapoint>7.7675,465.75,39.734,-16.857,46.038,17.361,158.54,0,158.54,0,21.417,4.1534,3.1723e-4,0,0.10441,0,0.063810,0.31185,0.22910,3.3100,0.13598,1275345,0,0.52156,0.85602,0.85602,0.43575,0.29786,0.12240,0.0032994,0.010788,0,0,0,0,0,1.3330e-4,0.025000,4.9087e-4,1.0416,0,1.8360,285.12,95863,338.55,0.048621,1.3161</datapoint>
+          <datapoint>7.9145,471.41,37.311,-16.094,43.598,16.530,161.64,0,161.64,0,20.839,3.7713,2.1384e-4,0,-0.080844,0,0.063810,0.31973,0.22910,3.6253,0.12879,1207211,0,0.46729,0.85564,0.85564,0.43583,0.29765,0.12216,0.0025400,0.0092972,0,0,0,0,0,-8.9108e-5,0.025000,4.9087e-4,1.0268,0,1.7159,285.09,95796,338.53,0.049527,1.3196</datapoint>
+          <datapoint>8.0635,476.79,34.977,-15.362,41.332,15.763,164.70,0,164.70,0,20.282,3.5340,4.9220e-4,0,0.15836,0,0.063810,0.31179,0.22910,3.3079,0.12210,1143949,0,0.41958,0.85531,0.85532,0.43591,0.29747,0.12194,0.0051195,0.016554,0,0,0,0,0,3.8044e-4,0.025000,4.9087e-4,1.0094,0,1.7400,285.05,95733,338.51,0.049838,1.3230</datapoint>
+          <datapoint>8.2131,481.86,32.723,-14.693,39.250,15.074,167.70,0,167.70,0,19.777,3.3677,0.0017285,0,0.15278,0,0.063810,0.31155,0.22910,3.2982,0.11596,1085891,0,0.37807,0.85503,0.85505,0.43597,0.29731,0.12175,0.018020,0.059043,0,0,0,0,0,3.9266e-4,0.025000,4.9087e-4,0.98748,0,1.8988,285.02,95674,338.49,0.049944,1.3269</datapoint>
+          <datapoint>8.3630,486.60,30.555,-14.247,37.226,14.551,170.63,0,170.63,0,19.301,2.9576,0.0014923,0,-0.16094,0,0.063810,0.31948,0.22910,3.6153,0.10998,1029477,0,0.33981,0.85476,0.85478,0.43603,0.29716,0.12157,0.017758,0.064684,0,0,0,0,0,-4.8439e-4,0.025000,4.9087e-4,0.96134,0,1.9618,284.99,95618,338.47,0.049981,1.3304</datapoint>
+          <datapoint>8.5130,491.02,28.469,-13.625,35.328,13.932,173.49,0,173.49,0,18.858,2.9126,0.0017218,0,0.17431,0,0.063810,0.31154,0.22910,3.2977,0.10438,976644,0,0.30583,0.85452,0.85455,0.43608,0.29702,0.12142,0.017946,0.058550,0,0,0,0,0,6.3088e-4,0.025000,4.9087e-4,0.93881,0,2.0614,284.96,95566,338.45,0.049993,1.3342</datapoint>
+          <datapoint>8.6576,495.00,26.519,-13.314,33.426,13.544,176.19,0,176.19,0,18.470,2.4877,0.0027898,0,-0.13299,0,0.063810,0.31924,0.22910,3.6056,0.098766,923773,0,0.27362,0.85430,0.85437,0.43613,0.29690,0.12127,0.033264,0.12035,0,0,0,0,0,-4.1024e-4,0.025000,4.9087e-4,0.91352,0,1.8789,284.93,95519,338.44,0.044841,1.3516</datapoint>
+          <datapoint>8.8176,499.08,24.447,-12.514,31.554,12.812,179.11,0,179.11,0,18.063,2.7470,0.0097273,0,0.17223,0,0.063810,0.31005,0.22910,3.2380,0.093238,871738,0,0.24388,0.85409,0.85490,0.43618,0.29678,0.12113,0.10296,0.33262,0,0,0,0,0,7.7212e-4,0.025000,4.9087e-4,0.89607,0,1.8874,284.91,95472,338.42,0.018326,1.3639</datapoint>
+          <datapoint>8.9904,503.12,22.300,-12.452,29.787,12.637,182.19,0,182.19,0,17.629,2.1549,0.0030347,0,-0.34693,0,0.063810,0.31918,0.22910,3.6034,0.088022,822668,0,0.21702,0.85390,0.85398,0.43622,0.29668,0.12101,0.036194,0.13394,0,0,0,0,0,-0.0035156,0.025000,4.9087e-4,0.84296,0,2.1198,284.88,95426,338.41,0.040024,1.3737</datapoint>
+          <datapoint>9.1467,506.45,20.363,-12.146,28.067,12.299,184.92,0,184.92,0,17.326,1.9318,0.0051321,0,-0.10422,0,0.063810,0.31881,0.22910,3.5884,0.082941,774951,0,0.19260,0.85373,0.85396,0.43626,0.29658,0.12089,0.061425,0.22078,0,0,0,0,0,-3.5731e-4,0.025000,4.9087e-4,0.80664,0,1.9900,284.86,95389,338.39,0.024315,1.3823</datapoint>
+          <datapoint>9.2993,509.42,18.568,-11.457,26.457,11.658,187.55,0,187.55,0,17.007,2.1576,0.011295,0,0.19194,0,0.063810,0.30975,0.22910,3.2260,0.078188,730354,0,0.17124,0.85358,0.85467,0.43629,0.29650,0.12079,0.11990,0.38542,0,0,0,0,0,0.0013640,0.025000,4.9087e-4,0.78921,0,1.8403,284.84,95356,338.38,0.022479,1.4052</datapoint>
+          <datapoint>9.4487,512.06,16.870,-11.310,25.039,11.466,190.06,0,190.06,0,16.705,1.8891,0.0062526,0,0.37361,0,0.063810,0.31067,0.22910,3.2628,0.073998,691055,0,0.15318,0.85346,0.85379,0.43632,0.29643,0.12071,0.065721,0.20866,0,0,0,0,0,0.0057699,0.025000,4.9087e-4,0.74552,0,1.7978,284.82,95326,338.37,0.034286,1.4121</datapoint>
+          <datapoint>9.6089,514.62,15.056,-11.255,23.716,11.369,192.72,0,192.72,0,16.433,1.6045,0.0033095,0,-0.34959,0,0.063810,0.31912,0.22910,3.6009,0.070092,654432,0,0.13734,0.85335,0.85344,0.43634,0.29636,0.12064,0.039480,0.14780,0,0,0,0,0,-0.0056311,0.025000,4.9087e-4,0.68447,0,1.8914,284.80,95297,338.36,0.046227,1.4177</datapoint>
+          <datapoint>9.7506,516.64,13.480,-11.001,22.611,11.111,195.03,0,195.03,0,16.208,1.5562,9.1744e-4,0,-0.31310,0,0.063810,0.31954,0.22910,3.6179,0.066825,623821,0,0.12478,0.85326,0.85327,0.43636,0.29631,0.12058,0.010899,0.044400,0,0,0,0,0,-0.0049693,0.025000,4.9087e-4,0.63779,0,1.9457,284.79,95275,338.35,0.048706,1.4213</datapoint>
+          <datapoint>9.8978,518.51,11.883,-10.695,21.501,10.805,197.40,0,197.40,0,15.981,1.5407,0.0060025,0,0.33895,0,0.063810,0.31070,0.22910,3.2643,0.063547,593116,0,0.11284,0.85317,0.85348,0.43638,0.29627,0.12052,0.063054,0.19939,0,0,0,0,0,0.0064407,0.025000,4.9087e-4,0.59156,0,1.9383,284.78,95254,338.35,0.049556,1.4253</datapoint>
+          <datapoint>10.047,520.16,10.299,-10.525,20.353,10.621,199.76,0,199.76,0,15.763,1.4222,0.0060773,0,0.39681,0,0.063810,0.31069,0.22910,3.2637,0.060157,561396,0,0.10109,0.85309,0.85341,0.43640,0.29622,0.12047,0.063847,0.19852,0,0,0,0,0,0.0098503,0.025000,4.9087e-4,0.53663,0,1.7923,284.77,95236,338.34,0.049848,1.4289</datapoint>
+          <datapoint>10.196,521.58,8.7311,-10.425,19.249,10.504,202.11,0,202.11,0,15.562,1.2796,0.0024019,0,0.44097,0,0.063810,0.31137,0.22910,3.2910,0.056894,530882,0,0.090373,0.85302,0.85307,0.43642,0.29618,0.12042,0.025052,0.068843,0,0,0,0,0,0.013600,0.025000,4.9087e-4,0.47318,0,1.5937,284.76,95220,338.33,0.049948,1.4327</datapoint>
+          <datapoint>10.346,522.78,7.1810,-10.254,18.446,10.328,204.43,0,204.43,0,15.374,1.2275,0.0051017,0,0.47266,0,0.063810,0.31087,0.22910,3.2707,0.054520,508670,0,0.082987,0.85297,0.85319,0.43643,0.29615,0.12039,0.053492,0.15794,0,0,0,0,0,0.017017,0.025000,4.9087e-4,0.40498,0,1.6163,284.75,95206,338.33,0.049982,1.4362</datapoint>
+          <datapoint>10.496,523.74,5.6541,-10.129,17.738,10.196,206.72,0,206.72,0,15.194,1.1643,0.0055408,0,0.52534,0,0.063810,0.31078,0.22910,3.2674,0.052430,489130,0,0.076737,0.85292,0.85319,0.43644,0.29612,0.12036,0.058144,0.16725,0,0,0,0,0,0.022731,0.025000,4.9087e-4,0.32995,0,1.6191,284.75,95196,338.33,0.049994,1.4397</datapoint>
+          <datapoint>10.657,524.51,3.6893,-41.933,16.203,138.14,209.13,0,209.13,0,13.594,131.62,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.047892,446771,0,8.6448,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.6706,284.74,95187,338.32,0.0036196,1.4437</datapoint>
+          <datapoint>10.821,524.79,0.36691,-11.917,7.0196,28.002,210.44,0,210.44,0,4.7014,25.340,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.020748,193550,0,1.6225,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8418,284.74,95184,338.32,0.017856,1.4456</datapoint>
+          <datapoint>10.986,524.72,-1.1309,-7.7977,4.6511,13.466,210.97,0,210.97,0,2.1073,10.979,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013748,128243,0,0.71229,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0594,284.74,95184,338.32,0.037130,1.4487</datapoint>
+          <datapoint>11.133,524.48,-2.1277,-6.3628,3.7673,9.0660,211.19,0,211.19,0,0.98833,6.4581,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011135,103876,0,0.46733,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9775,284.74,95186,338.32,0.055151,1.4490</datapoint>
+          <datapoint>11.264,524.15,-2.8451,-5.2076,3.6025,7.1220,211.27,0,211.27,0,0.29194,4.8584,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.010648,99333,0,0.42734,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9804,284.74,95189,338.32,0.070205,1.4493</datapoint>
+          <datapoint>11.437,523.59,-3.5304,-3.5646,3.7898,5.3436,211.26,0,211.26,0,0.43587,3.9809,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011202,104503,0,0.47296,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0988,284.74,95194,338.33,0.093570,1.4495</datapoint>
+          <datapoint>11.556,523.16,-3.8597,-2.7675,3.8692,4.2017,211.18,0,211.18,0,0.81209,3.1615,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011436,106693,0,0.49299,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0192,284.75,95197,338.33,0.11900,1.4497</datapoint>
+          <datapoint>11.712,522.53,-4.1252,-1.7065,4.0715,3.2139,211.02,0,211.02,0,1.2358,2.7234,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012034,112276,0,0.54592,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1082,284.75,95202,338.33,0.15557,1.4498</datapoint>
+          <datapoint>11.957,521.50,-4.3324,-0.84691,4.2130,2.0441,210.67,0,210.67,0,1.6908,1.8604,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012452,116184,0,0.58456,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0914,284.75,95209,338.33,0.24460,1.4499</datapoint>
+          <datapoint>12.457,519.32,-4.3897,-0.11459,4.3386,0.53462,209.76,0,209.76,0,1.9519,0.52219,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012824,119658,0,0.62000,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9240,284.76,95221,338.33,0.50000,1.4500</datapoint>
+          <datapoint>12.957,517.14,-4.3141,0.15121,4.3984,0.64749,208.86,0,208.86,0,1.6371,0.62958,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013000,121326,0,0.63733,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.6747,284.77,95245,338.34,0.50000,1.4501</datapoint>
+          <datapoint>13.457,514.96,-4.4120,-0.19587,4.3188,0.49079,207.98,0,207.98,0,1.8622,0.45001,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012764,119149,0,0.61459,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8389,284.79,95269,338.35,0.50000,1.4502</datapoint>
+          <datapoint>13.957,512.79,-4.2818,0.26043,4.4223,0.73614,206.97,0,206.97,0,2.2064,0.68854,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013070,122025,0,0.64453,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1636,284.80,95294,338.36,0.50000,1.4506</datapoint>
+          <datapoint>14.457,510.61,-4.4365,-0.30942,4.2982,0.88927,205.97,0,205.97,0,1.7896,0.83371,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012703,118622,0,0.60900,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8310,284.82,95318,338.37,0.50000,1.4508</datapoint>
+          <datapoint>14.957,508.44,-4.2525,0.36807,4.4430,0.66371,205.00,0,205.00,0,2.0657,0.55231,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013130,122638,0,0.65086,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0301,284.83,95342,338.38,0.50000,1.4509</datapoint>
+          <datapoint>15.457,506.25,-4.4745,-0.44411,4.2648,0.84107,203.88,0,203.88,0,2.4229,0.71427,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012603,117738,0,0.59981,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.3898,284.85,95367,338.39,0.50000,1.4510</datapoint>
+          <datapoint>15.957,504.09,-4.2008,0.54750,4.4810,0.78283,202.74,0,202.74,0,2.1431,0.55953,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013242,123728,0,0.66231,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1813,284.86,95391,338.39,0.50000,1.4511</datapoint>
+          <datapoint>16.457,501.90,-4.5473,-0.69303,4.2009,0.69667,201.68,0,201.68,0,2.1075,0.071111,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012414,116013,0,0.58221,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1103,284.87,95415,338.40,0.50000,1.4512</datapoint>
+          <datapoint>16.957,499.73,-4.1092,0.87620,4.5473,0.87655,200.63,0,200.63,0,2.0951,0.024797,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013437,125600,0,0.68233,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0970,284.89,95440,338.41,0.50000,1.4513</datapoint>
+          <datapoint>17.418,497.72,-4.6087,-1.0831,4.1092,1.0840,199.66,0,199.66,0,2.1163,0.045977,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012142,113519,0,0.55731,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1168,284.90,95464,338.42,0.46123,1.4514</datapoint>
+          <datapoint>17.839,495.89,-4.1143,1.1730,4.6093,1.1861,198.78,0,198.78,0,2.0422,0.17578,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013620,127355,0,0.70135,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0426,284.91,95488,338.43,0.42155,1.4515</datapoint>
+          <datapoint>18.285,493.95,-4.5814,-1.0491,4.1185,1.1229,197.83,0,197.83,0,2.2205,0.40028,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012169,113812,0,0.56005,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2301,284.93,95509,338.44,0.44528,1.4516</datapoint>
+          <datapoint>18.674,492.25,-4.1652,1.0689,4.5912,1.2840,197.02,0,197.02,0,1.9435,0.71133,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013566,126893,0,0.69611,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9211,284.94,95532,338.44,0.38941,1.4518</datapoint>
+          <datapoint>19.174,490.06,-4.5819,-0.83340,4.1668,0.87085,196.02,0,196.02,0,2.0698,0.25265,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012311,115180,0,0.57346,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0606,284.95,95552,338.45,0.50000,1.4519</datapoint>
+          <datapoint>19.601,488.20,-4.1283,1.0633,4.5866,1.1722,195.18,0,195.18,0,1.8593,0.49353,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013551,126806,0,0.69498,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8620,284.96,95577,338.46,0.42654,1.4520</datapoint>
+          <datapoint>20.101,486.01,-4.6236,-0.99062,4.1287,0.99822,194.26,0,194.26,0,1.7978,0.12288,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012198,114165,0,0.56326,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8018,284.98,95599,338.47,0.50000,1.4521</datapoint>
+          <datapoint>20.491,484.31,-4.1326,1.2583,4.6247,1.2812,193.54,0,193.54,0,1.8920,0.24117,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013663,127903,0,0.70688,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8985,284.99,95625,338.47,0.39024,1.4522</datapoint>
+          <datapoint>20.991,482.12,-4.6174,-0.96967,4.1327,0.97140,192.60,0,192.60,0,1.8630,0.057989,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012209,114311,0,0.56455,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8649,285.00,95645,338.48,0.50000,1.4523</datapoint>
+          <datapoint>21.391,480.37,-4.1247,1.2323,4.6183,1.2505,191.88,0,191.88,0,1.7778,0.21293,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013644,127765,0,0.70518,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7740,285.02,95671,338.49,0.39983,1.4524</datapoint>
+          <datapoint>21.885,478.21,-4.6181,-0.99851,4.1254,1.0119,190.98,0,190.98,0,1.8588,0.16388,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012187,114147,0,0.56280,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8545,285.03,95691,338.50,0.49413,1.4525</datapoint>
+          <datapoint>22.265,476.55,-4.1449,1.2460,4.6215,1.3167,190.30,0,190.30,0,1.6972,0.42550,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013653,127896,0,0.70645,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.6812,285.04,95716,338.51,0.37974,1.4527</datapoint>
+          <datapoint>22.765,474.36,-4.5964,-0.90287,4.1482,0.97038,189.41,0,189.41,0,1.8750,0.35562,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012254,114814,0,0.56926,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8626,285.05,95736,338.51,0.50000,1.4528</datapoint>
+          <datapoint>23.198,472.48,-4.1022,1.1397,4.5970,1.1532,188.58,0,188.58,0,1.9514,0.17603,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013580,127257,0,0.69923,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9489,285.07,95762,338.52,0.43359,1.4529</datapoint>
+          <datapoint>23.633,470.59,-4.5720,-1.0802,4.1064,1.1496,187.69,0,187.69,0,2.1226,0.39365,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012130,113694,0,0.55806,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1362,285.08,95784,338.53,0.43492,1.4530</datapoint>
+          <datapoint>24.108,468.53,-4.0831,1.0287,4.5730,1.0520,186.71,0,186.71,0,2.0180,0.22010,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013508,126631,0,0.69220,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0298,285.09,95806,338.54,0.47529,1.4531</datapoint>
+          <datapoint>24.472,466.97,-4.4951,-1.1323,4.0994,1.3740,185.92,0,185.92,0,2.3012,0.77841,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012109,113538,0,0.55639,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.3839,285.10,95830,338.54,0.36389,1.4533</datapoint>
+          <datapoint>24.972,464.81,-4.1579,0.67439,4.4976,0.76033,184.82,0,184.82,0,2.1257,0.35113,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013285,124581,0,0.66982,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1508,285.11,95848,338.55,0.50000,1.4534</datapoint>
+          <datapoint>25.472,462.63,-4.5710,-0.82614,4.1660,0.99922,183.83,0,183.83,0,1.8446,0.56207,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012305,115417,0,0.57482,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8657,285.13,95874,338.56,0.50000,1.4535</datapoint>
+          <datapoint>25.957,460.53,-4.0712,1.0302,4.5710,1.0308,182.93,0,182.93,0,1.8607,0.033219,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013501,126659,0,0.69216,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8586,285.14,95899,338.57,0.48508,1.4537</datapoint>
+          <datapoint>26.363,458.78,-4.5611,-1.2067,4.0729,1.2316,182.15,0,182.15,0,1.9609,0.24687,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012030,112876,0,0.54965,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9775,285.16,95924,338.57,0.40596,1.4538</datapoint>
+          <datapoint>26.863,456.62,-4.0673,0.98753,4.5611,0.98860,181.16,0,181.16,0,1.9839,0.045891,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013471,126425,0,0.68944,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9803,285.17,95944,338.58,0.50000,1.4539</datapoint>
+          <datapoint>27.234,455.03,-4.5122,-1.2014,4.0777,1.3502,180.47,0,180.47,0,1.7557,0.61615,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012043,113045,0,0.55116,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.6930,285.18,95970,338.59,0.37031,1.4540</datapoint>
+          <datapoint>27.734,452.87,-4.1313,0.76194,4.5126,0.77317,179.61,0,179.61,0,1.6901,0.13132,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013327,125117,0,0.67509,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.6997,285.19,95988,338.60,0.50000,1.4541</datapoint>
+          <datapoint>28.143,451.10,-4.5046,-0.91103,4.1484,1.2201,178.85,0,178.85,0,2.0227,0.81164,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012251,115040,0,0.57064,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0666,285.21,96014,338.61,0.40979,1.4542</datapoint>
+          <datapoint>28.643,448.94,-4.1304,0.74838,4.5127,0.98022,177.92,0,177.92,0,1.7061,0.63306,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013327,125160,0,0.67538,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7528,285.22,96034,338.61,0.50000,1.4543</datapoint>
+          <datapoint>29.088,447.02,-4.5415,-0.92505,4.1411,1.1250,177.10,0,177.10,0,1.9907,0.64019,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012229,114874,0,0.56886,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0035,285.23,96060,338.62,0.44446,1.4544</datapoint>
+          <datapoint>29.588,444.86,-4.0876,0.90794,4.5417,0.91225,176.09,0,176.09,0,2.0350,0.088570,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013412,126007,0,0.68437,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0282,285.24,96082,338.63,0.50000,1.4546</datapoint>
+          <datapoint>30.031,442.94,-4.5876,-1.1274,4.0876,1.1275,175.19,0,175.19,0,2.0300,0.011130,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012071,113427,0,0.55448,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0297,285.26,96108,338.64,0.44347,1.4547</datapoint>
+          <datapoint>30.343,441.56,-4.2188,1.1834,4.6098,1.6045,174.61,0,174.61,0,1.6924,1.0836,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013612,127937,0,0.70532,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.5781,285.27,96130,338.64,0.31162,1.4548</datapoint>
+          <datapoint>30.843,439.38,-4.4930,-0.54851,4.2229,0.68496,173.71,0,173.71,0,1.8975,0.41025,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012470,117214,0,0.59199,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8791,285.28,96146,338.65,0.50000,1.4549</datapoint>
+          <datapoint>31.343,437.23,-4.1441,0.69792,4.4974,0.83827,172.70,0,172.70,0,2.1297,0.46433,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013280,124856,0,0.67160,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0959,285.29,96172,338.66,0.50000,1.4550</datapoint>
+          <datapoint>31.843,435.04,-4.5811,-0.87413,4.1462,0.92030,171.68,0,171.68,0,1.9857,0.28785,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012243,115126,0,0.57093,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9963,285.31,96197,338.67,0.50000,1.4551</datapoint>
+          <datapoint>32.233,433.34,-4.1420,1.1255,4.5883,1.2815,170.95,0,170.95,0,1.7466,0.61283,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013548,127424,0,0.69933,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7292,285.32,96223,338.68,0.39016,1.4553</datapoint>
+          <datapoint>32.733,431.16,-4.5785,-0.87295,4.1472,0.98176,170.02,0,170.02,0,1.9712,0.44923,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012245,115191,0,0.57143,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9547,285.33,96243,338.68,0.50000,1.4554</datapoint>
+          <datapoint>33.179,429.23,-4.0874,1.1020,4.5794,1.1220,169.12,0,169.12,0,2.0653,0.21102,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013521,127215,0,0.69686,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0597,285.35,96268,338.69,0.44563,1.4555</datapoint>
+          <datapoint>33.618,427.33,-4.5751,-1.1110,4.0891,1.1391,168.19,0,168.19,0,2.1757,0.25144,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012073,113614,0,0.55575,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1833,285.36,96291,338.70,0.43895,1.4635</datapoint>
+          <datapoint>34.063,425.40,-4.0893,1.0911,4.5764,1.1229,167.25,0,167.25,0,2.0574,0.26556,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013512,127174,0,0.69624,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0643,285.37,96313,338.71,0.44527,1.4638</datapoint>
+          <datapoint>34.496,423.53,-4.5640,-1.0959,4.0928,1.1542,166.39,0,166.39,0,1.9006,0.36195,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012083,113751,0,0.55696,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8877,285.38,96336,338.71,0.43321,1.4639</datapoint>
+          <datapoint>34.962,421.51,-4.0787,1.0424,4.5653,1.0738,165.48,0,165.48,0,2.0206,0.25775,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013478,126904,0,0.69313,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0089,285.40,96358,338.72,0.46563,1.4641</datapoint>
+          <datapoint>35.389,419.67,-4.5663,-1.1414,4.0805,1.1704,164.64,0,164.64,0,1.9099,0.25911,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012046,113445,0,0.55383,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8988,285.41,96381,338.73,0.42720,1.4642</datapoint>
+          <datapoint>35.851,417.67,-4.0783,1.0566,4.5673,1.0827,163.73,0,163.73,0,2.0190,0.23621,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013483,126999,0,0.69400,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0091,285.42,96403,338.74,0.46182,1.4643</datapoint>
+          <datapoint>36.286,415.79,-4.5754,-1.1426,4.0787,1.1494,162.86,0,162.86,0,1.9648,0.12464,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012041,113431,0,0.55356,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9604,285.44,96426,338.74,0.43502,1.4644</datapoint>
+          <datapoint>36.671,414.11,-4.1439,1.1212,4.5836,1.2992,162.06,0,162.06,0,2.2174,0.65638,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013531,127491,0,0.69921,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2394,285.45,96448,338.75,0.38485,1.4645</datapoint>
+          <datapoint>37.171,411.93,-4.5734,-0.85909,4.1439,0.86087,160.94,0,160.94,0,2.2451,0.055328,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012233,115278,0,0.57161,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2430,285.46,96468,338.76,0.50000,1.4646</datapoint>
+          <datapoint>37.588,410.12,-4.1121,1.1062,4.5775,1.1990,160.05,0,160.05,0,2.0522,0.46251,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013512,127361,0,0.69763,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0514,285.47,96494,338.77,0.41702,1.4647</datapoint>
+          <datapoint>38.007,408.31,-4.5169,-0.96502,4.1249,1.1921,159.25,0,159.25,0,1.7587,0.69983,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012176,114786,0,0.56660,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7271,285.48,96515,338.77,0.41944,1.4648</datapoint>
+          <datapoint>38.507,406.16,-4.0952,0.84341,4.5217,0.97649,158.43,0,158.43,0,1.5126,0.49212,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013347,125845,0,0.68096,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.5501,285.50,96536,338.78,0.50000,1.4650</datapoint>
+          <datapoint>38.926,404.35,-4.5313,-1.0423,4.1042,1.1948,157.74,0,157.74,0,1.7570,0.58411,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012114,114247,0,0.56115,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7852,285.51,96561,338.79,0.41847,1.4651</datapoint>
+          <datapoint>39.424,402.21,-4.0768,0.91275,4.5348,1.0040,156.82,0,156.82,0,1.9653,0.41817,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013385,126250,0,0.68518,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9336,285.52,96583,338.80,0.49802,1.4652</datapoint>
+          <datapoint>39.845,400.39,-4.5521,-1.1289,4.0804,1.1876,155.96,0,155.96,0,2.1205,0.36860,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012044,113621,0,0.55488,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1383,285.54,96608,338.80,0.42102,1.4653</datapoint>
+          <datapoint>40.341,398.26,-4.0522,1.0072,4.5521,1.0075,154.91,0,154.91,0,2.1094,0.022342,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013435,126772,0,0.69069,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1111,285.55,96629,338.81,0.49629,1.4654</datapoint>
+          <datapoint>40.742,396.54,-4.5479,-1.2362,4.0529,1.2470,154.05,0,154.05,0,2.1752,0.16405,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011962,112891,0,0.54764,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1869,285.56,96654,338.82,0.40097,1.4655</datapoint>
+          <datapoint>41.201,394.55,-4.0885,0.99978,4.5515,1.0883,153.09,0,153.09,0,1.9776,0.42993,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013433,126794,0,0.69076,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9944,285.57,96674,338.83,0.45943,1.4656</datapoint>
+          <datapoint>41.664,392.54,-4.5884,-1.0800,4.0885,1.0802,152.18,0,152.18,0,1.9674,0.022232,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012066,113916,0,0.55750,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9672,285.59,96698,338.83,0.46286,1.4657</datapoint>
+          <datapoint>42.085,390.72,-4.0885,1.1893,4.5884,1.1895,151.36,0,151.36,0,1.9578,0.022831,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013541,127865,0,0.70230,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9578,285.60,96721,338.84,0.42035,1.4659</datapoint>
+          <datapoint>42.546,388.72,-4.5853,-1.0759,4.0889,1.0829,150.47,0,150.47,0,1.9012,0.12241,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012067,113962,0,0.55782,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9005,285.61,96743,338.85,0.46173,1.4660</datapoint>
+          <datapoint>42.946,386.98,-4.1112,1.1856,4.5883,1.2504,149.67,0,149.67,0,2.0601,0.39720,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013540,127901,0,0.70253,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0668,285.62,96766,338.86,0.39988,1.4661</datapoint>
+          <datapoint>43.438,384.84,-4.5885,-0.97104,4.1136,1.0173,148.62,0,148.62,0,2.2092,0.30341,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012139,114685,0,0.56479,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2011,285.63,96786,338.86,0.49148,1.4662</datapoint>
+          <datapoint>43.855,383.03,-4.0888,1.1978,4.5885,1.1986,147.70,0,147.70,0,2.2273,0.043322,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013540,127946,0,0.70285,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2272,285.65,96811,338.87,0.41715,1.4663</datapoint>
+          <datapoint>44.306,381.08,-4.5687,-1.0635,4.0914,1.1080,146.73,0,146.73,0,2.0869,0.31097,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012073,114101,0,0.55891,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0820,285.66,96833,338.88,0.45124,1.4664</datapoint>
+          <datapoint>44.745,379.18,-4.0811,1.1100,4.5699,1.1382,145.83,0,145.83,0,1.9762,0.25199,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013485,127466,0,0.69743,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9816,285.67,96856,338.89,0.43928,1.4666</datapoint>
+          <datapoint>45.200,377.21,-4.5806,-1.0985,4.0812,1.0996,144.94,0,144.94,0,1.9537,0.049615,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012043,113851,0,0.55633,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9530,285.69,96878,338.90,0.45472,1.4667</datapoint>
+          <datapoint>45.515,375.83,-4.1980,1.2153,4.6002,1.5884,144.27,0,144.27,0,2.2756,1.0228,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013574,128352,0,0.70698,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.3783,285.70,96901,338.90,0.31478,1.4668</datapoint>
+          <datapoint>46.015,373.65,-4.4895,-0.58294,4.2007,0.66945,143.18,0,143.18,0,2.1111,0.32914,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012395,117217,0,0.58959,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1260,285.71,96917,338.91,0.50000,1.4669</datapoint>
+          <datapoint>46.515,371.50,-4.1190,0.74094,4.4902,0.76299,142.15,0,142.15,0,2.0200,0.18213,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013249,125317,0,0.67379,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0336,285.72,96943,338.92,0.50000,1.4670</datapoint>
+          <datapoint>46.951,369.62,-4.5122,-0.90109,4.1320,1.1459,141.33,0,141.33,0,1.7111,0.70788,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012191,115340,0,0.57071,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.6930,285.74,96968,338.93,0.43634,1.4671</datapoint>
+          <datapoint>47.446,367.49,-4.0852,0.86363,4.5177,1.0113,140.42,0,140.42,0,1.9713,0.52621,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013329,126126,0,0.68235,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9334,285.75,96990,338.93,0.49441,1.4673</datapoint>
+          <datapoint>47.885,365.60,-4.5516,-1.0613,4.0897,1.1379,139.59,0,139.59,0,1.7909,0.41040,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012066,114197,0,0.55931,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7798,285.76,97015,338.94,0.43942,1.4674</datapoint>
+          <datapoint>48.300,363.80,-4.1129,1.0572,4.5580,1.2050,138.80,0,138.80,0,2.0308,0.57807,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013447,127292,0,0.69486,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0329,285.77,97037,338.95,0.41495,1.4675</datapoint>
+          <datapoint>48.703,362.07,-4.4791,-0.90911,4.1313,1.2411,138.05,0,138.05,0,1.6904,0.84488,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012188,115393,0,0.57096,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.6407,285.79,97058,338.96,0.40287,1.4676</datapoint>
+          <datapoint>49.203,359.92,-4.1271,0.70397,4.4797,0.72397,137.19,0,137.19,0,1.7749,0.16901,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013216,125141,0,0.67142,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7624,285.80,97079,338.96,0.50000,1.4677</datapoint>
+          <datapoint>49.703,357.74,-4.5689,-0.88349,4.1273,0.88726,136.29,0,136.29,0,1.8158,0.081678,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012176,115317,0,0.57006,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8127,285.81,97104,338.97,0.50000,1.4678</datapoint>
+          <datapoint>50.120,355.93,-4.0932,1.1393,4.5715,1.1975,135.56,0,135.56,0,1.6618,0.36874,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013486,127749,0,0.69951,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.6620,285.82,97129,338.98,0.41754,1.4679</datapoint>
+          <datapoint>50.602,353.85,-4.5866,-1.0252,4.0939,1.0390,134.78,0,134.78,0,1.5807,0.16848,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012077,114421,0,0.56110,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.5834,285.84,97150,338.99,0.48124,1.4680</datapoint>
+          <datapoint>51.011,352.07,-4.0866,1.2222,4.5866,1.2222,134.13,0,134.13,0,1.5844,0.0089265,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013530,128210,0,0.70440,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.5844,285.85,97175,339.00,0.40908,1.4681</datapoint>
+          <datapoint>51.406,350.37,-4.4904,-1.0205,4.1012,1.2635,133.45,0,133.45,0,1.8792,0.74511,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012098,114659,0,0.56331,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9305,285.86,97196,339.00,0.39571,1.4683</datapoint>
+          <datapoint>51.906,348.23,-4.1020,0.77669,4.4942,0.89092,132.56,0,132.56,0,1.6610,0.43645,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013257,125663,0,0.67655,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.6942,285.87,97216,339.01,0.50000,1.4684</datapoint>
+          <datapoint>52.353,346.30,-4.5327,-0.96386,4.1105,1.1191,131.76,0,131.76,0,1.9151,0.56870,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012125,114954,0,0.56608,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9245,285.89,97241,339.02,0.44678,1.4685</datapoint>
+          <datapoint>52.765,344.52,-4.1234,0.99476,4.5421,1.2153,130.92,0,130.92,0,2.2023,0.69806,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013398,127044,0,0.69133,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2077,285.90,97264,339.02,0.41144,1.4686</datapoint>
+          <datapoint>53.265,342.35,-4.5614,-0.87603,4.1283,0.97842,129.76,0,129.76,0,2.4202,0.43576,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012177,115486,0,0.57119,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.4033,285.91,97284,339.03,0.50000,1.4687</datapoint>
+          <datapoint>53.692,340.50,-4.0827,1.1189,4.5636,1.1686,128.76,0,128.76,0,2.2759,0.33721,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013460,127685,0,0.69815,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2795,285.92,97310,339.04,0.42785,1.4688</datapoint>
+          <datapoint>54.062,338.92,-4.4575,-1.0136,4.1037,1.3520,127.98,0,127.98,0,1.9450,0.89476,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012104,114835,0,0.56463,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8609,285.94,97332,339.05,0.36982,1.4689</datapoint>
+          <datapoint>54.562,336.77,-4.1394,0.63620,4.4623,0.79994,127.07,0,127.07,0,1.7025,0.48492,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013161,124886,0,0.66773,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7382,285.95,97350,339.05,0.50000,1.4690</datapoint>
+          <datapoint>55.062,334.60,-4.5359,-0.79293,4.1474,0.97104,126.14,0,126.14,0,1.9828,0.56051,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012232,116092,0,0.57693,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9596,285.96,97375,339.06,0.50000,1.4692</datapoint>
+          <datapoint>55.425,333.02,-4.1596,1.0377,4.5517,1.3790,125.37,0,125.37,0,2.3121,0.90822,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013424,127432,0,0.69505,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.3623,285.98,97401,339.07,0.36258,1.4693</datapoint>
+          <datapoint>55.925,330.85,-4.5175,-0.71584,4.1610,0.75213,124.18,0,124.18,0,2.4275,0.23083,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012271,116507,0,0.58092,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.4176,285.99,97419,339.08,0.50000,1.4694</datapoint>
+          <datapoint>56.354,329.00,-4.1151,0.93879,4.5269,1.1664,123.20,0,123.20,0,2.1308,0.69217,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013350,126775,0,0.68774,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1368,286.00,97445,339.09,0.42868,1.4695</datapoint>
+          <datapoint>56.819,326.99,-4.5283,-0.88853,4.1246,1.0752,122.15,0,122.15,0,2.4123,0.60545,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012164,115524,0,0.57103,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.4098,286.01,97466,339.09,0.46503,1.4696</datapoint>
+          <datapoint>57.277,325.02,-4.0783,0.98227,4.5327,1.0914,121.09,0,121.09,0,2.1944,0.47571,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013367,126976,0,0.68976,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2129,286.02,97490,339.10,0.45813,1.4697</datapoint>
+          <datapoint>57.712,323.15,-4.5357,-1.0520,4.0840,1.1499,120.18,0,120.18,0,1.9925,0.46428,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012043,114425,0,0.56007,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9784,286.04,97513,339.11,0.43483,1.4698</datapoint>
+          <datapoint>58.127,321.35,-4.1081,1.0292,4.5432,1.2033,119.41,0,119.41,0,1.7334,0.62357,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013397,127310,0,0.69323,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7318,286.05,97535,339.12,0.41551,1.4699</datapoint>
+          <datapoint>58.627,319.18,-4.5738,-0.93147,4.1087,0.94298,118.52,0,118.52,0,1.8069,0.14687,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012116,115149,0,0.56706,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8013,286.06,97556,339.12,0.50000,1.4701</datapoint>
+          <datapoint>59.021,317.48,-4.0995,1.2056,4.5769,1.2708,117.78,0,117.78,0,1.9650,0.40190,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013496,128293,0,0.70381,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9736,286.08,97582,339.13,0.39345,1.4702</datapoint>
+          <datapoint>59.507,315.37,-4.5659,-0.95877,4.1031,1.0278,116.87,0,116.87,0,1.7848,0.37042,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012099,115028,0,0.56573,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7936,286.09,97602,339.14,0.48646,1.4703</datapoint>
+          <datapoint>59.906,313.64,-4.0981,1.1731,4.5696,1.2539,116.12,0,116.12,0,1.9615,0.44305,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013474,128129,0,0.70184,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9689,286.10,97626,339.15,0.39874,1.4704</datapoint>
+          <datapoint>60.357,311.70,-4.5273,-0.95084,4.1066,1.1079,115.18,0,115.18,0,2.2181,0.56868,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012108,115161,0,0.56691,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2243,286.11,97647,339.15,0.45130,1.4705</datapoint>
+          <datapoint>60.857,309.55,-4.0358,0.98295,4.5273,0.98319,114.07,0,114.07,0,2.2073,0.021574,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013348,126978,0,0.68914,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2091,286.12,97669,339.16,0.50000,1.4706</datapoint>
+          <datapoint>61.260,307.83,-4.5316,-1.2314,4.0365,1.2417,113.20,0,113.20,0,2.1429,0.15993,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011901,113232,0,0.54794,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1321,286.14,97694,339.17,0.40267,1.4708</datapoint>
+          <datapoint>61.702,305.93,-4.0813,1.0189,4.5363,1.1313,112.30,0,112.30,0,1.9256,0.49160,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013374,127270,0,0.69214,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9373,286.15,97715,339.18,0.44196,1.4709</datapoint>
+          <datapoint>62.158,303.96,-4.5499,-1.0268,4.0851,1.0956,111.38,0,111.38,0,2.1000,0.38202,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012044,114630,0,0.56143,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1030,286.16,97737,339.18,0.45639,1.4710</datapoint>
+          <datapoint>62.572,302.17,-4.0907,1.1099,4.5543,1.2086,110.47,0,110.47,0,2.2979,0.47830,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013427,127814,0,0.69791,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2992,286.17,97760,339.19,0.41370,1.4711</datapoint>
+          <datapoint>63.072,300.00,-4.5862,-0.99098,4.0908,0.99290,109.33,0,109.33,0,2.2670,0.061715,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012060,114824,0,0.56320,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2693,286.19,97781,339.20,0.50000,1.4712</datapoint>
+          <datapoint>63.459,298.32,-4.0907,1.2800,4.5868,1.2917,108.46,0,108.46,0,2.1999,0.17344,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013522,128767,0,0.70818,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1953,286.20,97807,339.21,0.38708,1.4713</datapoint>
+          <datapoint>63.958,296.15,-4.5832,-0.98612,4.0915,1.0012,107.34,0,107.34,0,2.2862,0.17291,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012062,114879,0,0.56360,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2800,286.21,97826,339.21,0.49942,1.4714</datapoint>
+          <datapoint>64.309,294.62,-4.1319,1.2852,4.5902,1.4238,106.58,0,106.58,0,2.0711,0.61275,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013532,128902,0,0.70950,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0333,286.22,97852,339.22,0.35116,1.4715</datapoint>
+          <datapoint>64.809,292.46,-4.5286,-0.79334,4.1377,0.92677,105.60,0,105.60,0,1.8315,0.47907,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012197,116210,0,0.57660,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8517,286.23,97870,339.23,0.50000,1.4717</datapoint>
+          <datapoint>65.284,290.43,-4.0479,1.0133,4.5302,1.0540,104.70,0,104.70,0,1.9692,0.29013,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013354,127254,0,0.69132,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9528,286.25,97895,339.24,0.47437,1.4718</datapoint>
+          <datapoint>65.702,288.63,-4.5330,-1.1604,4.0501,1.1959,103.85,0,103.85,0,2.0901,0.28937,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011939,113788,0,0.55268,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1045,286.26,97919,339.24,0.41809,1.4719</datapoint>
+          <datapoint>66.178,286.59,-4.0396,1.0361,4.5336,1.0498,102.84,0,102.84,0,2.1707,0.16909,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013363,127388,0,0.69261,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1608,286.27,97940,339.25,0.47628,1.4725</datapoint>
+          <datapoint>66.596,284.80,-4.5395,-1.1976,4.0396,1.1977,101.93,0,101.93,0,2.1779,0.017292,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011907,113525,0,0.55000,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1788,286.29,97964,339.26,0.41747,1.4726</datapoint>
+          <datapoint>67.047,282.86,-4.0555,1.0734,4.5410,1.1089,100.92,0,100.92,0,2.3034,0.27830,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013385,127635,0,0.69514,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2939,286.30,97985,339.27,0.45090,1.4727</datapoint>
+          <datapoint>67.483,280.98,-4.5465,-1.1235,4.0568,1.1442,99.892,0,99.892,0,2.3979,0.21636,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011957,114042,0,0.55489,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.4043,286.31,98008,339.27,0.43699,1.4728</datapoint>
+          <datapoint>67.915,279.12,-4.0661,1.1121,4.5485,1.1576,98.886,0,98.886,0,2.2591,0.32141,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013406,127883,0,0.69768,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2642,286.32,98030,339.28,0.43191,1.4729</datapoint>
+          <datapoint>68.335,277.32,-4.5116,-1.0608,4.0739,1.1908,97.985,0,97.985,0,2.0319,0.54102,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012007,114557,0,0.55979,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0079,286.34,98051,339.29,0.41990,1.4730</datapoint>
+          <datapoint>68.797,275.34,-4.0700,0.95595,4.5166,1.0825,97.101,0,97.101,0,1.7974,0.50781,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013312,127023,0,0.68818,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8193,286.35,98072,339.30,0.46191,1.4731</datapoint>
+          <datapoint>69.233,273.47,-4.5255,-1.0449,4.0759,1.1470,96.273,0,96.273,0,2.0035,0.47294,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012013,114648,0,0.56055,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0168,286.36,98096,339.30,0.43592,1.4732</datapoint>
+          <datapoint>69.703,271.45,-4.0463,1.0190,4.5273,1.0632,95.364,0,95.364,0,1.8608,0.30339,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013343,127363,0,0.69171,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8768,286.37,98118,339.31,0.47030,1.4734</datapoint>
+          <datapoint>70.076,269.86,-4.4660,-1.1257,4.0605,1.3411,94.619,0,94.619,0,2.1326,0.72904,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011967,114250,0,0.55653,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2003,286.39,98141,339.32,0.37282,1.4735</datapoint>
+          <datapoint>70.576,267.72,-4.0923,0.74733,4.4711,0.90209,93.490,0,93.490,0,2.3853,0.50524,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013176,125818,0,0.67487,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.3462,286.40,98160,339.33,0.50000,1.4736</datapoint>
+          <datapoint>70.885,266.42,-4.3546,-0.85047,4.1405,1.6210,92.820,0,92.820,0,1.9596,1.3800,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012202,116535,0,0.57888,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7554,286.41,98185,339.33,0.30845,1.4737</datapoint>
+          <datapoint>71.385,264.27,-4.2445,0.22030,4.3552,0.27166,91.860,0,91.860,0,1.8801,0.15897,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012834,122590,0,0.64055,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8906,286.42,98200,339.34,0.50000,1.4738</datapoint>
+          <datapoint>71.885,262.12,-4.3724,-0.25591,4.2553,0.73010,91.005,0,91.005,0,1.5382,0.68379,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012540,119799,0,0.61164,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.5766,286.43,98226,339.35,0.50000,1.4739</datapoint>
+          <datapoint>72.385,259.97,-4.2070,0.33079,4.3834,0.79041,90.146,0,90.146,0,1.8972,0.71786,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012917,123425,0,0.64914,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8475,286.45,98251,339.36,0.50000,1.4740</datapoint>
+          <datapoint>72.885,257.81,-4.4258,-0.43746,4.2099,0.55841,89.155,0,89.155,0,2.0707,0.34706,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012405,118561,0,0.59891,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0528,286.46,98276,339.36,0.50000,1.4741</datapoint>
+          <datapoint>73.385,255.67,-4.1462,0.55907,4.4261,0.57377,88.103,0,88.103,0,2.1352,0.12906,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013042,124671,0,0.66214,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1257,286.47,98301,339.37,0.50000,1.4742</datapoint>
+          <datapoint>73.885,253.51,-4.4928,-0.69306,4.1535,0.87925,87.103,0,87.103,0,1.8647,0.54106,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012239,117012,0,0.58321,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8893,286.49,98326,339.38,0.50000,1.4744</datapoint>
+          <datapoint>74.352,251.51,-4.0744,0.89518,4.4995,1.0698,86.296,0,86.296,0,1.5909,0.58572,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013258,126780,0,0.68456,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.6190,286.50,98352,339.39,0.46739,1.4745</datapoint>
+          <datapoint>74.793,249.62,-4.5163,-1.0026,4.0818,1.1344,85.543,0,85.543,0,1.8249,0.53083,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012026,115028,0,0.56346,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8363,286.52,98375,339.40,0.44075,1.4746</datapoint>
+          <datapoint>75.282,247.53,-4.0283,0.99770,4.5172,1.0223,84.624,0,84.624,0,1.9339,0.22292,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013309,127319,0,0.69022,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9180,286.53,98397,339.41,0.48909,1.4747</datapoint>
+          <datapoint>75.687,245.80,-4.5179,-1.2095,4.0300,1.2352,83.861,0,83.861,0,1.8325,0.25063,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011873,113605,0,0.54947,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8166,286.54,98422,339.41,0.40480,1.4748</datapoint>
+          <datapoint>76.021,244.35,-4.1642,1.0582,4.5392,1.4959,83.308,0,83.308,0,1.4791,1.0572,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013373,127976,0,0.69721,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.3932,286.55,98442,339.42,0.33425,1.4749</datapoint>
+          <datapoint>76.521,242.19,-4.4624,-0.59637,4.1749,0.89127,82.485,0,82.485,0,1.8102,0.66235,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012300,117719,0,0.58988,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7782,286.56,98459,339.43,0.50000,1.4751</datapoint>
+          <datapoint>77.021,240.05,-4.0851,0.75449,4.4658,0.86045,81.529,0,81.529,0,2.0171,0.41366,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013156,125942,0,0.67508,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9849,286.58,98485,339.43,0.50000,1.4752</datapoint>
+          <datapoint>77.521,237.89,-4.5660,-0.96182,4.0853,0.96641,80.508,0,80.508,0,2.0641,0.094135,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012035,115233,0,0.56507,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0605,286.59,98510,339.44,0.50000,1.4753</datapoint>
+          <datapoint>77.922,236.16,-4.0663,1.2475,4.5661,1.2482,79.685,0,79.685,0,2.0481,0.040102,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013451,128814,0,0.70603,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0476,286.60,98535,339.45,0.40058,1.4754</datapoint>
+          <datapoint>78.402,234.09,-4.5660,-1.0404,4.0663,1.0410,78.705,0,78.705,0,2.0320,0.033384,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011979,114731,0,0.56003,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0326,286.61,98555,339.46,0.48033,1.4755</datapoint>
+          <datapoint>78.783,232.44,-4.0870,1.2579,4.5687,1.3132,77.958,0,77.958,0,1.8886,0.37682,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013458,128926,0,0.70709,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8767,286.63,98580,339.47,0.38076,1.4756</datapoint>
+          <datapoint>79.283,230.28,-4.5607,-0.94738,4.0871,0.94768,77.017,0,77.017,0,1.8768,0.023474,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012039,115350,0,0.56597,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8777,286.64,98599,339.47,0.50000,1.4757</datapoint>
+          <datapoint>79.661,228.64,-4.0920,1.2396,4.5647,1.3224,76.274,0,76.274,0,2.0509,0.46051,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013446,128852,0,0.70612,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0668,286.65,98624,339.48,0.37811,1.4758</datapoint>
+          <datapoint>80.089,226.81,-4.4738,-0.89084,4.1066,1.1669,75.326,0,75.326,0,2.3739,0.75366,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012096,115936,0,0.57160,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.3965,286.66,98643,339.49,0.42849,1.4759</datapoint>
+          <datapoint>80.539,224.88,-4.0953,0.84084,4.4841,1.1109,74.332,0,74.332,0,2.0471,0.72602,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013208,126612,0,0.68165,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0691,286.68,98665,339.50,0.45008,1.4761</datapoint>
+          <datapoint>81.039,222.72,-4.5478,-0.90493,4.0954,0.90594,73.313,0,73.313,0,2.0257,0.042813,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012063,115653,0,0.56868,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0274,286.69,98688,339.50,0.50000,1.4762</datapoint>
+          <datapoint>81.400,221.15,-4.1156,1.1972,4.5569,1.3850,72.537,0,72.537,0,2.2771,0.69626,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013422,128707,0,0.70421,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.3132,286.70,98713,339.51,0.36102,1.4763</datapoint>
+          <datapoint>81.872,219.12,-4.4864,-0.78565,4.1283,1.0594,71.541,0,71.541,0,1.9417,0.71066,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012159,116616,0,0.57806,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9532,286.71,98731,339.52,0.47197,1.4764</datapoint>
+          <datapoint>82.372,216.99,-4.0415,0.88967,4.4887,0.95450,70.527,0,70.527,0,2.1145,0.34577,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013221,126818,0,0.68354,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0866,286.73,98755,339.53,0.50000,1.4765</datapoint>
+          <datapoint>82.813,215.10,-4.5403,-1.1306,4.0417,1.1334,69.602,0,69.602,0,2.0796,0.079300,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011904,114207,0,0.55429,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0777,286.74,98780,339.53,0.44115,1.4766</datapoint>
+          <datapoint>83.249,213.23,-4.0405,1.1472,4.5403,1.1477,68.699,0,68.699,0,2.0650,0.033376,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013372,128316,0,0.69962,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0657,286.75,98802,339.54,0.43564,1.4767</datapoint>
+          <datapoint>83.603,211.73,-4.4249,-1.0859,4.0621,1.4125,68.025,0,68.025,0,1.7452,0.90339,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011963,114817,0,0.56010,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.6470,286.76,98824,339.55,0.35398,1.4768</datapoint>
+          <datapoint>84.103,209.60,-4.1160,0.61785,4.4324,0.86649,67.076,0,67.076,0,2.0490,0.60751,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013053,125298,0,0.66697,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0029,286.77,98842,339.55,0.50000,1.4770</datapoint>
+          <datapoint>84.588,207.51,-4.4924,-0.77635,4.1275,1.0312,66.163,0,66.163,0,1.7199,0.67874,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012155,116701,0,0.57850,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7400,286.79,98867,339.56,0.48486,1.4771</datapoint>
+          <datapoint>85.088,205.38,-4.0276,0.92963,4.4944,0.98398,65.262,0,65.262,0,1.8811,0.32249,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013236,127094,0,0.68604,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8547,286.80,98891,339.57,0.50000,1.4772</datapoint>
+          <datapoint>85.491,203.66,-4.4993,-1.1715,4.0321,1.2417,64.471,0,64.471,0,2.0469,0.41172,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011874,114040,0,0.55229,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0730,286.82,98916,339.58,0.40266,1.4773</datapoint>
+          <datapoint>85.922,201.81,-4.0766,0.97948,4.5067,1.1586,63.646,0,63.646,0,1.7799,0.61875,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013271,127479,0,0.69005,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7891,286.83,98936,339.59,0.43157,1.4774</datapoint>
+          <datapoint>86.422,199.65,-4.5588,-0.96441,4.0777,0.98671,62.782,0,62.782,0,1.6756,0.20857,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012008,115361,0,0.56503,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.6838,286.84,98958,339.59,0.50000,1.4775</datapoint>
+          <datapoint>86.786,198.08,-4.0987,1.2660,4.5641,1.3757,62.137,0,62.137,0,1.8713,0.53843,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013440,129145,0,0.70803,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8971,286.85,98983,339.60,0.36344,1.4776</datapoint>
+          <datapoint>87.286,195.92,-4.5320,-0.86679,4.0990,0.87405,61.188,0,61.188,0,1.9275,0.11244,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012070,115997,0,0.57115,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9228,286.86,99002,339.61,0.50000,1.4777</datapoint>
+          <datapoint>87.654,194.33,-4.1083,1.1511,4.5418,1.3583,60.429,0,60.429,0,2.1930,0.72112,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013373,128551,0,0.70138,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2255,286.88,99027,339.62,0.36810,1.4778</datapoint>
+          <datapoint>88.154,192.18,-4.5175,-0.81840,4.1100,0.85674,59.301,0,59.301,0,2.3197,0.25342,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012102,116342,0,0.57442,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.3087,286.89,99046,339.62,0.50000,1.4788</datapoint>
+          <datapoint>88.624,190.17,-4.0183,1.0615,4.5176,1.0632,58.217,0,58.217,0,2.2913,0.060236,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013301,127902,0,0.69416,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2946,286.90,99071,339.63,0.47026,1.4790</datapoint>
+          <datapoint>88.945,188.82,-4.3861,-1.1449,4.0479,1.5566,57.535,0,57.535,0,1.9526,1.0547,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011918,114623,0,0.55744,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8026,286.91,99095,339.64,0.32121,1.4791</datapoint>
+          <datapoint>89.445,186.68,-4.1575,0.45713,4.3931,0.73850,56.631,0,56.631,0,1.6626,0.58002,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012934,124409,0,0.65663,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7050,286.92,99110,339.65,0.50000,1.4792</datapoint>
+          <datapoint>89.945,184.53,-4.4391,-0.56308,4.1735,0.98861,55.699,0,55.699,0,2.0689,0.81259,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012288,118211,0,0.59276,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0276,286.94,99136,339.65,0.50000,1.4793</datapoint>
+          <datapoint>90.445,182.40,-4.0900,0.69814,4.4406,0.75257,54.699,0,54.699,0,1.9283,0.28100,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013074,125798,0,0.67120,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9502,286.95,99161,339.66,0.50000,1.4794</datapoint>
+          <datapoint>90.945,180.25,-4.5299,-0.87977,4.0956,0.99592,53.677,0,53.677,0,2.1617,0.46676,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012057,116042,0,0.57105,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1420,286.96,99186,339.67,0.50000,1.5100</datapoint>
+          <datapoint>91.379,178.39,-4.0373,1.1351,4.5306,1.1522,52.757,0,52.757,0,2.0761,0.19727,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013338,128389,0,0.69896,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0801,286.98,99211,339.68,0.43397,1.5103</datapoint>
+          <datapoint>91.820,176.50,-4.5288,-1.1148,4.0384,1.1340,51.822,0,51.822,0,2.1678,0.20789,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011889,114458,0,0.55544,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1726,286.99,99233,339.69,0.44092,1.5104</datapoint>
+          <datapoint>92.233,174.73,-4.0584,1.1397,4.5320,1.2115,50.892,0,50.892,0,2.3374,0.41096,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013341,128465,0,0.69963,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.3377,287.00,99255,339.69,0.41270,1.5105</datapoint>
+          <datapoint>92.610,173.13,-4.4275,-0.97788,4.0791,1.3247,50.073,0,50.073,0,2.0001,0.89360,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012008,115644,0,0.56689,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9271,287.01,99276,339.70,0.37745,1.5106</datapoint>
+          <datapoint>93.110,171.00,-4.0931,0.66894,4.4350,0.90508,49.150,0,49.150,0,1.6953,0.60967,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013055,125750,0,0.67023,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7427,287.02,99295,339.71,0.50000,1.5108</datapoint>
+          <datapoint>93.556,169.09,-4.4663,-0.83789,4.1072,1.1223,48.320,0,48.320,0,2.0279,0.74670,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012090,116474,0,0.57493,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0356,287.04,99320,339.72,0.44550,1.5109</datapoint>
+          <datapoint>94.056,166.96,-4.0414,0.84993,4.4706,0.96996,47.248,0,47.248,0,2.2616,0.46736,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013160,126799,0,0.68130,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2236,287.05,99342,339.72,0.50000,1.5110</datapoint>
+          <datapoint>94.514,164.99,-4.5412,-1.0899,4.0414,1.0904,46.207,0,46.207,0,2.2756,0.030598,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011896,114644,0,0.55687,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2758,287.06,99367,339.73,0.45857,1.5111</datapoint>
+          <datapoint>94.863,163.48,-4.1123,1.2286,4.5513,1.4324,45.458,0,45.458,0,2.0186,0.73638,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013396,129127,0,0.70638,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9729,287.08,99390,339.74,0.34907,1.5112</datapoint>
+          <datapoint>95.363,161.33,-4.4967,-0.76887,4.1164,0.86903,44.499,0,44.499,0,1.8161,0.40503,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012116,116804,0,0.57793,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8345,287.09,99408,339.74,0.50000,1.5113</datapoint>
+          <datapoint>95.826,159.36,-4.0334,1.0009,4.4999,1.0800,43.615,0,43.615,0,2.0039,0.40577,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013245,127706,0,0.69077,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9847,287.10,99433,339.75,0.46295,1.5114</datapoint>
+          <datapoint>96.258,157.51,-4.5140,-1.1123,4.0361,1.1573,42.779,0,42.779,0,1.8659,0.31940,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011879,114561,0,0.55581,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8559,287.11,99456,339.76,0.43205,1.5115</datapoint>
+          <datapoint>96.712,155.57,-4.0229,1.0822,4.5148,1.1020,41.954,0,41.954,0,1.7715,0.20804,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013288,128166,0,0.69559,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7798,287.13,99478,339.77,0.45373,1.5116</datapoint>
+          <datapoint>97.115,153.86,-4.4855,-1.1472,4.0289,1.2400,41.201,0,41.201,0,1.9613,0.47066,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011857,114389,0,0.55403,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9899,287.14,99500,339.78,0.40322,1.5117</datapoint>
+          <datapoint>97.615,151.73,-4.0107,0.94973,4.4866,0.97901,40.250,0,40.250,0,1.8425,0.23766,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013204,127403,0,0.68718,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8623,287.15,99520,339.78,0.50000,1.5119</datapoint>
+          <datapoint>98.003,150.09,-4.4748,-1.1963,4.0169,1.2887,39.572,0,39.572,0,1.6566,0.47907,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011822,114082,0,0.55093,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.6196,287.16,99545,339.79,0.38799,1.5120</datapoint>
+          <datapoint>98.503,147.96,-4.0222,0.90536,4.4772,0.97046,38.700,0,38.700,0,1.8313,0.34946,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013176,127173,0,0.68455,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8024,287.17,99565,339.80,0.50000,1.5121</datapoint>
+          <datapoint>98.912,146.23,-4.4903,-1.1465,4.0271,1.2244,37.916,0,37.916,0,2.0069,0.42984,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011851,114406,0,0.55394,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0307,287.19,99590,339.81,0.40836,1.5122</datapoint>
+          <datapoint>99.412,144.10,-4.0011,0.97846,4.4905,0.98355,36.900,0,36.900,0,2.0569,0.10002,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013215,127589,0,0.68888,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0485,287.20,99610,339.81,0.50000,1.5123</datapoint>
+          <datapoint>99.766,142.61,-4.4318,-1.2147,4.0149,1.4101,36.216,0,36.216,0,1.8029,0.71620,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011815,114095,0,0.55080,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7237,287.21,99635,339.82,0.35457,1.5124</datapoint>
+          <datapoint>100.27,140.48,-4.0786,0.70636,4.4336,0.76741,35.277,0,35.277,0,1.9529,0.29996,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013047,126007,0,0.67176,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9292,287.22,99652,339.83,0.50000,1.5125</datapoint>
+          <datapoint>100.77,138.33,-4.5314,-0.90545,4.0788,0.90958,34.311,0,34.311,0,1.9096,0.086582,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012002,115943,0,0.56867,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9133,287.24,99677,339.84,0.50000,1.5126</datapoint>
+          <datapoint>101.13,136.75,-4.0922,1.2038,4.5394,1.3706,33.571,0,33.571,0,2.1486,0.65515,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013357,129055,0,0.70447,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1790,287.25,99703,339.84,0.36481,1.5127</datapoint>
+          <datapoint>101.63,134.60,-4.5091,-0.83381,4.0966,0.93153,32.548,0,32.548,0,1.9409,0.41535,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012054,116480,0,0.57382,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9594,287.26,99721,339.85,0.50000,1.5129</datapoint>
+          <datapoint>102.06,132.77,-4.0414,1.0881,4.5123,1.1633,31.752,0,31.752,0,1.7642,0.41129,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013277,128322,0,0.69634,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7709,287.28,99746,339.86,0.42982,1.5130</datapoint>
+          <datapoint>102.51,130.85,-4.5145,-1.0541,4.0448,1.1140,30.924,0,30.924,0,1.9259,0.36031,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011901,115044,0,0.55963,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9303,287.29,99768,339.87,0.44884,1.5131</datapoint>
+          <datapoint>102.85,129.36,-4.1192,1.1463,4.5293,1.4498,30.207,0,30.207,0,2.2320,0.88773,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013326,128843,0,0.70185,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2914,287.30,99790,339.87,0.34487,1.5132</datapoint>
+          <datapoint>103.35,127.21,-4.4649,-0.69140,4.1313,0.98405,29.004,0,29.004,0,2.5821,0.70022,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012155,117535,0,0.58401,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.5481,287.31,99808,339.88,0.50000,1.5133</datapoint>
+          <datapoint>103.85,125.09,-4.0245,0.88082,4.4672,0.94510,27.755,0,27.755,0,2.4108,0.34259,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013143,127112,0,0.68297,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.4392,287.32,99833,339.89,0.50000,1.5134</datapoint>
+          <datapoint>104.30,123.20,-4.5228,-1.1277,4.0247,1.1315,26.699,0,26.699,0,2.3700,0.092491,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011841,114540,0,0.55449,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.3680,287.34,99858,339.90,0.44189,1.5135</datapoint>
+          <datapoint>104.60,121.89,-4.1565,1.2161,4.5465,1.6602,26.036,0,26.036,0,2.0296,1.1301,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013376,129408,0,0.70770,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9067,287.35,99880,339.90,0.30118,1.5136</datapoint>
+          <datapoint>105.10,119.75,-4.4284,-0.54367,4.1575,0.57940,25.047,0,25.047,0,1.9295,0.20029,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012231,118349,0,0.59186,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9398,287.36,99895,339.91,0.50000,1.5138</datapoint>
+          <datapoint>105.53,117.91,-4.1078,0.74617,4.4442,1.1638,24.300,0,24.300,0,1.5458,0.89314,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013074,126530,0,0.67643,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.5550,287.37,99921,339.92,0.42962,1.5139</datapoint>
+          <datapoint>106.03,115.77,-4.4811,-0.74661,4.1132,0.87998,23.469,0,23.469,0,1.7786,0.46575,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012100,117124,0,0.57954,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7567,287.38,99942,339.92,0.50000,1.5140</datapoint>
+          <datapoint>106.46,113.91,-4.0535,0.98120,4.4879,1.1473,22.750,0,22.750,0,1.5195,0.59469,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013202,127814,0,0.69007,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.5318,287.40,99967,339.93,0.43579,1.5141</datapoint>
+          <datapoint>106.76,112.65,-4.3189,-0.88365,4.1038,1.6649,22.230,0,22.230,0,1.9432,1.4110,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012072,116891,0,0.57710,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1597,287.41,99989,339.94,0.30032,1.5145</datapoint>
+          <datapoint>107.26,110.52,-4.2051,0.22760,4.3302,0.76225,21.350,0,21.350,0,1.5795,0.72747,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012738,123352,0,0.64262,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.6304,287.42,100004,339.95,0.50000,1.5147</datapoint>
+          <datapoint>107.76,108.38,-4.3464,-0.28253,4.2207,0.86872,20.457,0,20.457,0,1.9902,0.82149,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012415,120252,0,0.61064,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9418,287.43,100029,339.95,0.50000,1.5148</datapoint>
+          <datapoint>108.26,106.25,-4.1788,0.33519,4.3472,0.38898,19.438,0,19.438,0,2.0889,0.19736,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012787,123876,0,0.64793,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0747,287.45,100054,339.96,0.50000,1.5149</datapoint>
+          <datapoint>108.76,104.11,-4.3887,-0.41991,4.1844,0.64346,18.332,0,18.332,0,2.3327,0.48756,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012308,119257,0,0.60043,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.3057,287.46,100079,339.97,0.50000,1.5150</datapoint>
+          <datapoint>109.26,101.98,-4.1137,0.55011,4.3946,0.76835,17.233,0,17.233,0,2.0645,0.53641,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012926,125268,0,0.66240,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1056,287.47,100104,339.98,0.50000,1.5151</datapoint>
+          <datapoint>109.76,99.858,-4.4555,-0.68944,4.1270,1.0085,16.119,0,16.119,0,2.4294,0.73604,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012139,117660,0,0.58431,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.3962,287.49,100129,339.99,0.49578,1.5152</datapoint>
+          <datapoint>110.13,98.270,-4.1205,0.90445,4.4749,1.3499,15.288,0,15.288,0,2.0582,1.0021,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013162,127599,0,0.68711,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0130,287.50,100154,340.00,0.37041,1.5153</datapoint>
+          <datapoint>110.63,96.124,-4.4632,-0.68553,4.1205,0.68725,14.253,0,14.253,0,2.0826,0.048609,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012119,117509,0,0.58268,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0802,287.51,100172,340.00,0.50000,1.5155</datapoint>
+          <datapoint>111.13,94.005,-4.0135,0.89955,4.4635,0.90739,13.226,0,13.226,0,2.0230,0.11903,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013128,127311,0,0.68386,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0330,287.53,100198,340.01,0.50000,1.5156</datapoint>
+          <datapoint>111.56,92.152,-4.5134,-1.1503,4.0135,1.1504,12.349,0,12.349,0,2.0151,0.018265,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011804,114493,0,0.55302,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0146,287.54,100222,340.02,0.43463,1.5157</datapoint>
+          <datapoint>112.00,90.309,-4.0182,1.1464,4.5139,1.1576,11.463,0,11.463,0,2.0845,0.16065,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013275,128786,0,0.69964,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0812,287.55,100244,340.03,0.43193,1.5158</datapoint>
+          <datapoint>112.44,88.419,-4.5171,-1.1263,4.0184,1.1288,10.533,0,10.533,0,2.1176,0.074803,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011818,114665,0,0.55457,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1191,287.56,100266,340.03,0.44296,1.5159</datapoint>
+          <datapoint>112.87,86.594,-4.0179,1.1674,4.5172,1.1691,9.6326,0,9.6326,0,2.0910,0.062298,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013284,128918,0,0.70092,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0920,287.58,100288,340.04,0.42768,1.5160</datapoint>
+          <datapoint>113.29,84.789,-4.4919,-1.1172,4.0216,1.1784,8.7116,0,8.7116,0,2.2500,0.37476,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011827,114789,0,0.55564,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2641,287.59,100309,340.05,0.42431,1.5161</datapoint>
+          <datapoint>113.76,82.784,-3.9962,1.0494,4.4923,1.0585,7.6643,0,7.6643,0,2.1845,0.13868,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013210,128241,0,0.69343,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1927,287.60,100331,340.05,0.47235,1.5162</datapoint>
+          <datapoint>114.16,81.117,-4.4712,-1.2065,4.0004,1.2700,6.8350,0,6.8350,0,2.0283,0.39668,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011764,114219,0,0.55001,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0004,287.61,100354,340.06,0.39370,1.5164</datapoint>
+          <datapoint>114.66,79.001,-3.9949,0.95248,4.4713,0.95437,5.8134,0,5.8134,0,2.0583,0.059954,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013148,127678,0,0.68720,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0532,287.62,100374,340.07,0.50000,1.5165</datapoint>
+          <datapoint>115.05,77.327,-4.4733,-1.2101,3.9986,1.2648,4.9709,0,4.9709,0,2.2037,0.36791,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011758,114199,0,0.54970,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2291,287.64,100398,340.08,0.39533,1.5166</datapoint>
+          <datapoint>115.55,75.211,-3.9889,0.96883,4.4743,0.99483,3.8973,0,3.8973,0,2.0908,0.22595,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013156,127802,0,0.68839,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1100,287.65,100418,340.08,0.50000,1.5167</datapoint>
+          <datapoint>115.96,73.504,-4.4888,-1.2408,3.9889,1.2412,3.0576,0,3.0576,0,2.0784,0.030760,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011729,113956,0,0.54724,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0765,287.66,100443,340.09,0.40285,1.5168</datapoint>
+          <datapoint>116.43,71.479,-3.9897,1.0451,4.4888,1.0471,2.0724,0,2.0724,0,2.0477,0.064188,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013199,128254,0,0.69311,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0518,287.67,100463,340.10,0.47753,1.5169</datapoint>
+          <datapoint>116.79,69.962,-4.4251,-1.2076,4.0022,1.3866,1.3783,0,1.3783,0,1.8020,0.68150,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011767,114367,0,0.55108,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7319,287.69,100487,340.11,0.36059,1.5170</datapoint>
+          <datapoint>117.29,67.844,-4.0476,0.75498,4.4303,0.91077,0.41365,0,0.41365,0,2.0567,0.50942,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013026,126615,0,0.67537,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0152,287.70,100504,340.11,0.50000,1.5171</datapoint>
+          <datapoint>117.79,65.698,-4.5376,-0.97991,4.0478,0.98315,-0.60472,0,0.60472,3.1416,2.0168,0.079787,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011901,115703,0,0.56391,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0201,287.71,100529,340.12,0.50000,1.5173</datapoint>
+          <datapoint>118.16,64.139,-4.0664,1.3003,4.5415,1.3799,-1.3658,0,1.3658,3.1416,2.1842,0.46193,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013352,129837,0,0.71000,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2053,287.72,100554,340.13,0.36233,1.5174</datapoint>
+          <datapoint>118.66,61.994,-4.5123,-0.89175,4.0679,0.92267,-2.4283,0,2.4283,3.1416,2.0657,0.23689,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011960,116310,0,0.56971,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0762,287.73,100573,340.14,0.50000,1.5175</datapoint>
+          <datapoint>119.08,60.179,-4.0134,1.1714,4.5124,1.1741,-3.3008,0,3.3008,3.1416,2.0322,0.078824,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013266,129041,0,0.70118,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0334,287.75,100598,340.14,0.42587,1.5176</datapoint>
+          <datapoint>119.51,58.345,-4.4950,-1.1171,4.0160,1.1599,-4.2058,0,4.2058,3.1416,2.1667,0.31217,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011807,114862,0,0.55549,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1762,287.76,100619,340.15,0.43107,1.5177</datapoint>
+          <datapoint>119.97,56.407,-3.9969,1.0911,4.4952,1.0954,-5.1848,0,5.1848,3.1416,2.1226,0.096621,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013215,128584,0,0.69607,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1269,287.77,100641,340.16,0.45646,1.5178</datapoint>
+          <datapoint>120.38,54.664,-4.4848,-1.1869,3.9989,1.2164,-6.0347,0,6.0347,3.1416,2.0130,0.26659,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011756,114403,0,0.55094,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9991,287.78,100663,340.17,0.41103,1.5179</datapoint>
+          <datapoint>120.85,52.673,-3.9932,1.0467,4.4855,1.0647,-7.0016,0,7.0016,3.1416,2.1045,0.19486,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013186,128343,0,0.69332,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0935,287.79,100684,340.17,0.46962,1.5180</datapoint>
+          <datapoint>121.25,50.963,-4.4770,-1.1983,3.9959,1.2386,-7.8256,0,7.8256,3.1416,1.9780,0.31348,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011746,114351,0,0.55032,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9593,287.81,100707,340.18,0.40368,1.5182</datapoint>
+          <datapoint>121.65,49.276,-4.0681,1.0352,4.4870,1.2660,-8.5500,0,8.5500,3.1416,1.6902,0.72873,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013190,128423,0,0.69403,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.6774,287.82,100727,340.19,0.39495,1.5183</datapoint>
+          <datapoint>122.15,47.134,-4.5004,-0.86462,4.0729,0.96762,-9.4494,0,9.4494,3.1416,1.9074,0.43443,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011972,116584,0,0.57192,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8876,287.83,100747,340.19,0.50000,1.5184</datapoint>
+          <datapoint>122.58,45.297,-4.0123,1.1314,4.5016,1.1589,-10.296,0,10.296,3.1416,2.0158,0.25130,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013232,128877,0,0.69879,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0107,287.84,100772,340.20,0.43143,1.5185</datapoint>
+          <datapoint>123.03,43.387,-4.5122,-1.1154,4.0123,1.1158,-11.196,0,11.196,3.1416,2.0038,0.026748,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011794,114886,0,0.55524,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0035,287.86,100794,340.21,0.44812,1.5186</datapoint>
+          <datapoint>123.44,41.631,-4.0215,1.1921,4.5132,1.2147,-12.041,0,12.041,3.1416,2.1000,0.23356,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013266,129245,0,0.70264,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0996,287.87,100816,340.22,0.41161,1.5187</datapoint>
+          <datapoint>123.90,39.650,-4.5187,-1.0719,4.0218,1.0779,-13.003,0,13.003,3.1416,2.0470,0.11427,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011821,115190,0,0.55807,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0474,287.88,100837,340.22,0.46385,1.5189</datapoint>
+          <datapoint>124.31,37.910,-4.0190,1.2253,4.5187,1.2262,-13.834,0,13.834,3.1416,2.0287,0.044753,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013281,129440,0,0.70461,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0286,287.89,100860,340.23,0.40778,1.5190</datapoint>
+          <datapoint>124.77,35.967,-4.5100,-1.0779,4.0201,1.0977,-14.779,0,14.779,3.1416,2.1233,0.20763,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011816,115174,0,0.55779,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1242,287.90,100880,340.24,0.45550,1.5191</datapoint>
+          <datapoint>125.13,34.407,-4.0713,1.2063,4.5180,1.3747,-15.595,0,15.595,3.1416,2.3631,0.65940,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013279,129457,0,0.70464,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.3931,287.92,100903,340.25,0.36371,1.5192</datapoint>
+          <datapoint>125.63,32.266,-4.4923,-0.84206,4.0743,0.91105,-16.820,0,16.820,3.1416,2.5370,0.34778,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011974,116757,0,0.57311,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.5209,287.93,100921,340.25,0.50000,1.5193</datapoint>
+          <datapoint>125.95,30.878,-4.1207,1.1530,4.5124,1.5514,-17.584,0,17.584,3.1416,2.2025,1.0380,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013261,129330,0,0.70311,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1119,287.94,100947,340.26,0.32229,1.5194</datapoint>
+          <datapoint>126.45,28.740,-4.4323,-0.62315,4.1223,0.67264,-18.654,0,18.654,3.1416,2.0759,0.25322,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.012115,118162,0,0.58687,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0890,287.95,100963,340.27,0.50000,1.5195</datapoint>
+          <datapoint>126.95,26.626,-4.0228,0.81886,4.4327,0.83202,-19.673,0,19.673,3.1416,2.0022,0.14739,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013027,127081,0,0.67873,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0144,287.96,100988,340.28,0.50000,1.5196</datapoint>
+          <datapoint>127.41,24.695,-4.4977,-1.0477,4.0260,1.1031,-20.545,0,20.545,3.1416,1.8457,0.34527,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011831,115439,0,0.56000,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8438,287.98,101013,340.28,0.45327,1.5198</datapoint>
+          <datapoint>127.84,22.869,-4.0081,1.1409,4.4988,1.1650,-21.359,0,21.359,3.1416,1.9469,0.23584,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013220,129015,0,0.69938,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9425,287.99,101035,340.29,0.42918,1.5199</datapoint>
+          <datapoint>128.28,20.967,-4.5063,-1.1151,4.0083,1.1190,-22.220,0,22.220,3.1416,1.9053,0.093057,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011779,114965,0,0.55529,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9040,288.00,101057,340.30,0.44682,1.5200</datapoint>
+          <datapoint>128.65,19.375,-4.0600,1.2009,4.5132,1.3454,-22.969,0,22.969,3.1416,2.1308,0.60666,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013262,129464,0,0.70411,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1534,288.01,101079,340.31,0.37163,1.5201</datapoint>
+          <datapoint>129.15,17.235,-4.5027,-0.88540,4.0601,0.88693,-24.028,0,24.028,3.1416,2.1047,0.052016,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011931,116482,0,0.56993,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.1071,288.02,101098,340.31,0.50000,1.5202</datapoint>
+          <datapoint>129.58,15.425,-4.0045,1.1710,4.5029,1.1752,-24.915,0,24.915,3.1416,2.0627,0.098839,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013231,129207,0,0.70117,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0642,288.04,101123,340.32,0.42547,1.5203</datapoint>
+          <datapoint>130.02,13.534,-4.5045,-1.1250,4.0045,1.1250,-25.831,0,25.831,3.1416,2.0600,0.0059858,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011767,114921,0,0.55463,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.0599,288.05,101144,340.33,0.44445,1.5204</datapoint>
+          <datapoint>130.40,11.940,-4.0580,1.1995,4.5113,1.3432,-26.556,0,26.556,3.1416,1.8350,0.60446,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013255,129483,0,0.70401,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.8129,288.06,101166,340.34,0.37224,1.5205</datapoint>
+          <datapoint>130.90,9.8010,-4.4998,-0.88362,4.0602,0.93027,-27.510,0,27.510,3.1416,1.9805,0.29088,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011930,116549,0,0.57033,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9672,288.07,101185,340.34,0.50000,1.5207</datapoint>
+          <datapoint>131.28,8.1524,-4.0456,1.1772,4.5053,1.2959,-28.314,0,28.314,3.1416,2.1896,0.54192,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013237,129347,0,0.70238,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,2.2023,288.09,101210,340.35,0.38582,1.5208</datapoint>
+          <datapoint>131.76,6.1176,-4.4873,-0.92603,4.0518,1.0483,-29.303,0,29.303,3.1416,1.9552,0.49142,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011905,116342,0,0.56819,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9659,288.10,101229,340.36,0.47694,1.5209</datapoint>
+          <datapoint>132.21,4.2101,-3.9891,1.1070,4.4875,1.1109,-30.173,0,30.173,3.1416,1.9131,0.093396,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013184,128871,0,0.69708,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9168,288.11,101253,340.36,0.45008,1.5210</datapoint>
+          <datapoint>132.62,2.4853,-4.4687,-1.1760,3.9923,1.2259,-30.925,0,30.925,3.1416,1.7719,0.34625,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011729,114667,0,0.55182,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.7533,288.12,101276,340.37,0.40786,1.5211</datapoint>
+          <datapoint>133.07,0.57951,-4.0063,1.0282,4.4721,1.1118,-31.679,0,31.679,3.1416,1.5817,0.42289,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.013139,128465,0,0.69255,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.5977,288.13,101296,340.38,0.44974,1.5212</datapoint>
+          <datapoint>133.43,-0.94639,-4.3921,-1.0618,4.0263,1.3760,-32.311,0,32.311,3.1416,1.8997,0.87511,NaN,NaN,NaN,NaN,0.063810,NaN,NaN,NaN,0.011828,115674,0,0.56144,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,NaN,1.9822,288.15,101318,340.39,0.36338,1.5213</datapoint>
+        </databranch>
+      </flightdata>
+    </simulation>
+  </simulations>
+</openrocket>
diff --git a/datafiles/thrustcurves/zero-files b/datafiles/thrustcurves/zero-files
new file mode 100644 (file)
index 0000000..d5f041d
--- /dev/null
@@ -0,0 +1,257 @@
+AeroTech_G339.eng
+AeroTech_G69.eng
+AeroTech_H112.eng
+AeroTech_H123.eng
+AeroTech_H148.eng
+AeroTech_H165.eng
+AeroTech_H210.eng
+AeroTech_H242_1.eng
+AeroTech_H268.eng
+AeroTech_H45.eng
+AeroTech_H55.eng
+AeroTech_H669.eng
+AeroTech_H70.eng
+AeroTech_H999.eng
+AeroTech_I132.eng
+AeroTech_I154.eng
+AeroTech_I161.eng
+AeroTech_I195_1.eng
+AeroTech_I200.eng
+AeroTech_I211.eng
+AeroTech_I218.eng
+AeroTech_I284_1.eng
+AeroTech_I285.eng
+AeroTech_I366.eng
+AeroTech_I435_1.eng
+AeroTech_I65.eng
+AeroTech_J125.eng
+AeroTech_J1299.eng
+AeroTech_J135.eng
+AeroTech_J145.eng
+AeroTech_J180.eng
+AeroTech_J1999.eng
+AeroTech_J275.eng
+AeroTech_J315.eng
+AeroTech_J350_1.eng
+AeroTech_J415.eng
+AeroTech_J420.eng
+AeroTech_J460.eng
+AeroTech_J540.eng
+AeroTech_J570.eng
+AeroTech_J800.eng
+AeroTech_J90.eng
+AeroTech_K1050.eng
+AeroTech_K1100.eng
+AeroTech_K1275.eng
+AeroTech_K185.eng
+AeroTech_K250.eng
+AeroTech_K458.eng
+AeroTech_K485.eng
+AeroTech_K550.eng
+AeroTech_K560.eng
+AeroTech_K650.eng
+AeroTech_K695.eng
+AeroTech_K700.eng
+AeroTech_K780.eng
+AeroTech_L1120.eng
+AeroTech_L1150.eng
+AeroTech_L1500.eng
+AeroTech_L850.eng
+AeroTech_L952.eng
+AeroTech_M1297.eng
+AeroTech_M1315.eng
+AeroTech_M1419.eng
+AeroTech_M1550.eng
+AeroTech_M1600.eng
+AeroTech_M1850.eng
+AeroTech_M1939.eng
+AeroTech_M2000.eng
+AeroTech_M2400.eng
+AeroTech_M2500.eng
+AeroTech_M650.eng
+AeroTech_M750.eng
+AeroTech_N2000.eng
+AeroTech_N4800.eng
+AMW_I271.eng
+AMW_I285.eng
+AMW_J357.eng
+AMW_J365.eng
+AMW_J450_1.eng
+AMW_K555.eng
+AMW_K570.eng
+AMW_K600_1.eng
+AMW_K650.eng
+AMW_K670_1.eng
+AMW_K800.eng
+AMW_K950_1.eng
+AMW_K975.eng
+AMW_L1060_1.eng
+AMW_L666.eng
+AMW_L777_1.eng
+AMW_M1350.eng
+AMW_M1730.eng
+AMW_M1850_1.eng
+AMW_M1850.eng
+AMW_M2500.eng
+AMW_M3000.eng
+AMW_N2020.eng
+AMW_N4000.eng
+Cesaroni_G60.eng
+Cesaroni_I170.eng
+Cesaroni_I240.eng
+Cesaroni_J300.eng
+Cesaroni_J360.eng
+Cesaroni_K510_1.eng
+Cesaroni_K510.eng
+Cesaroni_L1115_1.eng
+Cesaroni_L1115.eng
+Cesaroni_L610.eng
+Cesaroni_L730.eng
+Cesaroni_L800_1.eng
+Cesaroni_L800.eng
+Cesaroni_M1060.eng
+Cesaroni_M1400_1.eng
+Cesaroni_M1400.eng
+Cesaroni_M1450.eng
+Cesaroni_M2505.eng
+Cesaroni_M520.eng
+Cesaroni_M795.eng
+Cesaroni_N1100.eng
+Cesaroni_N2500.eng
+Contrail_G100.eng
+Contrail_G123.eng
+Contrail_G130.eng
+Contrail_G234.eng
+Contrail_G300.eng
+Contrail_H121.eng
+Contrail_H141.eng
+Contrail_H211.eng
+Contrail_H222.eng
+Contrail_H246.eng
+Contrail_H277.eng
+Contrail_H300.eng
+Contrail_H303.eng
+Contrail_H340.eng
+Contrail_I155.eng
+Contrail_I210.eng
+Contrail_I221.eng
+Contrail_I290.eng
+Contrail_I307.eng
+Contrail_I333.eng
+Contrail_I400.eng
+Contrail_I500.eng
+Contrail_I727.eng
+Contrail_I747.eng
+Contrail_J150.eng
+Contrail_J222.eng
+Contrail_J234.eng
+Contrail_J242.eng
+Contrail_J245.eng
+Contrail_J246.eng
+Contrail_J272.eng
+Contrail_J292.eng
+Contrail_J333.eng
+Contrail_J345.eng
+Contrail_J355.eng
+Contrail_J358.eng
+Contrail_J416.eng
+Contrail_J555.eng
+Contrail_J642.eng
+Contrail_J800.eng
+Contrail_K234.eng
+Contrail_K265.eng
+Contrail_K300.eng
+Contrail_K321.eng
+Contrail_K404.eng
+Contrail_K456.eng
+Contrail_K630.eng
+Contrail_K678.eng
+Contrail_K707.eng
+Contrail_K777.eng
+Contrail_L1222.eng
+Contrail_L2525.eng
+Contrail_L369.eng
+Contrail_L800.eng
+Contrail_M1575.eng
+Contrail_M2700.eng
+Contrail_M2800.eng
+Contrail_M711.eng
+Contrail_O6300.eng
+Ellis_I150.eng
+Ellis_I160.eng
+Ellis_I230.eng
+Ellis_J270.eng
+Ellis_J330.eng
+Ellis_L330.eng
+Ellis_L600.eng
+Ellis_M1000.eng
+Estes_B6.eng
+Estes_E9.eng
+Hypertek_I310.eng
+Hypertek_J115.eng
+Hypertek_J120.eng
+Hypertek_J150.eng
+Hypertek_J170.eng
+Hypertek_J190.eng
+Hypertek_J220.eng
+Hypertek_J250_1.eng
+Hypertek_J250.eng
+Hypertek_J270.eng
+Hypertek_J317.eng
+Hypertek_J330_1.eng
+Hypertek_J330.eng
+Hypertek_K240.eng
+Hypertek_L200.eng
+Hypertek_L225.eng
+Hypertek_L350.eng
+Hypertek_L355.eng
+Hypertek_L475.eng
+Hypertek_L535.eng
+Hypertek_L540_1.eng
+Hypertek_L540.eng
+Hypertek_L550.eng
+Hypertek_L570_1.eng
+Hypertek_L570.eng
+Hypertek_L575_1.eng
+Hypertek_L575.eng
+Hypertek_L610.eng
+Hypertek_L625_1.eng
+Hypertek_L625.eng
+Hypertek_M1000_1.eng
+Hypertek_M1000.eng
+Hypertek_M1010_1.eng
+Hypertek_M1010.eng
+KBA_K1750.eng
+KBA_K600.eng
+KBA_K750.eng
+KBA_L1000.eng
+KBA_M1450.eng
+Loki_J525.eng
+Loki_K250.eng
+Loki_K350.eng
+Loki_K960.eng
+Loki_L1400.eng
+Loki_L930.eng
+Loki_M1882.eng
+Quest_C6.eng
+Quest_D5.eng
+RATT_H70.eng
+RATT_I80.eng
+RATT_I90.eng
+RATT_K240.eng
+SkyR_G63.eng
+SkyR_G69.eng
+SkyR_H124.eng
+SkyR_H155.eng
+SkyR_H78.eng
+SkyR_I117.eng
+SkyR_I119.eng
+SkyR_I147.eng
+SkyR_J144.eng
+SkyR_J261.eng
+SkyR_J263.eng
+SkyR_J337.eng
+SkyR_J348.eng
+SkyR_K257.eng
+SkyR_K347.eng
+WCH_I110.eng
diff --git a/html/actions/.htaccess b/html/actions/.htaccess
new file mode 100644 (file)
index 0000000..9b3f76c
--- /dev/null
@@ -0,0 +1,10 @@
+
+#RewriteEngine On
+#RewriteBase /actions/
+#RewriteRule ^reportbug$ reportbug.php
+
+
+# Redirect bug reports to a server that allows sending mail
+
+Redirect 307 /actions/reportbug http://sampo.kapsi.fi/reportbug.php
+
diff --git a/html/actions/reportbug.php b/html/actions/reportbug.php
new file mode 100644 (file)
index 0000000..add845e
--- /dev/null
@@ -0,0 +1,60 @@
+<?
+$mailaddr = "openrocket-bugs@lists.sourceforge.net";
+//$mailaddr = "sampo.niskanen@gmail.com";
+
+$version = $_POST["version"];
+$content = $_POST["content"];
+
+
+// Parse headers
+if (!function_exists('getallheaders')) {
+    function getallheaders() {
+       foreach ($_SERVER as $name => $value) {
+           if (substr($name, 0, 5) == 'HTTP_') {
+               $headers[str_replace(' ', '-', ucwords(strtolower(str_replace('_', ' ', substr($name, 5)))))] = $value;
+           }
+       }
+       return $headers;
+    }
+}
+
+$headers = "\n\n\n";
+foreach (getallheaders() as $header => $value) {
+       $headers = $headers . "$header: $value\n";
+}
+
+// Set HTTP content-type header
+header("Content-type: text/plain; charset=utf-8");
+
+
+// Check for valid submission
+if (preg_match("/^[a-zA-Z0-9. -]{1,30}$/", $version) &&
+    strlen($content) > 0) {
+
+  if (mail($mailaddr, "Automatic bug report for OpenRocket " . $version,
+       $content . $headers, 
+       "From: Automatic Bug Reports <".$mailaddr.">\r\n".
+       "Content-Type: text/plain; charset=utf-8")) {
+       
+       // Success
+       header("HTTP/1.0 201 Created");
+       echo "201 Created:  Bug report successfully sent.";
+//     echo "\nContent:\n$content";
+       
+    } else {
+       
+       // Sending mail failed
+       header("HTTP/1.0 503 Service Unavailable");
+       echo "503 Service Unavailable:  Unable to send bug report.";
+       
+    }
+
+} else {
+       
+       // Bad request
+       header("HTTP/1.0 400 Bad Request");
+       echo "400 Bad Request:  Illegal request.\n";
+       
+}
+
+?>
\ No newline at end of file
diff --git a/html/actions/testbugreport.html b/html/actions/testbugreport.html
new file mode 100644 (file)
index 0000000..994fe72
--- /dev/null
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+  <title>Bug report test</title>
+  <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"/>
+</head>
+
+<body>
+  <form method="post" action="http://sampo.kapsi.fi/reportbug.php" accept-charset="UTF-8">
+    <p>Version: <input type="text" size="30" name="version" value="1.0.0"/></p>
+    <p>Test bug report content:</p>
+    <p><textarea name="content" cols="80" rows="20">
+---------- Test bug report ----------
+
+äöå
+
+---------- End ----------
+</textarea></p>
+    <p><input type="submit" value="Submit bug report"/></p>
+    <p>A successful submission should result in a <em>201 Created</em> response.</p>
+    <p>Please do not abuse.</p>
+  </form>
+</body>
+</html>
+
diff --git a/html/robots.txt b/html/robots.txt
new file mode 100644 (file)
index 0000000..91d9f61
--- /dev/null
@@ -0,0 +1,4 @@
+
+User-agent: *
+Disallow:   /actions/
+
diff --git a/pix-src/icon/body-highlight.lights b/pix-src/icon/body-highlight.lights
new file mode 100644 (file)
index 0000000..2d41a13
--- /dev/null
@@ -0,0 +1,6 @@
+Number of lights: 1
+Type: Point
+Position: -1.4800000000000002 -0.43600000000000005 1.1000000000000001
+Direction: -1 -1 1
+Color: 1 1 1
+Intensity: 1.05
diff --git a/pix-src/icon/icon-016-4bit.png b/pix-src/icon/icon-016-4bit.png
new file mode 100644 (file)
index 0000000..52db21e
Binary files /dev/null and b/pix-src/icon/icon-016-4bit.png differ
diff --git a/pix-src/icon/icon-016-8bit.png b/pix-src/icon/icon-016-8bit.png
new file mode 100644 (file)
index 0000000..eb1d020
Binary files /dev/null and b/pix-src/icon/icon-016-8bit.png differ
diff --git a/pix-src/icon/icon-016.png b/pix-src/icon/icon-016.png
new file mode 100644 (file)
index 0000000..c2074c7
Binary files /dev/null and b/pix-src/icon/icon-016.png differ
diff --git a/pix-src/icon/icon-016.xcf.gz b/pix-src/icon/icon-016.xcf.gz
new file mode 100644 (file)
index 0000000..2534b40
Binary files /dev/null and b/pix-src/icon/icon-016.xcf.gz differ
diff --git a/pix-src/icon/icon-032-4bit.png b/pix-src/icon/icon-032-4bit.png
new file mode 100644 (file)
index 0000000..3df2842
Binary files /dev/null and b/pix-src/icon/icon-032-4bit.png differ
diff --git a/pix-src/icon/icon-032-8bit.png b/pix-src/icon/icon-032-8bit.png
new file mode 100644 (file)
index 0000000..ba46c28
Binary files /dev/null and b/pix-src/icon/icon-032-8bit.png differ
diff --git a/pix-src/icon/icon-032.png b/pix-src/icon/icon-032.png
new file mode 100644 (file)
index 0000000..a2be113
Binary files /dev/null and b/pix-src/icon/icon-032.png differ
diff --git a/pix-src/icon/icon-032.xcf.gz b/pix-src/icon/icon-032.xcf.gz
new file mode 100644 (file)
index 0000000..017c2c4
Binary files /dev/null and b/pix-src/icon/icon-032.xcf.gz differ
diff --git a/pix-src/icon/icon-048-4bit.png b/pix-src/icon/icon-048-4bit.png
new file mode 100644 (file)
index 0000000..1dec546
Binary files /dev/null and b/pix-src/icon/icon-048-4bit.png differ
diff --git a/pix-src/icon/icon-048-8bit.png b/pix-src/icon/icon-048-8bit.png
new file mode 100644 (file)
index 0000000..2a1111c
Binary files /dev/null and b/pix-src/icon/icon-048-8bit.png differ
diff --git a/pix-src/icon/icon-048.png b/pix-src/icon/icon-048.png
new file mode 100644 (file)
index 0000000..85a2e83
Binary files /dev/null and b/pix-src/icon/icon-048.png differ
diff --git a/pix-src/icon/icon-048.xcf.gz b/pix-src/icon/icon-048.xcf.gz
new file mode 100644 (file)
index 0000000..439d927
Binary files /dev/null and b/pix-src/icon/icon-048.xcf.gz differ
diff --git a/pix-src/icon/icon-064-4bit.png b/pix-src/icon/icon-064-4bit.png
new file mode 100644 (file)
index 0000000..a4679ac
Binary files /dev/null and b/pix-src/icon/icon-064-4bit.png differ
diff --git a/pix-src/icon/icon-064-8bit.png b/pix-src/icon/icon-064-8bit.png
new file mode 100644 (file)
index 0000000..bc54a6b
Binary files /dev/null and b/pix-src/icon/icon-064-8bit.png differ
diff --git a/pix-src/icon/icon-064.png b/pix-src/icon/icon-064.png
new file mode 100644 (file)
index 0000000..cc00eb2
Binary files /dev/null and b/pix-src/icon/icon-064.png differ
diff --git a/pix-src/icon/icon-064.xcf.gz b/pix-src/icon/icon-064.xcf.gz
new file mode 100644 (file)
index 0000000..34ac641
Binary files /dev/null and b/pix-src/icon/icon-064.xcf.gz differ
diff --git a/pix-src/icon/icon-256-1.png b/pix-src/icon/icon-256-1.png
new file mode 100644 (file)
index 0000000..7b1817e
Binary files /dev/null and b/pix-src/icon/icon-256-1.png differ
diff --git a/pix-src/icon/icon-256.png b/pix-src/icon/icon-256.png
new file mode 100644 (file)
index 0000000..c2170d3
Binary files /dev/null and b/pix-src/icon/icon-256.png differ
diff --git a/pix-src/icon/icon-256.xcf.gz b/pix-src/icon/icon-256.xcf.gz
new file mode 100644 (file)
index 0000000..fc83362
Binary files /dev/null and b/pix-src/icon/icon-256.xcf.gz differ
diff --git a/pix-src/icon/icon-large-1.xcf.gz b/pix-src/icon/icon-large-1.xcf.gz
new file mode 100644 (file)
index 0000000..84bca67
Binary files /dev/null and b/pix-src/icon/icon-large-1.xcf.gz differ
diff --git a/pix-src/icon/icon-large-2.xcf.gz b/pix-src/icon/icon-large-2.xcf.gz
new file mode 100644 (file)
index 0000000..aaf4600
Binary files /dev/null and b/pix-src/icon/icon-large-2.xcf.gz differ
diff --git a/pix-src/icon/icon-large-3.xcf.gz b/pix-src/icon/icon-large-3.xcf.gz
new file mode 100644 (file)
index 0000000..0804838
Binary files /dev/null and b/pix-src/icon/icon-large-3.xcf.gz differ
diff --git a/pix-src/icon/icon-simple.xcf.gz b/pix-src/icon/icon-simple.xcf.gz
new file mode 100644 (file)
index 0000000..55163d0
Binary files /dev/null and b/pix-src/icon/icon-simple.xcf.gz differ
diff --git a/pix-src/icon/icon-windows.ico b/pix-src/icon/icon-windows.ico
new file mode 100644 (file)
index 0000000..44eb480
Binary files /dev/null and b/pix-src/icon/icon-windows.ico differ
diff --git a/pix-src/icon/icon-windows.xcf.gz b/pix-src/icon/icon-windows.xcf.gz
new file mode 100644 (file)
index 0000000..e240186
Binary files /dev/null and b/pix-src/icon/icon-windows.xcf.gz differ
diff --git a/pix-src/icon/icon.xcf.gz b/pix-src/icon/icon.xcf.gz
new file mode 100644 (file)
index 0000000..dc5d93f
Binary files /dev/null and b/pix-src/icon/icon.xcf.gz differ
diff --git a/pix/icon/icon-016.png b/pix/icon/icon-016.png
new file mode 100644 (file)
index 0000000..c2074c7
Binary files /dev/null and b/pix/icon/icon-016.png differ
diff --git a/pix/icon/icon-032.png b/pix/icon/icon-032.png
new file mode 100644 (file)
index 0000000..a2be113
Binary files /dev/null and b/pix/icon/icon-032.png differ
diff --git a/pix/icon/icon-048.png b/pix/icon/icon-048.png
new file mode 100644 (file)
index 0000000..85a2e83
Binary files /dev/null and b/pix/icon/icon-048.png differ
diff --git a/pix/icon/icon-064.png b/pix/icon/icon-064.png
new file mode 100644 (file)
index 0000000..cc00eb2
Binary files /dev/null and b/pix/icon/icon-064.png differ
diff --git a/pix/icon/icon-256.png b/pix/icon/icon-256.png
new file mode 100644 (file)
index 0000000..c2170d3
Binary files /dev/null and b/pix/icon/icon-256.png differ
index fd901dfa9da216c1c438d32480e87eeb97df4e19..10857cd54fffdee06f1ec716f8fdb66b3b1c4cc7 100644 (file)
@@ -38,14 +38,27 @@ public class Database<T extends Comparable<T>> extends AbstractSet<T> implements
        private final List<T> list = new ArrayList<T>();
        private final EventListenerList listenerList = new EventListenerList();
        private final Loader<T> loader;
+       private final DatabaseStore<T> store;
        
        
        public Database() {
                loader = null;
+               store = null;
        }
        
        public Database(Loader<T> loader) {
                this.loader = loader;
+               this.store = null;
+       }
+       
+       public Database(DatabaseStore<T> store) {
+               this.loader = null;
+               this.store = store;
+       }
+       
+       public Database(Loader<T> loader, DatabaseStore<T> store) {
+               this.loader = loader;
+               this.store = store;
        }
        
                
@@ -73,6 +86,8 @@ public class Database<T extends Comparable<T>> extends AbstractSet<T> implements
                        index = -(index+1);
                }
                list.add(index,element);
+               if (store != null)
+                       store.elementAdded(element);
                fireChangeEvent();
                return true;
        }
@@ -223,6 +238,7 @@ public class Database<T extends Comparable<T>> extends AbstractSet<T> implements
         */
        private class DBIterator implements Iterator<T> {
                private Iterator<T> iterator = list.iterator();
+               private T current = null;
                
                @Override
                public boolean hasNext() {
@@ -231,12 +247,15 @@ public class Database<T extends Comparable<T>> extends AbstractSet<T> implements
 
                @Override
                public T next() {
-                       return iterator.next();
+                       current = iterator.next();
+                       return current;
                }
 
                @Override
                public void remove() {
                        iterator.remove();
+                       if (store != null)
+                               store.elementRemoved(current);
                        fireChangeEvent();
                }
        }
diff --git a/src/net/sf/openrocket/database/DatabaseStore.java b/src/net/sf/openrocket/database/DatabaseStore.java
new file mode 100644 (file)
index 0000000..39e1207
--- /dev/null
@@ -0,0 +1,9 @@
+package net.sf.openrocket.database;
+
+public interface DatabaseStore<T> {
+
+       public void elementAdded(T element);
+       
+       public void elementRemoved(T element);
+       
+}
index 3e4e6b6483952e3297472aa0405ad28c498f83da..68e286a8bd3bc1094703435ffdc21c85b6feaa2f 100644 (file)
@@ -5,7 +5,7 @@ import java.io.IOException;
 import java.net.URL;
 import java.util.ArrayList;
 
-import net.sf.openrocket.file.MotorLoader;
+import net.sf.openrocket.file.GeneralMotorLoader;
 import net.sf.openrocket.material.Material;
 import net.sf.openrocket.rocketcomponent.Motor;
 import net.sf.openrocket.util.JarUtil;
@@ -23,7 +23,7 @@ public class Databases {
        /**
         * The motor database.
         */
-       public static final Database<Motor> MOTOR = new Database<Motor>(new MotorLoader());
+       public static final Database<Motor> MOTOR = new Database<Motor>(new GeneralMotorLoader());
        
        
        /**
@@ -71,44 +71,44 @@ public class Databases {
        // TODO: HIGH: Move materials into data files
        static {
                
-               BULK_MATERIAL.add(new Material.Bulk("Acrylic",          1190));
-               BULK_MATERIAL.add(new Material.Bulk("Balsa",             170));
-               BULK_MATERIAL.add(new Material.Bulk("Birch",             670));
-               BULK_MATERIAL.add(new Material.Bulk("Cardboard",         680));
-               BULK_MATERIAL.add(new Material.Bulk("Carbon fiber",     1780));
-               BULK_MATERIAL.add(new Material.Bulk("Cork",                      240));
-               BULK_MATERIAL.add(new Material.Bulk("Fiberglass",       1850));
-               BULK_MATERIAL.add(new Material.Bulk("Kraft phenolic",950));
-               BULK_MATERIAL.add(new Material.Bulk("Maple",             755));
-               BULK_MATERIAL.add(new Material.Bulk("Paper (office)",820));
-               BULK_MATERIAL.add(new Material.Bulk("Pine",                      530));
-               BULK_MATERIAL.add(new Material.Bulk("Plywood (birch)",630));
-               BULK_MATERIAL.add(new Material.Bulk("Polycarbonate (Lexan)",1200));
-               BULK_MATERIAL.add(new Material.Bulk("Polystyrene",  1050));
-               BULK_MATERIAL.add(new Material.Bulk("PVC",                      1390));
-               BULK_MATERIAL.add(new Material.Bulk("Spruce",            450));
-               BULK_MATERIAL.add(new Material.Bulk("Quantum tubing",1050));
+               BULK_MATERIAL.add(new Material.Bulk("Acrylic",          1190, false));
+               BULK_MATERIAL.add(new Material.Bulk("Balsa",             170, false));
+               BULK_MATERIAL.add(new Material.Bulk("Birch",             670, false));
+               BULK_MATERIAL.add(new Material.Bulk("Cardboard",         680, false));
+               BULK_MATERIAL.add(new Material.Bulk("Carbon fiber",     1780, false));
+               BULK_MATERIAL.add(new Material.Bulk("Cork",                      240, false));
+               BULK_MATERIAL.add(new Material.Bulk("Fiberglass",       1850, false));
+               BULK_MATERIAL.add(new Material.Bulk("Kraft phenolic",950, false));
+               BULK_MATERIAL.add(new Material.Bulk("Maple",             755, false));
+               BULK_MATERIAL.add(new Material.Bulk("Paper (office)",820, false));
+               BULK_MATERIAL.add(new Material.Bulk("Pine",                      530, false));
+               BULK_MATERIAL.add(new Material.Bulk("Plywood (birch)",630, false));
+               BULK_MATERIAL.add(new Material.Bulk("Polycarbonate (Lexan)",1200, false));
+               BULK_MATERIAL.add(new Material.Bulk("Polystyrene",  1050, false));
+               BULK_MATERIAL.add(new Material.Bulk("PVC",                      1390, false));
+               BULK_MATERIAL.add(new Material.Bulk("Spruce",            450, false));
+               BULK_MATERIAL.add(new Material.Bulk("Quantum tubing",1050, false));
                
-               SURFACE_MATERIAL.add(new Material.Surface("Ripstop nylon",                      0.067));
-               SURFACE_MATERIAL.add(new Material.Surface("Mylar",                                      0.021));
-               SURFACE_MATERIAL.add(new Material.Surface("Polyethylene (thin)",        0.015));
-               SURFACE_MATERIAL.add(new Material.Surface("Polyethylene (heavy)",       0.040));
-               SURFACE_MATERIAL.add(new Material.Surface("Silk",                                       0.060));
-               SURFACE_MATERIAL.add(new Material.Surface("Paper (office)",                     0.080));
-               SURFACE_MATERIAL.add(new Material.Surface("Cellophane",                         0.018));
-               SURFACE_MATERIAL.add(new Material.Surface("Cr\u00eape paper",           0.025));
+               SURFACE_MATERIAL.add(new Material.Surface("Ripstop nylon",                      0.067, false));
+               SURFACE_MATERIAL.add(new Material.Surface("Mylar",                                      0.021, false));
+               SURFACE_MATERIAL.add(new Material.Surface("Polyethylene (thin)",        0.015, false));
+               SURFACE_MATERIAL.add(new Material.Surface("Polyethylene (heavy)",       0.040, false));
+               SURFACE_MATERIAL.add(new Material.Surface("Silk",                                       0.060, false));
+               SURFACE_MATERIAL.add(new Material.Surface("Paper (office)",                     0.080, false));
+               SURFACE_MATERIAL.add(new Material.Surface("Cellophane",                         0.018, false));
+               SURFACE_MATERIAL.add(new Material.Surface("Cr\u00eape paper",           0.025, false));
                
-               LINE_MATERIAL.add(new Material.Line("Thread (heavy-duty)",                              0.0003));
-               LINE_MATERIAL.add(new Material.Line("Elastic cord (round 2mm, 1/16 in)",0.0018));
-               LINE_MATERIAL.add(new Material.Line("Elastic cord (flat  6mm, 1/4 in)", 0.0043));
-               LINE_MATERIAL.add(new Material.Line("Elastic cord (flat 12mm, 1/2 in)", 0.008));
-               LINE_MATERIAL.add(new Material.Line("Elastic cord (flat 19mm, 3/4 in)", 0.0012));
-               LINE_MATERIAL.add(new Material.Line("Elastic cord (flat 25mm, 1 in)",   0.0016));
-               LINE_MATERIAL.add(new Material.Line("Braided nylon (2 mm, 1/16 in)",    0.001));
-               LINE_MATERIAL.add(new Material.Line("Braided nylon (3 mm, 1/8 in)",     0.0035));
-               LINE_MATERIAL.add(new Material.Line("Tubular nylon (11 mm, 7/16 in)",   0.013));
-               LINE_MATERIAL.add(new Material.Line("Tubular nylon (14 mm, 9/16 in)",   0.016));
-               LINE_MATERIAL.add(new Material.Line("Tubular nylon (25 mm, 1 in)",              0.029));
+               LINE_MATERIAL.add(new Material.Line("Thread (heavy-duty)",                              0.0003, false));
+               LINE_MATERIAL.add(new Material.Line("Elastic cord (round 2mm, 1/16 in)",0.0018, false));
+               LINE_MATERIAL.add(new Material.Line("Elastic cord (flat  6mm, 1/4 in)", 0.0043, false));
+               LINE_MATERIAL.add(new Material.Line("Elastic cord (flat 12mm, 1/2 in)", 0.008, false));
+               LINE_MATERIAL.add(new Material.Line("Elastic cord (flat 19mm, 3/4 in)", 0.0012, false));
+               LINE_MATERIAL.add(new Material.Line("Elastic cord (flat 25mm, 1 in)",   0.0016, false));
+               LINE_MATERIAL.add(new Material.Line("Braided nylon (2 mm, 1/16 in)",    0.001, false));
+               LINE_MATERIAL.add(new Material.Line("Braided nylon (3 mm, 1/8 in)",     0.0035, false));
+               LINE_MATERIAL.add(new Material.Line("Tubular nylon (11 mm, 7/16 in)",   0.013, false));
+               LINE_MATERIAL.add(new Material.Line("Tubular nylon (14 mm, 9/16 in)",   0.016, false));
+               LINE_MATERIAL.add(new Material.Line("Tubular nylon (25 mm, 1 in)",              0.029, false));
        }
        
        
diff --git a/src/net/sf/openrocket/file/GeneralMotorLoader.java b/src/net/sf/openrocket/file/GeneralMotorLoader.java
new file mode 100644 (file)
index 0000000..cd4ec00
--- /dev/null
@@ -0,0 +1,67 @@
+package net.sf.openrocket.file;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.Reader;
+import java.nio.charset.Charset;
+import java.util.List;
+
+import net.sf.openrocket.rocketcomponent.Motor;
+
+/**
+ * A motor loader class that detects the file type based on the file name extension.
+ * 
+ * @author Sampo Niskanen <sampo.niskanen@iki.fi>
+ */
+public class GeneralMotorLoader extends MotorLoader {
+
+       private static final MotorLoader RASP_LOADER = new RASPMotorLoader();
+       private static final MotorLoader ROCKSIM_LOADER = new RockSimMotorLoader();
+       
+       
+       @Override
+       public List<Motor> load(InputStream stream, String filename) throws IOException {
+               return selectLoader(filename).load(stream, filename);
+       }
+
+       @Override
+       public List<Motor> load(Reader reader, String filename) throws IOException {
+               return selectLoader(filename).load(reader, filename);
+       }
+       
+
+       @Override
+       protected Charset getDefaultCharset() {
+               // Not used, may return null
+               return null;
+       }
+
+       
+       /**
+        * Return the appropriate motor loader based on the file name.
+        * 
+        * @param filename              the file name (may be <code>null</code>).
+        * @return                              the appropriate motor loader to use for the file.
+        * @throws IOException  if the file type cannot be detected from the file name.
+        */
+       public static MotorLoader selectLoader(String filename) throws IOException {
+               if (filename == null) {
+                       throw new IOException("Unknown file type.");
+               }
+               
+               String ext = "";
+               int point = filename.lastIndexOf('.');
+               
+               if (point > 0)
+                       ext = filename.substring(point+1);
+               
+               if (ext.equalsIgnoreCase("eng")) {
+                       return RASP_LOADER;
+               } else if (ext.equalsIgnoreCase("rse")) {
+                       return ROCKSIM_LOADER;
+               }
+               
+               throw new IOException("Unknown file type.");
+       }
+       
+}
index bba71d29ca8d4ff02245747ab209e18828e8f185..ce997dfe5bdbf57151fe0063b842a015e0c01f5a 100644 (file)
@@ -3,6 +3,7 @@ package net.sf.openrocket.file;
 import java.io.BufferedInputStream;
 import java.io.IOException;
 import java.io.InputStream;
+import java.nio.charset.Charset;
 import java.util.zip.GZIPInputStream;
 
 import net.sf.openrocket.document.OpenRocketDocument;
@@ -20,9 +21,10 @@ public class GeneralRocketLoader extends RocketLoader {
        private static final int READ_BYTES = 300;
        
        private static final byte[] GZIP_SIGNATURE = { 31, -117 };  // 0x1f, 0x8b
-       private static final byte[] OPENROCKET_SIGNATURE = "<openrocket".getBytes();
+       private static final byte[] OPENROCKET_SIGNATURE = 
+               "<openrocket".getBytes(Charset.forName("US-ASCII"));
        
-       private static final OpenRocketLoader openRocketLoader = new OpenRocketLoader();
+       private final OpenRocketLoader openRocketLoader = new OpenRocketLoader();
        
        @Override
        protected OpenRocketDocument loadFromStream(InputStream source) throws IOException,
@@ -59,7 +61,7 @@ public class GeneralRocketLoader extends RocketLoader {
                        if (buffer[i] == OPENROCKET_SIGNATURE[match]) {
                                match++;
                                if (match == OPENROCKET_SIGNATURE.length) {
-                                       return openRocketLoader.load(source);
+                                       return loadUsing(source, openRocketLoader);
                                }
                        } else {
                                match = 0;
@@ -68,4 +70,12 @@ public class GeneralRocketLoader extends RocketLoader {
                
                throw new RocketLoadException("Unsupported or corrupt file.");
        }
+       
+       private OpenRocketDocument loadUsing(InputStream source, RocketLoader loader) 
+       throws RocketLoadException {
+               warnings.clear();
+               OpenRocketDocument doc = loader.load(source);
+               warnings.addAll(loader.getWarnings());
+               return doc;
+       }
 }
index 056f23b7b086eda5c3ca9dcdda039245b79b7cd0..2988a03e8b6ac4f78c1ec1f01b7be763d04103f9 100644 (file)
@@ -1,12 +1,10 @@
 package net.sf.openrocket.file;
 
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.io.Reader;
+import java.nio.charset.Charset;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
@@ -15,321 +13,212 @@ import java.util.List;
 import java.util.Map;
 
 import net.sf.openrocket.rocketcomponent.Motor;
-import net.sf.openrocket.rocketcomponent.ThrustCurveMotor;
-import net.sf.openrocket.util.Coordinate;
+import net.sf.openrocket.util.MathUtil;
 
 
-public class MotorLoader implements Loader<Motor> {
-       
-       /** The charset used when reading RASP files. */
-       public static final String RASP_CHARSET = "ISO-8859-1";
-
-       
-       
-       public List<Motor> load(InputStream stream, String filename) throws IOException {
-               return loadMotor(stream, filename);
-       }
+public abstract class MotorLoader implements Loader<Motor> {
        
        
-       /**
-        * Load <code>Motor</code> objects from the specified <code>InputStream</code>.
-        * The file type is detected based on the filename extension. 
-        * 
-        * @param stream        the stream from which to read the file.
-        * @param filename      the file name, by which the format is detected.
-        * @return                      a list of <code>Motor</code> objects defined in the file.
-        * @throws IOException  if an I/O exception occurs, the file format is unknown
-        *                                              or illegal.
+       /** 
+        * Manufacturer codes to expand.  These are general translations that are used
+        * both in RASP and RockSim engine files.
         */
-       public static List<Motor> loadMotor(InputStream stream, String filename) throws IOException {
-               if (filename == null) {
-                       throw new IOException("Unknown file type.");
+       private static final Map<String,String> MANUFACTURER_CODES =
+               new HashMap<String,String>();
+       static {
+               
+               /*
+                * TODO: CRITICAL: Should names have Inc. LLC. etc?
+                */
+               
+               // AeroTech has many name combinations...
+               for (String s: new String[] { "A", "AT", "AERO", "AEROT", "AEROTECH" }) {
+                       MANUFACTURER_CODES.put(s, "AeroTech");
+                       MANUFACTURER_CODES.put(s+"-RMS", "AeroTech");
+                       MANUFACTURER_CODES.put(s+"/RMS", "AeroTech");
+                       MANUFACTURER_CODES.put(s+"-RCS", "AeroTech");
+                       MANUFACTURER_CODES.put(s+"/RCS", "AeroTech");
+                       MANUFACTURER_CODES.put("RCS-" + s, "AeroTech");
+                       MANUFACTURER_CODES.put("RCS/" + s, "AeroTech");
+                       MANUFACTURER_CODES.put(s+"-APOGEE", "AeroTech");
+                       MANUFACTURER_CODES.put(s+"/APOGEE", "AeroTech");
                }
+               MANUFACTURER_CODES.put("ISP", "AeroTech");
                
-               String ext = "";
-               int point = filename.lastIndexOf('.');
+               MANUFACTURER_CODES.put("AHR", "Alpha Hybrid Rocketry LLC");
+               MANUFACTURER_CODES.put("ALPHA", "Alpha Hybrid Rocketry LLC");
+               MANUFACTURER_CODES.put("ALPHA HYBRID", "Alpha Hybrid Rocketry LLC");
+               MANUFACTURER_CODES.put("ALPHA HYBRIDS", "Alpha Hybrid Rocketry LLC");
+               MANUFACTURER_CODES.put("ALPHA HYBRID ROCKETRY", "Alpha Hybrid Rocketry LLC");
+               MANUFACTURER_CODES.put("ALPHA HYBRIDS ROCKETRY", "Alpha Hybrid Rocketry LLC");
+               MANUFACTURER_CODES.put("ALPHA HYBRID ROCKETRY LLC", "Alpha Hybrid Rocketry LLC");
+               MANUFACTURER_CODES.put("ALPHA HYBRID ROCKETRY, LLC", "Alpha Hybrid Rocketry LLC");
+
+               MANUFACTURER_CODES.put("AMW", "Animal Motor Works");
+               MANUFACTURER_CODES.put("AW", "Animal Motor Works");
+               MANUFACTURER_CODES.put("ANIMAL", "Animal Motor Works");
+               MANUFACTURER_CODES.put("ANIMAL MOTOR WORKS", "Animal Motor Works");
                
-               if (point > 0)
-                       ext = filename.substring(point+1);
+               MANUFACTURER_CODES.put("AP", "Apogee");
+               MANUFACTURER_CODES.put("APOG", "Apogee");
+               MANUFACTURER_CODES.put("APOGEE", "Apogee");
+               MANUFACTURER_CODES.put("P", "Apogee");
                
-               if (ext.equalsIgnoreCase("eng")) {
-                       return loadRASP(stream);
-               }
+               MANUFACTURER_CODES.put("CES", "Cesaroni Technology Inc.");
+               MANUFACTURER_CODES.put("CESARONI", "Cesaroni Technology Inc.");
+               MANUFACTURER_CODES.put("CESARONI TECHNOLOGY", "Cesaroni Technology Inc.");
+               MANUFACTURER_CODES.put("CESARONI TECHNOLOGY INC", "Cesaroni Technology Inc.");
+               MANUFACTURER_CODES.put("CESARONI TECHNOLOGY INC.", "Cesaroni Technology Inc.");
+               MANUFACTURER_CODES.put("CESARONI TECHNOLOGY INCORPORATED", "Cesaroni Technology Inc.");
+               MANUFACTURER_CODES.put("CTI", "Cesaroni Technology Inc.");
+               MANUFACTURER_CODES.put("CS", "Cesaroni Technology Inc.");
+               MANUFACTURER_CODES.put("CSR", "Cesaroni Technology Inc.");
+               MANUFACTURER_CODES.put("PRO38", "Cesaroni Technology Inc.");
                
-               throw new IOException("Unknown file type.");
-       }
-       
-       
-       
-       
-       //////////////  RASP file format  //////////////
-       
-       
-       /** Manufacturer codes to expand in RASP files */
-       private static final Map<String,String> manufacturerCodes =
-               new HashMap<String,String>();
-       static {
-               manufacturerCodes.put("A", "AeroTech");
-               manufacturerCodes.put("AT", "AeroTech");
-               manufacturerCodes.put("AT-RMS", "AeroTech");
-               manufacturerCodes.put("AT/RCS", "AeroTech");
-               manufacturerCodes.put("AERO", "AeroTech");
-               manufacturerCodes.put("AEROT", "AeroTech");
-               manufacturerCodes.put("ISP", "AeroTech");
-               manufacturerCodes.put("AEROTECH", "AeroTech");
-               manufacturerCodes.put("AEROTECH/APOGEE", "AeroTech");
-               manufacturerCodes.put("AMW", "Animal Motor Works");
-               manufacturerCodes.put("AW", "Animal Motor Works");
-               manufacturerCodes.put("ANIMAL", "Animal Motor Works");
-               manufacturerCodes.put("AP", "Apogee");
-               manufacturerCodes.put("APOG", "Apogee");
-               manufacturerCodes.put("P", "Apogee");
-               manufacturerCodes.put("CES", "Cesaroni");
-               manufacturerCodes.put("CTI", "Cesaroni");
-               manufacturerCodes.put("CS", "Cesaroni");
-               manufacturerCodes.put("CSR", "Cesaroni");
-               manufacturerCodes.put("PRO38", "Cesaroni");
-               manufacturerCodes.put("CR", "Contrail Rocket");
-               manufacturerCodes.put("CONTR", "Contrail Rocket");
-               manufacturerCodes.put("E", "Estes");
-               manufacturerCodes.put("ES", "Estes");
-               manufacturerCodes.put("EM", "Ellis Mountain");
-               manufacturerCodes.put("ELLIS", "Ellis Mountain");
-               manufacturerCodes.put("GR", "Gorilla Rocket Motors");
-               manufacturerCodes.put("GORILLA", "Gorilla Rocket Motors");
-               manufacturerCodes.put("H", "HyperTEK");
-               manufacturerCodes.put("HT", "HyperTEK");
-               manufacturerCodes.put("HYPER", "HyperTEK");
-               manufacturerCodes.put("HYPERTEK", "HyperTEK");
-               manufacturerCodes.put("K", "Kosdon by AeroTech");
-               manufacturerCodes.put("KBA", "Kosdon by AeroTech");
-               manufacturerCodes.put("K/AT", "Kosdon by AeroTech");
-               manufacturerCodes.put("KOSDON", "Kosdon by AeroTech");
-               manufacturerCodes.put("KOSDON/AT", "Kosdon by AeroTech");
-               manufacturerCodes.put("KOSDON-BY-AEROTECH", "Kosdon by AeroTech");
-               manufacturerCodes.put("LOKI", "Loki Research");
-               manufacturerCodes.put("LR", "Loki Research");
-               manufacturerCodes.put("PM", "Public Missiles");
-               manufacturerCodes.put("PML", "Public Missiles");
-               manufacturerCodes.put("PP", "Propulsion Polymers");
-               manufacturerCodes.put("PROP", "Propulsion Polymers");
-               manufacturerCodes.put("PROPULSION", "Propulsion Polymers");
-               manufacturerCodes.put("PROPULSION-POLYMERS", "Propulsion Polymers");
-               manufacturerCodes.put("Q", "Quest");
-               manufacturerCodes.put("QU", "Quest");
-               manufacturerCodes.put("RATT", "RATT Works");
-               manufacturerCodes.put("RT", "RATT Works");
-               manufacturerCodes.put("RTW", "RATT Works");
-               manufacturerCodes.put("RR", "Roadrunner Rocketry");
-               manufacturerCodes.put("ROADRUNNER", "Roadrunner Rocketry");
-               manufacturerCodes.put("RV", "Rocketvision");
-               manufacturerCodes.put("SR", "Sky Ripper Systems");
-               manufacturerCodes.put("SRS", "Sky Ripper Systems");
-               manufacturerCodes.put("SKYR", "Sky Ripper Systems");
-               manufacturerCodes.put("SKYRIPPER", "Sky Ripper Systems");
-               manufacturerCodes.put("WCH", "West Coast Hybrids");
-               manufacturerCodes.put("WCR", "West Coast Hybrids");
+               MANUFACTURER_CODES.put("CR", "Contrail Rockets");
+               MANUFACTURER_CODES.put("CONTR", "Contrail Rockets");
+               MANUFACTURER_CODES.put("CONTRAIL", "Contrail Rockets");
+               MANUFACTURER_CODES.put("CONTRAIL ROCKET", "Contrail Rockets");
+               MANUFACTURER_CODES.put("CONTRAIL ROCKETS", "Contrail Rockets");
+               
+               MANUFACTURER_CODES.put("E", "Estes");
+               MANUFACTURER_CODES.put("ES", "Estes");
+               MANUFACTURER_CODES.put("ESTES", "Estes");
+               
+               MANUFACTURER_CODES.put("EM", "Ellis Mountain");
+               MANUFACTURER_CODES.put("ELLIS", "Ellis Mountain");
+               MANUFACTURER_CODES.put("ELLIS MOUNTAIN", "Ellis Mountain");
+               MANUFACTURER_CODES.put("ELLIS MOUNTAIN ROCKET", "Ellis Mountain");
+               MANUFACTURER_CODES.put("ELLIS MOUNTAIN ROCKETS", "Ellis Mountain");
+               
+               MANUFACTURER_CODES.put("GR", "Gorilla Rocket Motors");
+               MANUFACTURER_CODES.put("GORILLA", "Gorilla Rocket Motors");
+               MANUFACTURER_CODES.put("GORILLA ROCKET", "Gorilla Rocket Motors");
+               MANUFACTURER_CODES.put("GORILLA ROCKETS", "Gorilla Rocket Motors");
+               MANUFACTURER_CODES.put("GORILLA MOTOR", "Gorilla Rocket Motors");
+               MANUFACTURER_CODES.put("GORILLA MOTORS", "Gorilla Rocket Motors");
+               MANUFACTURER_CODES.put("GORILLA ROCKET MOTOR", "Gorilla Rocket Motors");
+               MANUFACTURER_CODES.put("GORILLA ROCKET MOTORS", "Gorilla Rocket Motors");
+               
+               MANUFACTURER_CODES.put("H", "HyperTEK");
+               MANUFACTURER_CODES.put("HT", "HyperTEK");
+               MANUFACTURER_CODES.put("HYPER", "HyperTEK");
+               MANUFACTURER_CODES.put("HYPERTEK", "HyperTEK");
+               
+               MANUFACTURER_CODES.put("K", "Kosdon by AeroTech");
+               MANUFACTURER_CODES.put("KBA", "Kosdon by AeroTech");
+               MANUFACTURER_CODES.put("K/AT", "Kosdon by AeroTech");
+               MANUFACTURER_CODES.put("K-AT", "Kosdon by AeroTech");
+               MANUFACTURER_CODES.put("KOS", "Kosdon by AeroTech");
+               MANUFACTURER_CODES.put("KOSDON", "Kosdon by AeroTech");
+               MANUFACTURER_CODES.put("KOSDON/AT", "Kosdon by AeroTech");
+               MANUFACTURER_CODES.put("KOSDON-AT", "Kosdon by AeroTech");
+               MANUFACTURER_CODES.put("KOSDON/AEROTECH", "Kosdon by AeroTech");
+               MANUFACTURER_CODES.put("KOSDON-AEROTECH", "Kosdon by AeroTech");
+               MANUFACTURER_CODES.put("KOSDON-BY-AEROTECH", "Kosdon by AeroTech");
+               MANUFACTURER_CODES.put("KOSDON BY AEROTECH", "Kosdon by AeroTech");
+               
+               MANUFACTURER_CODES.put("LOKI", "Loki Research");
+               MANUFACTURER_CODES.put("LOKI RESEARCH", "Loki Research");
+               MANUFACTURER_CODES.put("LR", "Loki Research");
+               
+               MANUFACTURER_CODES.put("PM", "Public Missiles, Ltd.");
+               MANUFACTURER_CODES.put("PML", "Public Missiles, Ltd.");
+               MANUFACTURER_CODES.put("PUBLIC MISSILES", "Public Missiles, Ltd.");
+               MANUFACTURER_CODES.put("PUBLIC MISSILES LTD", "Public Missiles, Ltd.");
+               MANUFACTURER_CODES.put("PUBLIC MISSILES, LTD", "Public Missiles, Ltd.");
+               MANUFACTURER_CODES.put("PUBLIC MISSILES LTD.", "Public Missiles, Ltd.");
+               MANUFACTURER_CODES.put("PUBLIC MISSILES, LTD.", "Public Missiles, Ltd.");
+               MANUFACTURER_CODES.put("PUBLIC MISSILES LIMITED", "Public Missiles, Ltd.");
+               MANUFACTURER_CODES.put("PUBLIC MISSILES, LIMITED", "Public Missiles, Ltd.");
+               
+               MANUFACTURER_CODES.put("PP", "Propulsion Polymers");
+               MANUFACTURER_CODES.put("PROP", "Propulsion Polymers");
+               MANUFACTURER_CODES.put("PROPULSION", "Propulsion Polymers");
+               MANUFACTURER_CODES.put("PROPULSION-POLYMERS", "Propulsion Polymers");
+               MANUFACTURER_CODES.put("PROPULSION POLYMERS", "Propulsion Polymers");
+               
+               MANUFACTURER_CODES.put("Q", "Quest");
+               MANUFACTURER_CODES.put("QU", "Quest");
+               MANUFACTURER_CODES.put("QUEST", "Quest");
                
-               manufacturerCodes.put("SF", "WECO Feuerwerk");  // Previously Sachsen Feuerwerks
-               manufacturerCodes.put("WECO", "WECO Feuerwerk");
+               MANUFACTURER_CODES.put("RATT", "RATT Works");
+               MANUFACTURER_CODES.put("RATT WORKS", "RATT Works");
+               MANUFACTURER_CODES.put("RT", "RATT Works");
+               MANUFACTURER_CODES.put("RTW", "RATT Works");
                
+               MANUFACTURER_CODES.put("RR", "Roadrunner Rocketry");
+               MANUFACTURER_CODES.put("ROADRUNNER", "Roadrunner Rocketry");
+               MANUFACTURER_CODES.put("ROADRUNNER ROCKETRY", "Roadrunner Rocketry");
+               
+               MANUFACTURER_CODES.put("RV", "Rocketvision");
+               MANUFACTURER_CODES.put("ROCKETVISION", "Rocketvision");
+
+               MANUFACTURER_CODES.put("SR", "Sky Ripper Systems");
+               MANUFACTURER_CODES.put("SRS", "Sky Ripper Systems");
+               MANUFACTURER_CODES.put("SKYR", "Sky Ripper Systems");
+               MANUFACTURER_CODES.put("SKYRIPPER", "Sky Ripper Systems");
+               MANUFACTURER_CODES.put("SKYRIPPER SYSTEMS", "Sky Ripper Systems");
+               MANUFACTURER_CODES.put("SKY RIPPER SYSTEMS", "Sky Ripper Systems");
+               
+               MANUFACTURER_CODES.put("WCH", "West Coast Hybrids");
+               MANUFACTURER_CODES.put("WCR", "West Coast Hybrids");
+               MANUFACTURER_CODES.put("WEST COAST HYBRIDS", "West Coast Hybrids");
+               
+               MANUFACTURER_CODES.put("SF", "WECO Feuerwerk");  // Previously Sachsen Feuerwerks
+               MANUFACTURER_CODES.put("SACHSEN FEUERWERK", "WECO Feuerwerk");
+               MANUFACTURER_CODES.put("SACHSEN FEUERWERKS", "WECO Feuerwerk");
+               MANUFACTURER_CODES.put("WECO", "WECO Feuerwerk");
+               MANUFACTURER_CODES.put("WECO FEUERWERK", "WECO Feuerwerk");
+               MANUFACTURER_CODES.put("WECO FEUERWERKS", "WECO Feuerwerk");
        }
+
+       
+       
        
        /**
-        * A helper method to load a <code>Motor</code> from a RASP file, read from the
-        * specified <code>InputStream</code>.  The charset used is defined in 
-        * {@link #RASP_CHARSET}.
+        * Load motors from the specified <code>InputStream</code>.  The file is read using
+        * the default charset returned by {@link #getDefaultCharset()}.
         * 
-        * @param stream        the InputStream to read.
-        * @return                      the <code>Motor</code> object. 
-        * @throws IOException  if an I/O error occurs or if the file format is illegal.
-        * @see #loadRASP(Reader)
+        * @param stream                the source of the motor definitions.
+        * @param filename              the file name of the file, may be <code>null</code> if not 
+        *                                              applicable.
+        * @return                              a list of motors contained in the file.
+        * @throws IOException  if an I/O exception occurs of the file format is invalid.
         */
-       public static List<Motor> loadRASP(InputStream stream) throws IOException {
-               return loadRASP(new InputStreamReader(stream, RASP_CHARSET));
+       public List<Motor> load(InputStream stream, String filename) throws IOException {
+               return load(new InputStreamReader(stream, getDefaultCharset()), filename);
        }
        
        
-       
        /**
-        * Load a <code>Motor</code> from a RASP file specified by the <code>Reader</code>.
-        * The <code>Reader</code> is responsible for using the correct charset.
-        * <p>
-        * The CG is assumed to be located at the center of the motor casing and the mass
-        * is calculated from the thrust curve by assuming a constant exhaust velocity.
+        * Load motors from the specified <code>Reader</code>.
         * 
-        * @param reader  the source of the file.
-        * @return                a list of the {@link Motor} objects defined in the file.
-        * @throws IOException  if an I/O error occurs or if the file format is illegal.
+        * @param reader                the source of the motor definitions.
+        * @param filename              the file name of the file, may be <code>null</code> if not 
+        *                                              applicable.
+        * @return                              a list of motors contained in the file.
+        * @throws IOException  if an I/O exception occurs of the file format is invalid.
         */
-       public static List<Motor> loadRASP(Reader reader) throws IOException {
-               List<Motor> motors = new ArrayList<Motor>();
-               BufferedReader in = new BufferedReader(reader);
-
-               String manufacturer = "";
-               String designation = "";
-               String comment = "";
-               
-               double length = 0;
-               double diameter = 0;
-               ArrayList<Double> delays = null;
-               
-               List<Double> time = new ArrayList<Double>();
-               List<Double> thrust = new ArrayList<Double>();
-               
-               double propW = 0;
-               double totalW = 0;
-               
-               try {
-                       String line;
-                       String[] pieces, buf;
-
-                       line = in.readLine();
-                       main: while (line != null) {   // Until EOF
-
-                               manufacturer = "";
-                               designation = "";
-                               comment = "";
-                               length = 0;
-                               diameter = 0;
-                               delays = new ArrayList<Double>();
-                               propW = 0;
-                               totalW = 0;
-                               time.clear();
-                               thrust .clear();
-                       
-                               // Read comment
-                               while (line.length()==0 || line.charAt(0)==';') {
-                                       if (line.length() > 0) {
-                                               comment += line.substring(1).trim() + "\n";
-                                       }
-                                       line = in.readLine();
-                                       if (line == null)
-                                               break main;
-                               }
-                               comment = comment.trim();
-                               
-                               // Parse header line, example:
-                               // F32 24 124 5-10-15-P .0377 .0695 RV
-                               // desig diam len delays prop.w tot.w manufacturer
-                               pieces = split(line);
-                               if (pieces.length != 7) {
-                                       throw new IOException("Illegal file format.");
-                               }
-                               
-                               designation = pieces[0];
-                               diameter = Double.parseDouble(pieces[1]) / 1000.0;
-                               length = Double.parseDouble(pieces[2]) / 1000.0;
-                               
-                               if (pieces[3].equalsIgnoreCase("None")) {
-
-                               } else {
-                                       buf = split(pieces[3],"[-,]+");
-                                       for (int i=0; i < buf.length; i++) {
-                                               if (buf[i].equalsIgnoreCase("P")) {
-                                                       delays.add(Motor.PLUGGED);
-                                               } else {
-                                                       // Many RASP files have "100" as an only delay
-                                                       double d = Double.parseDouble(buf[i]);
-                                                       if (d < 99)
-                                                               delays.add(d);
-                                               }
-                                       }
-                                       Collections.sort(delays);
-                               }
-                               
-                               propW = Double.parseDouble(pieces[4]);
-                               totalW = Double.parseDouble(pieces[5]);
-                               if (manufacturerCodes.containsKey(pieces[6].toUpperCase())) {
-                                       manufacturer = manufacturerCodes.get(pieces[6].toUpperCase());
-                               } else {
-                                       manufacturer = pieces[6].replace('_', ' ');
-                               }
-                               
-                               // Read the data
-                               for (line = in.readLine(); 
-                                        (line != null) && (line.length()==0 || line.charAt(0) != ';');
-                                        line = in.readLine()) {
-                                       
-                                       buf = split(line);
-                                       if (buf.length == 0) {
-                                               continue;
-                                       } else if (buf.length == 2) {
-                                               
-                                               time.add(Double.parseDouble(buf[0]));
-                                               thrust .add(Double.parseDouble(buf[1]));
-                                               
-                                       } else {
-                                               throw new IOException("Illegal file format.");
-                                       }
-                               }
-                               
-                               // Comment of EOF encountered, marks the start of the next motor
-                               if (time.size() < 2) {
-                                       throw new IOException("Illegal file format, too short thrust-curve.");
-                               }
-                               double[] delayArray = new double[delays.size()];
-                               for (int i=0; i<delays.size(); i++) {
-                                       delayArray[i] = delays.get(i);
-                               }
-                               motors.add(createRASPMotor(manufacturer, designation, comment,
-                                               length, diameter, delayArray, propW, totalW, time, thrust));
-                       }
-                       
-               } catch (NumberFormatException e) {
-                       
-                       throw new IOException("Illegal file format.");
-                       
-               } finally {
-                       
-                       in.close();
-                       
-               }
-               
-               return motors;
-       }
+       public abstract List<Motor> load(Reader reader, String filename) throws IOException;
        
+
        
        /**
-        * Create a motor from RASP file data.
-        * @throws IOException  if the data is illegal for a thrust curve
+        * Return the default charset to use when loading rocket files of this type.
+        * <p>
+        * If the method {@link #load(InputStream, String)} is overridden as well, this
+        * method may return <code>null</code>.
+        * 
+        * @return      the charset to use when loading the rocket file.
         */
-       private static Motor createRASPMotor(String manufacturer, String designation,
-                       String comment, double length, double diameter, double[] delays,
-                       double propW, double totalW, List<Double> time, List<Double> thrust) 
-                       throws IOException {
-               
-               // Add zero time/thrust if necessary
-               if (time.get(0) > 0) {
-                       time.add(0, 0.0);
-                       thrust.add(0, 0.0);
-               }
-               
-               List<Double> mass = calculateMass(time,thrust,totalW,propW);
-               
-               double[] timeArray = new double[time.size()];
-               double[] thrustArray = new double[time.size()];
-               Coordinate[] cgArray = new Coordinate[time.size()];
-               for (int i=0; i < time.size(); i++) {
-                       timeArray[i] = time.get(i);
-                       thrustArray[i] = thrust.get(i);
-                       cgArray[i] = new Coordinate(length/2,0,0,mass.get(i));
-               }
-               
-               try {
-                       
-                       return new ThrustCurveMotor(manufacturer, designation, comment, Motor.Type.UNKNOWN,
-                                       delays, diameter, length, timeArray, thrustArray, cgArray);
-                       
-               } catch (IllegalArgumentException e) {
-                       
-                       // Bad data read from file.
-                       throw new IOException("Illegal file format.", e);
-                       
-               }
-       }
+       protected abstract Charset getDefaultCharset(); 
+       
+
        
        
+       //////////  Helper methods  //////////
+       
        
        /**
         * Calculate the mass of a motor at distinct points in time based on the
@@ -345,7 +234,7 @@ public class MotorLoader implements Loader<Motor> {
         * @param prop    propellant amount consumed during burning
         * @return                a list of the mass at the specified time points
         */
-       private static List<Double> calculateMass(List<Double> time, List<Double> thrust,
+       protected static List<Double> calculateMass(List<Double> time, List<Double> thrust,
                        double total, double prop) {
                List<Double> mass = new ArrayList<Double>();
                List<Double> deltam = new ArrayList<Double>();
@@ -353,7 +242,7 @@ public class MotorLoader implements Loader<Motor> {
                double t0, f0;
                double totalMassChange = 0;
                double scale;
-
+               
                // First calculate mass change between points
                t0 = time.get(0);
                f0 = thrust.get(0);
@@ -364,6 +253,8 @@ public class MotorLoader implements Loader<Motor> {
                        double dm = 0.5*(f0+f1)*(t1-t0);
                        deltam.add(dm);
                        totalMassChange += dm;
+                       t0 = t1;
+                       f0 = f1;
                }
                
                // Scale mass change and calculate mass
@@ -379,16 +270,33 @@ public class MotorLoader implements Loader<Motor> {
        
        
        /**
-        * Tokenizes a string using whitespace as the delimiter.
+        * Helper method to remove a delay (or plugged) from the end of a motor designation,
+        * if present.
+        * 
+        * @param designation   the motor designation.
+        * @return                              the designation with a possible delay removed.
+        */
+       protected static String removeDelay(String designation) {
+               if (designation.matches(".*-([0-9]+|[pP])$")) {
+                       designation = designation.substring(0, designation.lastIndexOf('-'));
+               }
+               return designation;
+       }
+       
+       
+       
+       /**
+        * Helper method to tokenize a string using whitespace as the delimiter.
         */
-       private static String[] split(String str) {
+       protected static String[] split(String str) {
                return split(str,"\\s+");
        }
        
+       
        /**
-        * Tokenizes a string using the given delimiter.
+        * Helper method to tokenize a string using the given delimiter.
         */
-       private static String[] split(String str, String delim) {
+       protected static String[] split(String str, String delim) {
                String[] pieces = str.split(delim);
                if (pieces.length==0 || !pieces[0].equals(""))
                        return pieces;
@@ -396,50 +304,82 @@ public class MotorLoader implements Loader<Motor> {
        }
        
        
-       
+       /**
+        * Sort the primary list and other lists in that order.
+        * 
+        * @param primary       the list to order.
+        * @param lists         lists to order in the same permutation.
+        */
+       protected static void sortLists(List<Double> primary, List<?> ... lists) {
+               
+               // TODO: LOW: Very idiotic sort algorithm, but should be fast enough
+               // since the time should be sorted already
+               
+               int index;
+               
+               do {
+                       for (index=0; index < primary.size()-1; index++) {
+                               if (primary.get(index+1) < primary.get(index)) {
+                                       Collections.swap(primary, index, index+1);
+                                       for (List<?> l: lists) {
+                                               Collections.swap(l, index, index+1);
+                                       }
+                                       break;
+                               }
+                       }
+               } while (index < primary.size()-1);
+       }
        
        
        /**
-        * For testing purposes.
+        * Convert a manufacturer string.  This should be done for all manufacturers
+        * for overall consistency.  This includes both RASP name expansions and some
+        * general renaming.  This should also be performed when loading designs in order
+        * to identify manufacturers correctly.
+        * 
+        * @param mfg   the original manufacturer / manufacturer code.
+        * @return              the manufacturer name.
         */
-       public static void main(String[] args) throws IOException {
-               List<Motor> motors;
+       public static String convertManufacturer(String mfg) {
+               // Replace underscore and trim
+               mfg = mfg.replace('_', ' ').trim();
                
-               if (args.length != 1) {
-                       System.out.println("Run with one argument, the RAPS file.");
-                       System.exit(1);
-               }
+               // Check for conversion
+               String conv = MANUFACTURER_CODES.get(mfg.toUpperCase());
+               if (conv != null)
+                       return conv;
+               else
+                       return mfg;
+       }
+       
+       
+       @SuppressWarnings("unchecked")
+       protected static void finalizeThrustCurve(List<Double> time, List<Double> thrust,
+                       List ... lists) {
                
-               motors = loadRASP(new FileInputStream(new File(args[0])));
+               if (time.size() == 0)
+                       return;
                
-               for (Motor motor: motors) {
-                       double time = motor.getTotalTime();
-
-                       System.out.println("Motor " + motor);
-                       System.out.println("Manufacturer:    "+motor.getManufacturer());
-                       System.out.println("Designation:     "+motor.getDesignation());
-                       System.out.println("Type:            "+motor.getMotorType().getName());
-                       System.out.printf( "Length:          %.1f mm\n",motor.getLength()*1000);
-                       System.out.printf( "Diameter:        %.1f mm\n",motor.getDiameter()*1000);
-                       System.out.println("Comment:\n" + motor.getDescription());
-
-                       System.out.printf( "Total burn time: %.2f s\n", time);
-                       System.out.printf( "Avg. burn time:  %.2f s\n", motor.getAverageTime());
-                       System.out.printf( "Avg. thrust:     %.2f N\n", motor.getAverageThrust());
-                       System.out.printf( "Max. thrust:     %.2f N\n", motor.getMaxThrust());
-                       System.out.printf( "Total impulse:   %.2f Ns\n", motor.getTotalImpulse());
-                       System.out.println("Delay times:     " + 
-                                       Arrays.toString(motor.getStandardDelays()));
-                       System.out.println("");
-                       
-                       final double COUNT = 20;
-                       for (int i=0; i <= COUNT; i++) {
-                               double t = time * i/COUNT;
-                               System.out.printf("t=%.2fs F=%.2fN m=%.4fkg\n",
-                                               t, motor.getThrust(t), motor.getMass(t));
+               // Start
+               if (!MathUtil.equals(time.get(0), 0) || !MathUtil.equals(thrust.get(0), 0)) {
+                       time.add(0, 0.0);
+                       thrust.add(0, 0.0);
+                       for (List l: lists) {
+                               Object o = l.get(0);
+                               l.add(0, o);
                        }
-                       System.out.println("");
                }
                
+               // End
+               int n = time.size()-1;
+               if (!MathUtil.equals(thrust.get(n), 0)) {
+                       time.add(time.get(n));
+                       thrust.add(0.0);
+                       for (List l: lists) {
+                               Object o = l.get(n);
+                               l.add(o);
+                       }
+               }
        }
+       
 }
index 2189a23825c7679c1fc6edc2a55550b0c3478bd1..88f58a56dc99ad55b4967cfa966e741ca69f47aa 100644 (file)
@@ -8,7 +8,6 @@ import java.lang.reflect.InvocationTargetException;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
-import java.util.Stack;
 
 import net.sf.openrocket.aerodynamics.Warning;
 import net.sf.openrocket.aerodynamics.WarningSet;
@@ -17,6 +16,9 @@ import net.sf.openrocket.document.OpenRocketDocument;
 import net.sf.openrocket.document.Simulation;
 import net.sf.openrocket.document.StorageOptions;
 import net.sf.openrocket.document.Simulation.Status;
+import net.sf.openrocket.file.simplesax.ElementHandler;
+import net.sf.openrocket.file.simplesax.PlainTextHandler;
+import net.sf.openrocket.file.simplesax.SimpleSAX;
 import net.sf.openrocket.material.Material;
 import net.sf.openrocket.rocketcomponent.BodyComponent;
 import net.sf.openrocket.rocketcomponent.BodyTube;
@@ -66,12 +68,8 @@ import net.sf.openrocket.util.Coordinate;
 import net.sf.openrocket.util.LineStyle;
 import net.sf.openrocket.util.Reflection;
 
-import org.xml.sax.Attributes;
 import org.xml.sax.InputSource;
 import org.xml.sax.SAXException;
-import org.xml.sax.XMLReader;
-import org.xml.sax.helpers.DefaultHandler;
-import org.xml.sax.helpers.XMLReaderFactory;
 
 
 /**
@@ -93,13 +91,9 @@ public class OpenRocketLoader extends RocketLoader {
                InputSource xmlSource = new InputSource(source);
                OpenRocketHandler handler = new OpenRocketHandler();
 
-               DelegatorHandler xmlhandler = new DelegatorHandler(handler, warnings);
-
+               
                try {
-                       XMLReader parser = XMLReaderFactory.createXMLReader();
-                       parser.setContentHandler(xmlhandler);
-                       parser.setErrorHandler(xmlhandler);
-                       parser.parse(xmlSource);
+                       SimpleSAX.readXML(xmlSource, handler, warnings);
                } catch (SAXException e) {
                        throw new RocketLoadException("Malformed XML in input.", e);
                }
@@ -507,171 +501,6 @@ class DocumentConfig {
 
 
 
-/**
- * The actual handler class.  Contains the necessary methods for parsing the SAX source.
- */
-class DelegatorHandler extends DefaultHandler {
-       private final WarningSet warnings;
-
-       private final Stack<ElementHandler> handlerStack = new Stack<ElementHandler>();
-       private final Stack<StringBuilder> elementData = new Stack<StringBuilder>();
-       private final Stack<HashMap<String, String>> elementAttributes = new Stack<HashMap<String, String>>();
-
-
-       // Ignore all elements as long as ignore > 0
-       private int ignore = 0;
-
-
-       public DelegatorHandler(ElementHandler initialHandler, WarningSet warnings) {
-               this.warnings = warnings;
-               handlerStack.add(initialHandler);
-               elementData.add(new StringBuilder()); // Just in case
-       }
-
-
-       /////////  SAX handlers
-
-       @Override
-       public void startElement(String uri, String localName, String name,
-                       Attributes attributes) throws SAXException {
-
-               // Check for ignore
-               if (ignore > 0) {
-                       ignore++;
-                       return;
-               }
-
-               // Check for unknown namespace
-               if (!uri.equals("")) {
-                       warnings.add(Warning.fromString("Unknown namespace element '" + uri
-                                       + "' encountered, ignoring."));
-                       ignore++;
-                       return;
-               }
-
-               // Add layer to data stacks
-               elementData.push(new StringBuilder());
-               elementAttributes.push(copyAttributes(attributes));
-
-               // Call the handler
-               ElementHandler h = handlerStack.peek();
-               h = h.openElement(localName, elementAttributes.peek(), warnings);
-               if (h != null) {
-                       handlerStack.push(h);
-               } else {
-                       // Start ignoring elements
-                       ignore++;
-               }
-       }
-
-
-       /**
-        * Stores encountered characters in the elementData stack.
-        */
-       @Override
-       public void characters(char[] chars, int start, int length) throws SAXException {
-               // Check for ignore
-               if (ignore > 0)
-                       return;
-
-               StringBuilder sb = elementData.peek();
-               sb.append(chars, start, length);
-       }
-
-
-       /**
-        * Removes the last layer from the stack.
-        */
-       @Override
-       public void endElement(String uri, String localName, String name) throws SAXException {
-
-               // Check for ignore
-               if (ignore > 0) {
-                       ignore--;
-                       return;
-               }
-
-               // Remove data from stack
-               String data = elementData.pop().toString(); // throws on error
-               HashMap<String, String> attr = elementAttributes.pop();
-
-               // Remove last handler and call the next one
-               ElementHandler h;
-               
-               h = handlerStack.pop();
-               h.endHandler(localName, attr, data, warnings);
-               
-               h = handlerStack.peek();
-               h.closeElement(localName, attr, data, warnings);
-       }
-
-
-       private static HashMap<String, String> copyAttributes(Attributes atts) {
-               HashMap<String, String> ret = new HashMap<String, String>();
-               for (int i = 0; i < atts.getLength(); i++) {
-                       ret.put(atts.getLocalName(i), atts.getValue(i));
-               }
-               return ret;
-       }
-}
-
-
-
-
-abstract class ElementHandler {
-
-       /**
-        * Called when an opening element is encountered.  Returns the handler that will handle
-        * the elements within that element, or <code>null</code> if the element and all of
-        * its contents is to be ignored.
-        * 
-        * @param element               the element name.
-        * @param attributes    attributes of the element.
-        * @param warnings              the warning set to store warnings in.
-        * @return                              the handler that handles elements encountered within this element,
-        *                                              or <code>null</code> if the element is to be ignored.
-        */
-       public abstract ElementHandler openElement(String element,
-                       HashMap<String, String> attributes, WarningSet warnings);
-
-       /**
-        * Called when an element is closed.  The default implementation checks whether there is
-        * any non-space text within the element and if there exists any attributes, and adds
-        * a warning of both.  This can be used at the and of the method to check for 
-        * spurious data.
-        * 
-        * @param element               the element name.
-        * @param attributes    attributes of the element.
-        * @param content               the textual content of the element.
-        * @param warnings              the warning set to store warnings in.
-        */
-       public void closeElement(String element, HashMap<String, String> attributes,
-                       String content, WarningSet warnings) {
-
-               if (!content.trim().equals("")) {
-                       warnings.add(Warning.fromString("Unknown text in element " + element
-                                       + ", ignoring."));
-               }
-               if (!attributes.isEmpty()) {
-                       warnings.add(Warning.fromString("Unknown attributes in element " + element
-                                       + ", ignoring."));
-               }
-       }
-       
-       
-       /**
-        * Called when the element block that this handler is handling ends.
-        * The default implementation is a no-op.
-        * 
-        * @param warnings              the warning set to store warnings in.
-        */
-       public void endHandler(String element, HashMap<String, String> attributes,
-                       String content, WarningSet warnings) {
-               // No-op
-       }
-       
-}
-
 
 /**
  * The starting point of the handlers.  Accepts a single <openrocket> element and hands
@@ -709,6 +538,7 @@ class OpenRocketHandler extends ElementHandler {
 
                // Check version number
                String version = null;
+               String creator = attributes.remove("creator");
                String docVersion = attributes.remove("version");
                for (String v : DocumentConfig.SUPPORTED_VERSIONS) {
                        if (v.equals(docVersion)) {
@@ -717,17 +547,28 @@ class OpenRocketHandler extends ElementHandler {
                        }
                }
                if (version == null) {
+                       String str = "Unsupported document version";
                        if (docVersion != null)
-                               warnings.add(Warning.fromString("Unsupported document version "
-                                               + docVersion + ", attempting to read anyway."));
-                       else
-                               warnings.add(Warning.fromString("Unsupported document version, attempting to"
-                                                               + " read anyway."));
+                               str += " " + docVersion;
+                       if (creator != null && !creator.trim().equals(""))
+                               str += " (written using '" + creator.trim() + "')";
+                       str += ", attempting to read file anyway.";
+                       warnings.add(str);
                }
 
                handler = new OpenRocketContentHandler();
                return handler;
        }
+
+       @Override
+       public void closeElement(String element, HashMap<String, String> attributes,
+                       String content, WarningSet warnings) throws SAXException {
+               attributes.remove("version");
+               attributes.remove("creator");
+               super.closeElement(element, attributes, content, warnings);
+       }
+       
+       
 }
 
 
@@ -786,30 +627,6 @@ class OpenRocketContentHandler extends ElementHandler {
 }
 
 
-/**
- * An element handler that does not allow any sub-elements.  If any are encountered
- * a warning is generated and they are ignored.
- */
-class PlainTextHandler extends ElementHandler {
-       public static final PlainTextHandler INSTANCE = new PlainTextHandler();
-
-       private PlainTextHandler() {
-       }
-
-       @Override
-       public ElementHandler openElement(String element, HashMap<String, String> attributes,
-                       WarningSet warnings) {
-               warnings.add(Warning.fromString("Unknown element " + element + ", ignoring."));
-               return null;
-       }
-
-       @Override
-       public void closeElement(String element, HashMap<String, String> attributes,
-                       String content, WarningSet warnings) {
-               // Warning from openElement is sufficient.
-       }
-}
-
 
 
 /**
@@ -927,8 +744,8 @@ class ComponentParameterHandler extends ElementHandler {
                        }
                }
                if (c == null) {
-                       warnings.add(Warning.fromString("Unknown parameter type " + element + " for "
-                                       + component.getComponentName()));
+                       warnings.add(Warning.fromString("Unknown parameter type '" + element + "' for "
+                                       + component.getComponentName() + ", ignoring."));
                }
        }
 }
@@ -955,7 +772,7 @@ class FinSetPointHandler extends ElementHandler {
 
        @Override
        public void closeElement(String element, HashMap<String, String> attributes,
-                       String content, WarningSet warnings) {
+                       String content, WarningSet warnings) throws SAXException {
 
                String strx = attributes.remove("x");
                String stry = attributes.remove("y");
@@ -1019,7 +836,7 @@ class MotorMountHandler extends ElementHandler {
 
        @Override
        public void closeElement(String element, HashMap<String, String> attributes,
-                       String content, WarningSet warnings) {
+                       String content, WarningSet warnings) throws SAXException {
 
                if (element.equals("motor")) {
                        String id = attributes.get("configid");
@@ -1111,7 +928,7 @@ class MotorConfigurationHandler extends ElementHandler {
 
        @Override
        public void endHandler(String element, HashMap<String, String> attributes,
-                       String content, WarningSet warnings) {
+                       String content, WarningSet warnings) throws SAXException {
 
                String configid = attributes.remove("configid");
                if (configid == null || configid.equals("")) {
@@ -1192,7 +1009,7 @@ class MotorHandler extends ElementHandler {
 
        @Override
        public void closeElement(String element, HashMap<String, String> attributes,
-                       String content, WarningSet warnings) {
+                       String content, WarningSet warnings) throws SAXException {
                
                content = content.trim();
                
@@ -1213,7 +1030,7 @@ class MotorHandler extends ElementHandler {
                } else if (element.equals("manufacturer")) {
                        
                        // Manufacturer
-                       manufacturer = content;
+                       manufacturer = MotorLoader.convertManufacturer(content);
 
                } else if (element.equals("designation")) {
                        
@@ -1291,6 +1108,15 @@ class SimulationsHandler extends ElementHandler {
                handler = new SingleSimulationHandler(doc);
                return handler;
        }
+
+       @Override
+       public void closeElement(String element, HashMap<String, String> attributes,
+                       String content, WarningSet warnings) throws SAXException {
+               attributes.remove("status");
+               super.closeElement(element, attributes, content, warnings);
+       }
+       
+       
 }
 
 class SingleSimulationHandler extends ElementHandler {
@@ -1336,12 +1162,12 @@ class SingleSimulationHandler extends ElementHandler {
                if (element.equals("name")) {
                        name = content;
                } else if (element.equals("simulator")) {
-                       if (!content.equals("RK4Simulator")) {
-                               warnings.add("Unknown simulator specified, ignoring.");
+                       if (!content.trim().equals("RK4Simulator")) {
+                               warnings.add("Unknown simulator '" + content.trim() + "' specified, ignoring.");
                        }
                } else if (element.equals("calculator")) {
-                       if (!content.equals("BarrowmanSimulator")) {
-                               warnings.add("Unknown calculator specified, ignoring.");
+                       if (!content.trim().equals("BarrowmanCalculator")) {
+                               warnings.add("Unknown calculator '" + content.trim() + "' specified, ignoring.");
                        }
                } else if (element.equals("listener") && content.trim().length() > 0) {
                        listeners.add(content.trim());
@@ -1496,7 +1322,7 @@ class AtmosphereHandler extends ElementHandler {
 
        @Override
        public void closeElement(String element, HashMap<String, String> attributes,
-                       String content, WarningSet warnings) {
+                       String content, WarningSet warnings) throws SAXException {
 
                double d = Double.NaN;
                try {
diff --git a/src/net/sf/openrocket/file/RASPMotorLoader.java b/src/net/sf/openrocket/file/RASPMotorLoader.java
new file mode 100644 (file)
index 0000000..4de7982
--- /dev/null
@@ -0,0 +1,209 @@
+package net.sf.openrocket.file;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.Reader;
+import java.nio.charset.Charset;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+import net.sf.openrocket.rocketcomponent.Motor;
+import net.sf.openrocket.rocketcomponent.ThrustCurveMotor;
+import net.sf.openrocket.util.Coordinate;
+
+public class RASPMotorLoader extends MotorLoader {
+
+       public static final String CHARSET_NAME = "ISO-8859-1";
+       
+       public static final Charset CHARSET = Charset.forName(CHARSET_NAME);
+       
+       
+       
+       
+       @Override
+       protected Charset getDefaultCharset() {
+               return CHARSET;
+       }
+
+       
+       /**
+        * Load a <code>Motor</code> from a RASP file specified by the <code>Reader</code>.
+        * The <code>Reader</code> is responsible for using the correct charset.
+        * <p>
+        * The CG is assumed to be located at the center of the motor casing and the mass
+        * is calculated from the thrust curve by assuming a constant exhaust velocity.
+        * 
+        * @param reader  the source of the file.
+        * @return                a list of the {@link Motor} objects defined in the file.
+        * @throws IOException  if an I/O error occurs or if the file format is illegal.
+        */
+       @Override
+       public List<Motor> load(Reader reader, String filename) throws IOException {
+               List<Motor> motors = new ArrayList<Motor>();
+               BufferedReader in = new BufferedReader(reader);
+
+               String manufacturer = "";
+               String designation = "";
+               String comment = "";
+               
+               double length = 0;
+               double diameter = 0;
+               ArrayList<Double> delays = null;
+               
+               List<Double> time = new ArrayList<Double>();
+               List<Double> thrust = new ArrayList<Double>();
+               
+               double propW = 0;
+               double totalW = 0;
+               
+               try {
+                       String line;
+                       String[] pieces, buf;
+
+                       line = in.readLine();
+                       main: while (line != null) {   // Until EOF
+
+                               manufacturer = "";
+                               designation = "";
+                               comment = "";
+                               length = 0;
+                               diameter = 0;
+                               delays = new ArrayList<Double>();
+                               propW = 0;
+                               totalW = 0;
+                               time.clear();
+                               thrust .clear();
+                       
+                               // Read comment
+                               while (line.length()==0 || line.charAt(0)==';') {
+                                       if (line.length() > 0) {
+                                               comment += line.substring(1).trim() + "\n";
+                                       }
+                                       line = in.readLine();
+                                       if (line == null)
+                                               break main;
+                               }
+                               comment = comment.trim();
+                               
+                               // Parse header line, example:
+                               // F32 24 124 5-10-15-P .0377 .0695 RV
+                               // desig diam len delays prop.w tot.w manufacturer
+                               pieces = split(line);
+                               if (pieces.length != 7) {
+                                       throw new IOException("Illegal file format.");
+                               }
+                               
+                               designation = pieces[0];
+                               diameter = Double.parseDouble(pieces[1]) / 1000.0;
+                               length = Double.parseDouble(pieces[2]) / 1000.0;
+                               
+                               if (pieces[3].equalsIgnoreCase("None")) {
+
+                               } else {
+                                       buf = split(pieces[3],"[-,]+");
+                                       for (int i=0; i < buf.length; i++) {
+                                               if (buf[i].equalsIgnoreCase("P") || 
+                                                               buf[i].equalsIgnoreCase("plugged")) {
+                                                       delays.add(Motor.PLUGGED);
+                                               } else {
+                                                       // Many RASP files have "100" as an only delay
+                                                       double d = Double.parseDouble(buf[i]);
+                                                       if (d < 99)
+                                                               delays.add(d);
+                                               }
+                                       }
+                                       Collections.sort(delays);
+                               }
+                               
+                               propW = Double.parseDouble(pieces[4]);
+                               totalW = Double.parseDouble(pieces[5]);
+                               manufacturer = convertManufacturer(pieces[6]);
+                               
+                               if (propW > totalW) {
+                                       throw new IOException("Propellant weight exceeds total weight in " +
+                                                       "RASP file");
+                               }
+                               
+                               // Read the data
+                               for (line = in.readLine(); 
+                                        (line != null) && (line.length()==0 || line.charAt(0) != ';');
+                                        line = in.readLine()) {
+                                       
+                                       buf = split(line);
+                                       if (buf.length == 0) {
+                                               continue;
+                                       } else if (buf.length == 2) {
+                                               
+                                               time.add(Double.parseDouble(buf[0]));
+                                               thrust .add(Double.parseDouble(buf[1]));
+                                               
+                                       } else {
+                                               throw new IOException("Illegal file format.");
+                                       }
+                               }
+                               
+                               // Comment of EOF encountered, marks the start of the next motor
+                               if (time.size() < 2) {
+                                       throw new IOException("Illegal file format, too short thrust-curve.");
+                               }
+                               double[] delayArray = new double[delays.size()];
+                               for (int i=0; i<delays.size(); i++) {
+                                       delayArray[i] = delays.get(i);
+                               }
+                               motors.add(createRASPMotor(manufacturer, designation, comment,
+                                               length, diameter, delayArray, propW, totalW, time, thrust));
+                       }
+                       
+               } catch (NumberFormatException e) {
+                       
+                       throw new IOException("Illegal file format.");
+                       
+               } finally {
+                       
+                       in.close();
+                       
+               }
+               
+               return motors;
+       }
+       
+       
+       /**
+        * Create a motor from RASP file data.
+        * @throws IOException  if the data is illegal for a thrust curve
+        */
+       private static Motor createRASPMotor(String manufacturer, String designation,
+                       String comment, double length, double diameter, double[] delays,
+                       double propW, double totalW, List<Double> time, List<Double> thrust) 
+                       throws IOException {
+               
+               // Add zero time/thrust if necessary
+               sortLists(time, thrust);
+               finalizeThrustCurve(time, thrust);
+               List<Double> mass = calculateMass(time,thrust,totalW,propW);
+               
+               double[] timeArray = new double[time.size()];
+               double[] thrustArray = new double[time.size()];
+               Coordinate[] cgArray = new Coordinate[time.size()];
+               for (int i=0; i < time.size(); i++) {
+                       timeArray[i] = time.get(i);
+                       thrustArray[i] = thrust.get(i);
+                       cgArray[i] = new Coordinate(length/2,0,0,mass.get(i));
+               }
+               
+               designation = removeDelay(designation);
+               
+               try {
+                       
+                       return new ThrustCurveMotor(manufacturer, designation, comment, Motor.Type.UNKNOWN,
+                                       delays, diameter, length, timeArray, thrustArray, cgArray);
+                       
+               } catch (IllegalArgumentException e) {
+                       
+                       // Bad data read from file.
+                       throw new IOException("Illegal file format.", e);
+                       
+               }
+       }
+}
diff --git a/src/net/sf/openrocket/file/RockSimMotorLoader.java b/src/net/sf/openrocket/file/RockSimMotorLoader.java
new file mode 100644 (file)
index 0000000..eef74ac
--- /dev/null
@@ -0,0 +1,418 @@
+package net.sf.openrocket.file;
+
+import java.io.IOException;
+import java.io.Reader;
+import java.nio.charset.Charset;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+
+import net.sf.openrocket.aerodynamics.WarningSet;
+import net.sf.openrocket.file.simplesax.ElementHandler;
+import net.sf.openrocket.file.simplesax.NullElementHandler;
+import net.sf.openrocket.file.simplesax.PlainTextHandler;
+import net.sf.openrocket.file.simplesax.SimpleSAX;
+import net.sf.openrocket.rocketcomponent.Motor;
+import net.sf.openrocket.rocketcomponent.ThrustCurveMotor;
+import net.sf.openrocket.util.Coordinate;
+
+import org.xml.sax.InputSource;
+import org.xml.sax.SAXException;
+
+public class RockSimMotorLoader extends MotorLoader {
+       
+       public static final String CHARSET_NAME = "UTF-8";
+       
+       public static final Charset CHARSET = Charset.forName(CHARSET_NAME);
+
+       
+       /** Any delay longed than this will be interpreted as a plugged motor. */
+       private static final int DELAY_LIMIT = 90;
+       
+
+       
+       @Override
+       protected Charset getDefaultCharset() {
+               return CHARSET;
+       }
+
+       
+
+       /**
+        * Load a <code>Motor</code> from a RockSim motor definition file specified by the 
+        * <code>Reader</code>. The <code>Reader</code> is responsible for using the correct 
+        * charset.
+        * <p>
+        * If automatic CG/mass calculation is used, then the CG is assumed to be located at 
+        * the center of the motor casing and the mass is calculated from the thrust curve 
+        * by assuming a constant exhaust velocity.
+        * 
+        * @param reader  the source of the file.
+        * @return                a list of the {@link Motor} objects defined in the file.
+        * @throws IOException  if an I/O error occurs or if the file format is invalid.
+        */
+       @Override
+       public List<Motor> load(Reader reader, String filename) throws IOException {
+               InputSource source = new InputSource(reader);
+               RSEHandler handler = new RSEHandler();
+               WarningSet warnings = new WarningSet();
+               
+               try {
+                       SimpleSAX.readXML(source, handler, warnings);
+                       return handler.getMotors();
+               } catch (SAXException e) {
+                       throw new IOException(e.getMessage(), e);
+               }
+       }
+       
+       
+       
+       /**
+        * Initial handler for the RockSim engine files.
+        */
+       private static class RSEHandler extends ElementHandler {
+               private final List<Motor> motors = new ArrayList<Motor>();
+               
+               private RSEMotorHandler motorHandler;
+               
+               public List<Motor> getMotors() {
+                       return motors;
+               }
+               
+               @Override
+               public ElementHandler openElement(String element,
+                               HashMap<String, String> attributes, WarningSet warnings) throws SAXException {
+
+                       if (element.equals("engine-database") ||
+                                       element.equals("engine-list")) {
+                               // Ignore <engine-database> and <engine-list> elements
+                               return this;
+                       }
+                       
+                       if (element.equals("version")) {
+                               // Ignore <version> elements completely
+                               return null;
+                       }
+                       
+                       if (element.equals("engine")) {
+                               motorHandler = new RSEMotorHandler(attributes);
+                               return motorHandler;
+                       }
+                       
+                       return null;
+               }
+
+               @Override
+               public void closeElement(String element, HashMap<String, String> attributes,
+                               String content, WarningSet warnings) throws SAXException {
+
+                       if (element.equals("engine")) {
+                               Motor motor = motorHandler.getMotor();
+                               motors.add(motor);
+                       }
+               }
+       }
+       
+       
+       /**
+        * Handler for a RockSim engine file <motor> element.
+        */
+       private static class RSEMotorHandler extends ElementHandler {
+
+               private final String manufacturer;
+               private final String designation;
+               private final double[] delays;
+               private final double diameter;
+               private final double length;
+               private final double initMass;
+               private final double propMass;
+               private final Motor.Type type;
+               private boolean calculateMass;
+               private boolean calculateCG;
+               
+               private String description = "";
+               
+               private List<Double> time;
+               private List<Double> force;
+               private List<Double> mass;
+               private List<Double> cg;
+               
+               private RSEMotorDataHandler dataHandler = null;
+
+               
+               public RSEMotorHandler(HashMap<String, String> attributes) throws SAXException {
+                       String str;
+                       
+                       // Manufacturer
+                       str = attributes.get("mfg");
+                       if (str == null)
+                               throw new SAXException("Manufacturer missing");
+                       manufacturer = convertManufacturer(str);
+                       
+                       // Designation
+                       str = attributes.get("code");
+                       if (str == null)
+                               throw new SAXException("Designation missing");
+                       designation = removeDelay(str);
+                       
+                       // Delays
+                       ArrayList<Double> delayList = new ArrayList<Double>();
+                       str = attributes.get("delays");
+                       if (str != null) {
+                               String[] split = str.split(",");
+                               for (String delay: split) {
+                                       try {
+                                               
+                                               double d = Double.parseDouble(delay);
+                                               if (d >= DELAY_LIMIT)
+                                                       d = Motor.PLUGGED;
+                                               delayList.add(d);
+                                               
+                                       } catch (NumberFormatException e) {
+                                               if (str.equalsIgnoreCase("P") || str.equalsIgnoreCase("plugged")) {
+                                                       delayList.add(Motor.PLUGGED);
+                                               }
+                                       }
+                               }
+                       }
+                       delays = new double[delayList.size()];
+                       for (int i=0; i<delayList.size(); i++) {
+                               delays[i] = delayList.get(i);
+                       }
+                       
+                       // Diameter
+                       str = attributes.get("dia");
+                       if (str == null)
+                               throw new SAXException("Diameter missing");
+                       try {
+                               diameter = Double.parseDouble(str) / 1000.0;
+                       } catch (NumberFormatException e) {
+                               throw new SAXException("Invalid diameter " + str);
+                       }
+                       
+                       // Length
+                       str = attributes.get("len");
+                       if (str == null)
+                               throw new SAXException("Length missing");
+                       try {
+                               length = Double.parseDouble(str) / 1000.0;
+                       } catch (NumberFormatException e) {
+                               throw new SAXException("Invalid length " + str);
+                       }
+                       
+                       // Initial mass
+                       str = attributes.get("initWt");
+                       if (str == null)
+                               throw new SAXException("Initial mass missing");
+                       try {
+                               initMass = Double.parseDouble(str) / 1000.0;
+                       } catch (NumberFormatException e) {
+                               throw new SAXException("Invalid initial mass " + str);
+                       }
+                       
+                       // Propellant mass
+                       str = attributes.get("propWt");
+                       if (str == null)
+                               throw new SAXException("Propellant mass missing");
+                       try {
+                               propMass = Double.parseDouble(str) / 1000.0;
+                       } catch (NumberFormatException e) {
+                               throw new SAXException("Invalid propellant mass " + str);
+                       }
+                       
+                       if (propMass > initMass) {
+                               throw new SAXException("Propellant weight exceeds total weight in " +
+                                               "RockSim engine format");
+                       }
+                       
+                       // Motor type
+                       str = attributes.get("Type");
+                       if (str != null && str.equalsIgnoreCase("single-use")) {
+                               type = Motor.Type.SINGLE;
+                       } else if (str != null && str.equalsIgnoreCase("hybrid")) {
+                               type = Motor.Type.HYBRID;
+                       } else if (str != null && str.equalsIgnoreCase("reloadable")) {
+                               type = Motor.Type.RELOAD;
+                       } else {
+                               type = Motor.Type.UNKNOWN;
+                       }
+                       
+                       // Calculate mass
+                       str = attributes.get("auto-calc-mass");
+                       if ("0".equals(str) || "false".equalsIgnoreCase(str)) {
+                               calculateMass = false;
+                       } else {
+                               calculateMass = true;
+                       }
+                       
+                       // Calculate CG
+                       str = attributes.get("auto-calc-cg");
+                       if ("0".equals(str) || "false".equalsIgnoreCase(str)) {
+                               calculateCG = false;
+                       } else {
+                               calculateCG = true;
+                       }
+               }
+               
+               @Override
+               public ElementHandler openElement(String element,
+                               HashMap<String, String> attributes, WarningSet warnings) throws SAXException {
+
+                       if (element.equals("comments")) {
+                               return PlainTextHandler.INSTANCE;
+                       }
+                       
+                       if (element.equals("data")) {
+                               if (dataHandler != null) {
+                                       throw new SAXException("Multiple data elements encountered in motor " +
+                                                       "definition");
+                               }
+                               dataHandler = new RSEMotorDataHandler();
+                               return dataHandler;
+                       }
+
+                       warnings.add("Unknown element '" + element + "' encountered, ignoring.");
+                       return null;
+               }
+
+               @Override
+               public void closeElement(String element, HashMap<String, String> attributes,
+                               String content, WarningSet warnings) {
+
+                       if (element.equals("comments")) {
+                               if (description.length() > 0) {
+                                       description = description + "\n\n" + content.trim();
+                               } else {
+                                       description = content.trim();
+                               }
+                               return;
+                       }
+                       
+                       if (element.equals("data")) {
+                               time = dataHandler.getTime();
+                               force = dataHandler.getForce();
+                               mass = dataHandler.getMass();
+                               cg = dataHandler.getCG();
+                               
+                               sortLists(time, force, mass, cg);
+                               
+                               for (double d: mass) {
+                                       if (Double.isNaN(d)) {
+                                               calculateMass = true;
+                                               break;
+                                       }
+                               }
+                               for (double d: cg) {
+                                       if (Double.isNaN(d)) {
+                                               calculateCG = true;
+                                               break;
+                                       }
+                               }
+                               return;
+                       }
+               }
+               
+               public Motor getMotor() throws SAXException {
+                       if (time == null || time.size() == 0)
+                               throw new SAXException("Illegal motor data");
+
+                       
+                       finalizeThrustCurve(time, force, mass, cg);
+                       final int n = time.size();
+                       
+                       if (calculateMass) {
+                               mass = calculateMass(time, force, initMass, propMass);
+                       }
+                       if (calculateCG) {
+                               for (int i=0; i < n; i++) {
+                                       cg.set(i, length/2);
+                               }
+                       }
+                       
+                       double[] timeArray = new double[n];
+                       double[] thrustArray = new double[n];
+                       Coordinate[] cgArray = new Coordinate[n];
+                       for (int i=0; i < n; i++) {
+                               timeArray[i] = time.get(i);
+                               thrustArray[i] = force.get(i);
+                               cgArray[i] = new Coordinate(cg.get(i),0,0,mass.get(i));
+                       }
+                       
+                       try {
+                               return new ThrustCurveMotor(manufacturer, designation, description, type,
+                                               delays, diameter, length, timeArray, thrustArray, cgArray);
+                       } catch (IllegalArgumentException e) {
+                               throw new SAXException("Illegal motor data", e);
+                       }
+               }
+       }
+       
+       
+       /**
+        * Handler for the <data> element in a RockSim engine file motor definition.
+        */
+       private static class RSEMotorDataHandler extends ElementHandler {
+               
+               private final List<Double> time = new ArrayList<Double>();
+               private final List<Double> force = new ArrayList<Double>();
+               private final List<Double> mass = new ArrayList<Double>();
+               private final List<Double> cg = new ArrayList<Double>();
+               
+               
+               public List<Double> getTime() {
+                       return time;
+               }
+               public List<Double> getForce() {
+                       return force;
+               }
+               public List<Double> getMass() {
+                       return mass;
+               }
+               public List<Double> getCG() {
+                       return cg;
+               }
+               
+               
+               @Override
+               public ElementHandler openElement(String element,
+                               HashMap<String, String> attributes, WarningSet warnings) {
+
+                       if (element.equals("eng-data")) {
+                               return NullElementHandler.INSTANCE;
+                       }
+                       
+                       warnings.add("Unknown element '" + element + "' encountered, ignoring.");
+                       return null;
+               }
+
+               @Override
+               public void closeElement(String element, HashMap<String, String> attributes,
+                               String content, WarningSet warnings) throws SAXException {
+
+                       double t = parseDouble(attributes.get("t"));
+                       double f = parseDouble(attributes.get("f"));
+                       double m = parseDouble(attributes.get("m")) / 1000.0;
+                       double g = parseDouble(attributes.get("cg")) / 1000.0;
+                       
+                       if (Double.isNaN(t) || Double.isNaN(f)) {
+                               throw new SAXException("Illegal motor data point encountered");
+                       }
+                       
+                       time.add(t);
+                       force.add(f);
+                       mass.add(m);
+                       cg.add(g);
+               }
+               
+               
+               private double parseDouble(String str) {
+                       if (str == null)
+                               return Double.NaN;
+                       try {
+                               return Double.parseDouble(str);
+                       } catch (NumberFormatException e) {
+                               return Double.NaN;
+                       }
+               }
+       }
+}
diff --git a/src/net/sf/openrocket/file/simplesax/DelegatorHandler.java b/src/net/sf/openrocket/file/simplesax/DelegatorHandler.java
new file mode 100644 (file)
index 0000000..b5403b5
--- /dev/null
@@ -0,0 +1,122 @@
+package net.sf.openrocket.file.simplesax;
+
+import java.util.HashMap;
+import java.util.Stack;
+
+import net.sf.openrocket.aerodynamics.Warning;
+import net.sf.openrocket.aerodynamics.WarningSet;
+
+import org.xml.sax.Attributes;
+import org.xml.sax.SAXException;
+import org.xml.sax.helpers.DefaultHandler;
+
+/**
+ * The actual handler class.  Contains the necessary methods for parsing the SAX source.
+ * Delegates the actual content parsing to {@link ElementHandler} objects.
+ */
+class DelegatorHandler extends DefaultHandler {
+       private final WarningSet warnings;
+
+       private final Stack<ElementHandler> handlerStack = new Stack<ElementHandler>();
+       private final Stack<StringBuilder> elementData = new Stack<StringBuilder>();
+       private final Stack<HashMap<String, String>> elementAttributes = 
+               new Stack<HashMap<String, String>>();
+
+
+       // Ignore all elements as long as ignore > 0
+       private int ignore = 0;
+
+
+       public DelegatorHandler(ElementHandler initialHandler, WarningSet warnings) {
+               this.warnings = warnings;
+               handlerStack.add(initialHandler);
+               elementData.add(new StringBuilder()); // Just in case
+       }
+
+
+       /////////  SAX handlers
+
+       @Override
+       public void startElement(String uri, String localName, String name,
+                       Attributes attributes) throws SAXException {
+
+               // Check for ignore
+               if (ignore > 0) {
+                       ignore++;
+                       return;
+               }
+
+               // Check for unknown namespace
+               if (!uri.equals("")) {
+                       warnings.add(Warning.fromString("Unknown namespace element '" + uri
+                                       + "' encountered, ignoring."));
+                       ignore++;
+                       return;
+               }
+
+               // Add layer to data stacks
+               elementData.push(new StringBuilder());
+               elementAttributes.push(copyAttributes(attributes));
+
+               // Call the handler
+               ElementHandler h = handlerStack.peek();
+               h = h.openElement(localName, elementAttributes.peek(), warnings);
+               if (h != null) {
+                       handlerStack.push(h);
+               } else {
+                       // Start ignoring elements
+                       ignore++;
+               }
+       }
+
+
+       /**
+        * Stores encountered characters in the elementData stack.
+        */
+       @Override
+       public void characters(char[] chars, int start, int length) throws SAXException {
+               // Check for ignore
+               if (ignore > 0)
+                       return;
+
+               StringBuilder sb = elementData.peek();
+               sb.append(chars, start, length);
+       }
+
+
+       /**
+        * Removes the last layer from the stack.
+        */
+       @Override
+       public void endElement(String uri, String localName, String name) throws SAXException {
+
+               // Check for ignore
+               if (ignore > 0) {
+                       ignore--;
+                       return;
+               }
+
+               // Remove data from stack
+               String data = elementData.pop().toString(); // throws on error
+               HashMap<String, String> attr = elementAttributes.pop();
+
+               // Remove last handler and call the next one
+               ElementHandler h;
+               
+               h = handlerStack.pop();
+               h.endHandler(localName, attr, data, warnings);
+               
+               h = handlerStack.peek();
+               h.closeElement(localName, attr, data, warnings);
+       }
+
+
+       private static HashMap<String, String> copyAttributes(Attributes atts) {
+               HashMap<String, String> ret = new HashMap<String, String>();
+               for (int i = 0; i < atts.getLength(); i++) {
+                       ret.put(atts.getLocalName(i), atts.getValue(i));
+               }
+               return ret;
+       }
+}
+
diff --git a/src/net/sf/openrocket/file/simplesax/ElementHandler.java b/src/net/sf/openrocket/file/simplesax/ElementHandler.java
new file mode 100644 (file)
index 0000000..ae678f8
--- /dev/null
@@ -0,0 +1,94 @@
+package net.sf.openrocket.file.simplesax;
+
+import java.util.HashMap;
+
+import net.sf.openrocket.aerodynamics.Warning;
+import net.sf.openrocket.aerodynamics.WarningSet;
+
+import org.xml.sax.SAXException;
+
+
+/**
+ * A "simple XML" element handler.  An object of this class handles a single element of
+ * an XML file.  If the input file is:
+ * 
+ *   <foo>
+ *     <bar>message</bar>
+ *   </foo>
+ * 
+ * and the initial handler is initHandler, then the following methods will be called:
+ * 
+ * 1. initHandler.{@link #openElement(String, HashMap, WarningSet)} is called for
+ *       the opening element <bar>, which returns fooHandler
+ * 2. fooHandler.{@link #openElement(String, HashMap, WarningSet)} is called for
+ *       the opening element <bar>, which returns barHandler
+ * 3. barHandler.{@link #endHandler(String, HashMap, String, WarningSet)} is called for
+ *       the closing element </bar>
+ * 4. fooHandler.{@link #closeElement(String, HashMap, String, WarningSet)} is called for
+ *       the closing element </bar>
+ * 5. fooHandler.{@link #endHandler(String, HashMap, String, WarningSet)} is called for
+ *       the closing element </foo>
+ * 6. initHandler.{@link #closeElement(String, HashMap, String, WarningSet)} is called for
+ *       the closing element </foo>
+ * 
+ * Note that {@link #endHandler(String, HashMap, String, WarningSet)} is not called for
+ * the initial handler.
+ * 
+ * @author Sampo Niskanen <sampo.niskanen@iki.fi>
+ */
+public abstract class ElementHandler {
+
+       /**
+        * Called when an opening element is encountered.  Returns the handler that will handle
+        * the elements within that element, or <code>null</code> if the element and all of
+        * its contents is to be ignored.
+        * <p>
+        * Note that this method may also return <code>this</code>, in which case this
+        * handler will also handle the subelement.
+        * 
+        * @param element               the element name.
+        * @param attributes    attributes of the element.
+        * @param warnings              the warning set to store warnings in.
+        * @return                              the handler that handles elements encountered within this element,
+        *                                              or <code>null</code> if the element is to be ignored.
+        */
+       public abstract ElementHandler openElement(String element,
+                       HashMap<String, String> attributes, WarningSet warnings) throws SAXException;
+
+       /**
+        * Called when an element is closed.  The default implementation checks whether there is
+        * any non-space text within the element and if there exists any attributes, and adds
+        * a warning of both.  This can be used at the and of the method to check for 
+        * spurious data.
+        * 
+        * @param element               the element name.
+        * @param attributes    attributes of the element.
+        * @param content               the textual content of the element.
+        * @param warnings              the warning set to store warnings in.
+        */
+       public void closeElement(String element, HashMap<String, String> attributes,
+                       String content, WarningSet warnings) throws SAXException {
+
+               if (!content.trim().equals("")) {
+                       warnings.add(Warning.fromString("Unknown text in element '" + element
+                                       + "', ignoring."));
+               }
+               if (!attributes.isEmpty()) {
+                       warnings.add(Warning.fromString("Unknown attributes in element '" + element
+                                       + "', ignoring."));
+               }
+       }
+       
+       
+       /**
+        * Called when the element block that this handler is handling ends.
+        * The default implementation is a no-op.
+        * 
+        * @param warnings              the warning set to store warnings in.
+        */
+       public void endHandler(String element, HashMap<String, String> attributes,
+                       String content, WarningSet warnings) throws SAXException {
+               // No-op
+       }
+       
+}
diff --git a/src/net/sf/openrocket/file/simplesax/NullElementHandler.java b/src/net/sf/openrocket/file/simplesax/NullElementHandler.java
new file mode 100644 (file)
index 0000000..03bb124
--- /dev/null
@@ -0,0 +1,38 @@
+package net.sf.openrocket.file.simplesax;
+
+import java.util.HashMap;
+
+import net.sf.openrocket.aerodynamics.Warning;
+import net.sf.openrocket.aerodynamics.WarningSet;
+
+import org.xml.sax.SAXException;
+
+/**
+ * An element handler that does not accept any content in the element except whitespace
+ * text.  All subelements are ignored and an error is produced of them.  Any attributes
+ * are ignored.
+ * 
+ * @author Sampo Niskanen <sampo.niskanen@iki.fi>
+ */
+public class NullElementHandler extends ElementHandler {
+       public static final NullElementHandler INSTANCE = new NullElementHandler();
+
+       private static final HashMap<String, String> EMPTY_MAP = new HashMap<String,String>(); 
+       
+       private NullElementHandler() {
+       }
+
+       @Override
+       public ElementHandler openElement(String element, HashMap<String, String> attributes,
+                       WarningSet warnings) {
+               warnings.add(Warning.fromString("Unknown element " + element + ", ignoring."));
+               return null;
+       }
+
+       @Override
+       public void closeElement(String element, HashMap<String, String> attributes,
+                       String content, WarningSet warnings) throws SAXException {
+               super.closeElement(element, EMPTY_MAP, content, warnings);
+       }
+
+}
diff --git a/src/net/sf/openrocket/file/simplesax/PlainTextHandler.java b/src/net/sf/openrocket/file/simplesax/PlainTextHandler.java
new file mode 100644 (file)
index 0000000..03be721
--- /dev/null
@@ -0,0 +1,31 @@
+package net.sf.openrocket.file.simplesax;
+
+import java.util.HashMap;
+
+import net.sf.openrocket.aerodynamics.Warning;
+import net.sf.openrocket.aerodynamics.WarningSet;
+
+/**
+ * An element handler that does not allow any sub-elements.  If any are encountered
+ * a warning is generated and they are ignored.
+ */
+public class PlainTextHandler extends ElementHandler {
+       public static final PlainTextHandler INSTANCE = new PlainTextHandler();
+
+       private PlainTextHandler() {
+       }
+
+       @Override
+       public ElementHandler openElement(String element, HashMap<String, String> attributes,
+                       WarningSet warnings) {
+               warnings.add(Warning.fromString("Unknown element " + element + ", ignoring."));
+               return null;
+       }
+
+       @Override
+       public void closeElement(String element, HashMap<String, String> attributes,
+                       String content, WarningSet warnings) {
+               // Warning from openElement is sufficient.
+       }
+}
+
diff --git a/src/net/sf/openrocket/file/simplesax/SimpleSAX.java b/src/net/sf/openrocket/file/simplesax/SimpleSAX.java
new file mode 100644 (file)
index 0000000..025c888
--- /dev/null
@@ -0,0 +1,47 @@
+package net.sf.openrocket.file.simplesax;
+
+import java.io.IOException;
+
+import net.sf.openrocket.aerodynamics.WarningSet;
+
+import org.xml.sax.InputSource;
+import org.xml.sax.SAXException;
+import org.xml.sax.XMLReader;
+import org.xml.sax.helpers.XMLReaderFactory;
+
+
+/**
+ * A "simple SAX" XML reader.  This system imposes the limit that an XML element may
+ * contain either textual (non-whitespace) content OR additional elements, but not
+ * both.  This holds true for both the OpenRocket and RockSim design formats and the
+ * RockSim engine definition format.
+ * <p>
+ * The actual handling is performed by subclasses of {@link ElementHandler}.  The 
+ * initial handler is provided to the {@link #readXML(InputSource, ElementHandler, WarningSet)}
+ * method.
+ * 
+ * @author Sampo Niskanen <sampo.niskanen@iki.fi>
+ */
+public class SimpleSAX {
+
+       /**
+        * Read a simple XML file.
+        * 
+        * @param source                        the SAX input source.
+        * @param initialHandler        the initial content handler.
+        * @param warnings                      a warning set to store warning (cannot be <code>null</code>).
+        * @throws IOException          if an I/O exception occurs while reading.
+        * @throws SAXException         if e.g. malformed XML is encountered.
+        */
+       public static void readXML(InputSource source, ElementHandler initialHandler,
+                       WarningSet warnings) throws IOException, SAXException {
+
+               DelegatorHandler xmlhandler = new DelegatorHandler(initialHandler, warnings);
+
+               XMLReader reader = XMLReaderFactory.createXMLReader();
+               reader.setContentHandler(xmlhandler);
+               reader.setErrorHandler(xmlhandler);
+               reader.parse(source);
+       }
+       
+}
index 0004dbc4659ceb4ad38497830422a3707bc8bd3a..f2125b630162f012ee6398fc4f0d8f1a1dc6367e 100644 (file)
@@ -586,13 +586,12 @@ public class DoubleModel implements ChangeListener, ChangeSource {
                try {
                        return (Double)getMethod.invoke(source)*multiplier;
                } catch (IllegalArgumentException e) {
-                       e.printStackTrace();
+                       throw new RuntimeException("BUG: Unable to invoke getMethod of "+this, e);
                } catch (IllegalAccessException e) {
-                       e.printStackTrace();
+                       throw new RuntimeException("BUG: Unable to invoke getMethod of "+this, e);
                } catch (InvocationTargetException e) {
-                       e.printStackTrace();
+                       throw new RuntimeException("BUG: Unable to invoke getMethod of "+this, e);
                }
-               return lastValue;  // Should not occur
        }
        
        /**
@@ -614,13 +613,12 @@ public class DoubleModel implements ChangeListener, ChangeSource {
                        setMethod.invoke(source, v/multiplier);
                        return;
                } catch (IllegalArgumentException e) {
-                       e.printStackTrace();
+                       throw new RuntimeException("BUG: Unable to invoke setMethod of "+this, e);
                } catch (IllegalAccessException e) {
-                       e.printStackTrace();
+                       throw new RuntimeException("BUG: Unable to invoke setMethod of "+this, e);
                } catch (InvocationTargetException e) {
-                       e.printStackTrace();
+                       throw new RuntimeException("BUG: Unable to invoke setMethod of "+this, e);
                }
-               fireStateChanged();  // Should not occur
        }
 
        
index 1daf286cb3dc2e77ef4b7ee2dbbdf92fc912af9b..146262c98967501ebd9612a93c4f6529b385cf9d 100644 (file)
@@ -1,6 +1,8 @@
 package net.sf.openrocket.gui.adaptors;
 
 
+import java.awt.Dialog;
+import java.awt.Window;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
 
@@ -8,7 +10,6 @@ import javax.swing.AbstractListModel;
 import javax.swing.ComboBoxModel;
 import javax.swing.JButton;
 import javax.swing.JDialog;
-import javax.swing.JFrame;
 import javax.swing.JLabel;
 import javax.swing.JPanel;
 import javax.swing.JSpinner;
@@ -157,7 +158,7 @@ public class MaterialModel extends AbstractListModel implements
 //             private JCheckBox addBox;
                
                public AddMaterialDialog() {
-                       super((JFrame)null, "Custom material", true);
+                       super((Window)null, "Custom material", Dialog.ModalityType.APPLICATION_MODAL);
                        
                        Material material = (Material) getSelectedItem();
                        
@@ -201,6 +202,5 @@ public class MaterialModel extends AbstractListModel implements
                        this.setAlwaysOnTop(true);
                        this.setLocationRelativeTo(null);
                }
-               
        }
 }
diff --git a/src/net/sf/openrocket/gui/components/SelectableLabel.java b/src/net/sf/openrocket/gui/components/SelectableLabel.java
new file mode 100644 (file)
index 0000000..d4fd622
--- /dev/null
@@ -0,0 +1,44 @@
+package net.sf.openrocket.gui.components;
+
+import java.awt.Cursor;
+import java.awt.Dimension;
+
+import javax.swing.JTextField;
+import javax.swing.UIManager;
+import javax.swing.plaf.basic.BasicTextFieldUI;
+
+public class SelectableLabel extends JTextField {
+
+       public SelectableLabel() {
+               this("");
+       }
+
+       public SelectableLabel(String text) {
+               super(text);
+               
+               // Set basic UI since GTK l&f doesn't support null border
+               this.setUI(new BasicTextFieldUI());
+               
+               this.setCursor(Cursor.getPredefinedCursor(Cursor.TEXT_CURSOR));
+               
+               this.setEditable(false);
+               this.setBorder(null);
+               this.setOpaque(true);
+               if (UIManager.getColor("Label.foreground") != null)
+                       this.setForeground(UIManager.getColor("Label.foreground"));
+               if (UIManager.getColor("Label.background") != null)
+                       this.setBackground(UIManager.getColor("Label.background"));
+               if (UIManager.getFont("Label.font") != null)
+                       this.setFont(UIManager.getFont("Label.font"));
+               
+       }
+       
+       // The default preferred size is slightly too short, causing it to scroll
+       @Override
+       public Dimension getPreferredSize() {
+               Dimension dim = super.getPreferredSize();
+               dim.width += 5;
+               return dim;
+       }
+
+}
index be6bdd82793c32110e88c347b438cda80974e3fb..0be6b6d6947605e0274fcf3fcd717f0401b3b0f3 100644 (file)
@@ -1,13 +1,16 @@
 package net.sf.openrocket.gui.components;
 
+import java.awt.Color;
+import java.awt.Cursor;
 import java.awt.Desktop;
 import java.awt.event.MouseAdapter;
 import java.awt.event.MouseEvent;
+import java.awt.font.TextAttribute;
 import java.io.IOException;
 import java.net.URI;
 import java.net.URISyntaxException;
-
-import javax.swing.JLabel;
+import java.util.HashMap;
+import java.util.Map;
 
 /**
  * A label of a URL that is clickable.  Clicking the URL will launch the URL in
@@ -15,20 +18,39 @@ import javax.swing.JLabel;
  * 
  * @author Sampo Niskanen <sampo.niskanen@iki.fi>
  */
-public class URLLabel extends JLabel {
+public class URLLabel extends SelectableLabel {
        
-       private final String url;
+       /**
+        * Create a label showing the url it will direct to.
+        * 
+        * @param url   the URL.
+        */
+       public URLLabel(String url) {
+               this(url, url);
+       }
        
-       public URLLabel(String urlLabel) {
+       /**
+        * Create a label with separate URL and label.
+        * 
+        * @param url   the URL clicking will open.
+        * @param label the label.
+        */
+       public URLLabel(final String url, String label) {
                super();
                
-               this.url = urlLabel;
-               
+               setText(label);
 
                if (Desktop.isDesktopSupported()) {
                        
-                       setText("<html><a href=\"" + url + "\">" + url + "</a>");
-
+                       // Blue, underlined font
+                       Map<TextAttribute, Object> map = new HashMap<TextAttribute, Object>();
+                       map.put(TextAttribute.UNDERLINE, TextAttribute.UNDERLINE_ON);
+                       this.setFont(this.getFont().deriveFont(map));
+                       this.setForeground(Color.BLUE);
+                       
+                       this.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
+                       
+                       
                        this.addMouseListener(new MouseAdapter() {
                                @Override
                                public void mouseClicked(MouseEvent e) {
@@ -43,9 +65,7 @@ public class URLLabel extends JLabel {
                                        }
                                }
                        });
-                       
-               } else {
-                       setText(url);
+
                }
        }
 }
index bdb7aa03631232f331ebe28ec94be88206a283bb..e0939146c8089c4db4f3cadf54b078a1a4516e95 100644 (file)
@@ -58,6 +58,25 @@ public class EllipticalFinSetConfig extends FinSetConfig {
                panel.add(new BasicSlider(m.getSliderModel(-Math.PI,Math.PI)),"w 100lp, wrap");
                
                
+               ////  Fin cant
+               JLabel label = new JLabel("Fin cant:");
+               label.setToolTipText("The angle that the fins are canted with respect to the rocket " +
+                               "body.");
+               panel.add(label);
+               
+               m = new DoubleModel(component, "CantAngle", UnitGroup.UNITS_ANGLE,
+                               -FinSet.MAX_CANT, FinSet.MAX_CANT);
+               
+               spin = new JSpinner(m.getSpinnerModel());
+               spin.setEditor(new SpinnerEditor(spin));
+               panel.add(spin,"growx");
+               
+               panel.add(new UnitSelector(m),"growx");
+               panel.add(new BasicSlider(m.getSliderModel(-FinSet.MAX_CANT,FinSet.MAX_CANT)),
+                               "w 100lp, wrap");
+               
+
+               
                ////  Root chord
                panel.add(new JLabel("Root chord:"));
                
index 6f568194268ba1653ea1f223d939bb8f5b94b322..427868359d760f30708f8838d0631f4896480329 100644 (file)
@@ -13,6 +13,7 @@ import java.awt.event.ActionListener;
 import java.awt.event.MouseEvent;
 import java.awt.event.MouseListener;
 import java.awt.geom.Ellipse2D;
+import java.util.Arrays;
 import java.util.List;
 
 import javax.swing.BorderFactory;
@@ -21,6 +22,7 @@ import javax.swing.JComponent;
 import javax.swing.JLabel;
 import javax.swing.JPanel;
 import javax.swing.JSpinner;
+import javax.swing.SwingUtilities;
 import javax.swing.border.BevelBorder;
 import javax.swing.event.ChangeEvent;
 import javax.swing.event.ChangeListener;
@@ -37,6 +39,7 @@ import net.sf.openrocket.rocketcomponent.InnerTube;
 import net.sf.openrocket.rocketcomponent.MotorMount;
 import net.sf.openrocket.rocketcomponent.RocketComponent;
 import net.sf.openrocket.unit.UnitGroup;
+import net.sf.openrocket.util.Coordinate;
 
 
 public class InnerTubeConfig extends ThicknessRingComponentConfig {
@@ -96,7 +99,8 @@ public class InnerTubeConfig extends ThicknessRingComponentConfig {
                l = new JLabel("Rotation:");
                l.setToolTipText("Rotation angle of the cluster configuration");
                subPanel.add(l);
-               dm  = new DoubleModel(component,"ClusterRotation",1,UnitGroup.UNITS_ANGLE,0);
+               dm  = new DoubleModel(component,"ClusterRotation",1,UnitGroup.UNITS_ANGLE,
+                               -Math.PI,Math.PI);
 
                spin = new JSpinner(dm.getSpinnerModel());
                spin.setEditor(new SpinnerEditor(spin));
@@ -106,10 +110,57 @@ public class InnerTubeConfig extends ThicknessRingComponentConfig {
                subPanel.add(new UnitSelector(dm),"growx");
                bs = new BasicSlider(dm.getSliderModel(-Math.PI, 0, Math.PI));
                bs.setToolTipText("Rotation angle of the cluster configuration");
-               subPanel.add(bs,"w 100lp, wrap");
+               subPanel.add(bs,"w 100lp, wrap para");
 
+               
+               
+               // Split button
+               JButton split = new JButton("Split cluster");
+               split.setToolTipText("<html>Split the cluster into separate components.<br>" +
+                               "This also duplicates all components attached to this inner tube.");
+               split.addActionListener(new ActionListener() {
+                       @Override
+                       public void actionPerformed(ActionEvent e) {
+                               // Do change in future for overall safety
+                               SwingUtilities.invokeLater(new Runnable() {
+                                       @Override
+                                       public void run() {
+                                               RocketComponent parent = component.getParent();
+                                               int index = parent.getChildPosition(component);
+                                               if (index < 0) {
+                                                       throw new IllegalStateException("component="+component+
+                                                                       " parent="+parent+" parent.children=" + 
+                                                                       Arrays.toString(parent.getChildren()));
+                                               }
+
+                                               InnerTube tube = (InnerTube)component;
+                                               if (tube.getClusterCount() <= 1)
+                                                       return;
+
+                                               ComponentConfigDialog.addUndoPosition("Split cluster");
+
+                                               Coordinate[] coords = { Coordinate.NUL };
+                                               coords = component.shiftCoordinates(coords);
+                                               parent.removeChild(index);
+                                               for (int i=0; i<coords.length; i++) {
+                                                       InnerTube copy = (InnerTube)component.copy();
+                                                       copy.setClusterConfiguration(ClusterConfiguration.SINGLE);
+                                                       copy.setClusterRotation(0.0);
+                                                       copy.setClusterScale(1.0);
+                                                       copy.setRadialShift(coords[i].y, coords[i].z);
+                                                       copy.setName(copy.getName() + " #" + (i+1));
+                                                       
+                                                       parent.addChild(copy, index+i);
+                                               }
+                                       }
+                               });
+                       }
+               });
+               subPanel.add(split, "spanx, split 2, gapright para, sizegroup buttons, right");
+               
+               
                // Reset button
-               JButton reset = new JButton("Reset");
+               JButton reset = new JButton("Reset settings");
                reset.setToolTipText("Reset the separation and rotation to the default values");
                reset.addActionListener(new ActionListener() {
                        @Override
@@ -118,7 +169,7 @@ public class InnerTubeConfig extends ThicknessRingComponentConfig {
                                ((InnerTube)component).setClusterRotation(0.0);
                        }
                });
-               subPanel.add(reset,"spanx,right");
+               subPanel.add(reset,"sizegroup buttons, right");
                
                panel.add(subPanel,"grow");
                
index cf81eaab0e282d8cdf82fb0b8377b73451e91d72..7e0afef34d869ca5fb363149eac3420e88e0e321 100644 (file)
@@ -24,7 +24,7 @@ import net.sf.openrocket.gui.adaptors.EnumModel;
 import net.sf.openrocket.gui.adaptors.MotorConfigurationModel;
 import net.sf.openrocket.gui.components.BasicSlider;
 import net.sf.openrocket.gui.components.UnitSelector;
-import net.sf.openrocket.gui.main.MotorChooserDialog;
+import net.sf.openrocket.gui.dialogs.MotorChooserDialog;
 import net.sf.openrocket.rocketcomponent.Configuration;
 import net.sf.openrocket.rocketcomponent.Motor;
 import net.sf.openrocket.rocketcomponent.MotorMount;
diff --git a/src/net/sf/openrocket/gui/dialogs/AboutDialog.java b/src/net/sf/openrocket/gui/dialogs/AboutDialog.java
new file mode 100644 (file)
index 0000000..3cc99f5
--- /dev/null
@@ -0,0 +1,56 @@
+package net.sf.openrocket.gui.dialogs;
+
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+
+import javax.swing.JButton;
+import javax.swing.JDialog;
+import javax.swing.JFrame;
+import javax.swing.JPanel;
+
+import net.miginfocom.swing.MigLayout;
+import net.sf.openrocket.gui.components.ResizeLabel;
+import net.sf.openrocket.gui.components.URLLabel;
+import net.sf.openrocket.util.GUIUtil;
+import net.sf.openrocket.util.Prefs;
+
+public class AboutDialog extends JDialog {
+       
+       public static final String OPENROCKET_URL = "http://openrocket.sourceforge.net/";
+       
+
+       public AboutDialog(JFrame parent) {
+               super(parent, true);
+               
+               final String version = Prefs.getVersion();
+               
+               JPanel panel = new JPanel(new MigLayout("fill"));
+               
+               panel.add(new ResizeLabel("OpenRocket", 20), "ax 50%, wrap para");
+               panel.add(new ResizeLabel("Version " + version, 3), "ax 50%, wrap 30lp");
+               
+               panel.add(new ResizeLabel("Copyright \u00A9 2007-2009 Sampo Niskanen"), "ax 50%, wrap para");
+               
+               panel.add(new URLLabel(OPENROCKET_URL), "ax 50%, wrap para");
+               
+
+               JButton close = new JButton("Close");
+               close.addActionListener(new ActionListener() {
+                       @Override
+                       public void actionPerformed(ActionEvent e) {
+                               AboutDialog.this.dispose();
+                       }
+               });
+               panel.add(close, "right");
+               
+               this.add(panel);
+               this.setTitle("OpenRocket " + version);
+               this.pack();
+               this.setResizable(false);
+               this.setLocationRelativeTo(parent);
+               GUIUtil.setDefaultButton(close);
+               GUIUtil.installEscapeCloseOperation(this);
+       }
+       
+       
+}
diff --git a/src/net/sf/openrocket/gui/dialogs/BugDialog.java b/src/net/sf/openrocket/gui/dialogs/BugDialog.java
deleted file mode 100644 (file)
index 729bb67..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
-package net.sf.openrocket.gui.dialogs;
-
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.util.SortedSet;
-import java.util.TreeSet;
-
-import javax.swing.JButton;
-import javax.swing.JDialog;
-import javax.swing.JFrame;
-import javax.swing.JLabel;
-import javax.swing.JPanel;
-import javax.swing.JScrollPane;
-import javax.swing.JTextArea;
-
-import net.miginfocom.swing.MigLayout;
-import net.sf.openrocket.gui.components.URLLabel;
-import net.sf.openrocket.gui.main.AboutDialog;
-import net.sf.openrocket.util.GUIUtil;
-import net.sf.openrocket.util.JarUtil;
-import net.sf.openrocket.util.Prefs;
-
-public class BugDialog extends JDialog {
-
-       public BugDialog(JFrame parent) {
-               super(parent, "Bug reporing", true);
-               
-               JPanel panel = new JPanel(new MigLayout("fill"));
-               
-               panel.add(new JLabel("Please report any bugs you encounter as instructed at "), 
-                               "gap para, split 2");
-               panel.add(new URLLabel(AboutDialog.OPENROCKET_URL), "wrap rel");
-               panel.add(new JLabel("This allows us to make OpenRocket an even better simulator."),
-                               "gap para, wrap para");
-               
-               panel.add(new JLabel("<html><em>Please copy and paste the following information " +
-                               "to the end of your bug report:</em>"), "gap para, wrap");
-               
-               
-               StringBuilder sb = new StringBuilder();
-               sb.append('\n');
-               sb.append("---------- Included system information ----------\n");
-               sb.append("OpenRocket version: " + Prefs.getVersion() + "\n");
-               sb.append("OpenRocket source: " + Prefs.getBuildSource() + "\n");
-               sb.append("OpenRocket location: " + JarUtil.getCurrentJarFile() + "\n");
-               sb.append("System properties:\n");
-
-               // Sort the keys
-               SortedSet<String> keys = new TreeSet<String>();
-               for (Object key: System.getProperties().keySet()) {
-                       keys.add((String)key);
-               }
-               
-               for (String key: keys) {
-                       String value = System.getProperty(key);
-                       sb.append("  " + key + "=");
-                       if (key.equals("line.separator")) {
-                               for (char c: value.toCharArray()) {
-                                       sb.append(String.format("\\u%04x", (int)c));
-                               }
-                       } else {
-                               sb.append(value);
-                       }
-                       sb.append('\n');
-               }
-               
-               sb.append("---------- End system information ----------\n");
-               sb.append('\n');
-
-               JTextArea text = new JTextArea(sb.toString(), 15, 70);
-               text.setEditable(false);
-               panel.add(new JScrollPane(text), "grow, wrap para");
-               
-               JButton close = new JButton("Close");
-               close.addActionListener(new ActionListener() {
-                       @Override
-                       public void actionPerformed(ActionEvent e) {
-                               BugDialog.this.dispose();
-                       }
-               });
-               panel.add(close, "right");
-
-               this.add(panel);
-               
-               this.pack();
-               this.setLocationRelativeTo(parent);
-               GUIUtil.installEscapeCloseOperation(this);
-               GUIUtil.setDefaultButton(close);
-       }
-
-}
diff --git a/src/net/sf/openrocket/gui/dialogs/BugReportDialog.java b/src/net/sf/openrocket/gui/dialogs/BugReportDialog.java
new file mode 100644 (file)
index 0000000..4045e22
--- /dev/null
@@ -0,0 +1,370 @@
+package net.sf.openrocket.gui.dialogs;
+
+import java.awt.Desktop;
+import java.awt.Dialog;
+import java.awt.Dimension;
+import java.awt.Window;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.io.IOException;
+import java.io.OutputStreamWriter;
+import java.io.PrintWriter;
+import java.io.StringWriter;
+import java.io.UnsupportedEncodingException;
+import java.net.HttpURLConnection;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.net.URL;
+import java.net.URLEncoder;
+import java.util.SortedSet;
+import java.util.TreeSet;
+
+import javax.swing.JButton;
+import javax.swing.JDialog;
+import javax.swing.JLabel;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.JTextArea;
+
+import net.miginfocom.swing.MigLayout;
+import net.sf.openrocket.gui.components.ResizeLabel;
+import net.sf.openrocket.gui.components.SelectableLabel;
+import net.sf.openrocket.util.GUIUtil;
+import net.sf.openrocket.util.JarUtil;
+import net.sf.openrocket.util.Prefs;
+
+public class BugReportDialog extends JDialog {
+       
+       private static final String REPORT_EMAIL = "openrocket-bugs@lists.sourceforge.net";
+       
+       private static final String REPORT_URL = 
+               "http://openrocket.sourceforge.net/actions/reportbug";
+
+       private static final String REPORT_VERSION_PARAM = "version";
+       private static final String REPORT_PARAM = "content";
+       private static final int REPORT_RESPONSE_CODE = HttpURLConnection.HTTP_CREATED;
+       private static final int REPORT_TIMEOUT = 10000;  // in milliseconds
+       
+
+       public BugReportDialog(Window parent, String labelText, String message) {
+               super(parent, "Bug report", Dialog.ModalityType.APPLICATION_MODAL);
+               
+               JPanel panel = new JPanel(new MigLayout("fill"));
+               
+               // Some fscking Swing bug that makes html labels initially way too high
+               JLabel label = new JLabel(labelText);
+               Dimension d = label.getPreferredSize();
+               d.width = 100000;
+               label.setMaximumSize(d);
+               panel.add(label, "gapleft para, wrap para");
+
+               label = new JLabel("<html>If connected to the Internet, you can simply click " +
+               "<em>Send bug report</em>.");
+               d = label.getPreferredSize();
+               d.width = 100000;
+               label.setMaximumSize(d);
+               panel.add(label, "gapleft para, wrap");
+               
+               panel.add(new JLabel("Otherwise, send the text below to the address: "), 
+                               "gapleft para, split 2, gapright rel");
+               panel.add(new SelectableLabel(REPORT_EMAIL), "growx, wrap para");
+               
+
+               final JTextArea textArea = new JTextArea(message, 20, 70);
+               textArea.setEditable(true);
+               panel.add(new JScrollPane(textArea), "grow, wrap");
+               
+               
+               panel.add(new ResizeLabel("The information above may be included in a public " +
+                               "bug report.  Make sure it does not contain any sensitive information you " +
+                               "do not want to be made public.", -1), "wrap para");
+               
+               
+               
+               ////  Close button
+               JButton close = new JButton("Close");
+               close.addActionListener(new ActionListener() {
+                       @Override
+                       public void actionPerformed(ActionEvent e) {
+                               BugReportDialog.this.dispose();
+                       }
+               });
+               panel.add(close, "right, sizegroup buttons, split");
+               
+               
+               ////  Mail button
+//             if (Desktop.isDesktopSupported() && Desktop.getDesktop().isSupported(Action.MAIL)) {
+//                     JButton mail = new JButton("Open email");
+//                     mail.setToolTipText("Open email client with the suitable email ready.");
+//                     mail.addActionListener(new ActionListener() {
+//                             @Override
+//                             public void actionPerformed(ActionEvent e) {
+//                                     String text = textArea.getText();
+//                                     openEmail(text);
+//                             }
+//                     });
+//                     panel.add(mail, "right, sizegroup buttons");
+//             }
+               
+               
+               ////  Send button
+               JButton send = new JButton("Send bug report");
+               send.setToolTipText("Automatically send the bug report to the OpenRocket developers.");
+               send.addActionListener(new ActionListener() {
+                       @Override
+                       public void actionPerformed(ActionEvent e) {
+                               String text = textArea.getText();
+                               try {
+                                       
+                                       sendReport(text);
+                                       // Success if we came here
+                                       JOptionPane.showMessageDialog(BugReportDialog.this,
+                                                       new Object[] { "Bug report successfully sent.",
+                                                       "Thank you for helping make OpenRocket better!" },
+                                                       "Bug report sent", JOptionPane.INFORMATION_MESSAGE);
+                                       
+                               } catch (Exception ex) {
+                                       // Sending the message failed.
+                                       JOptionPane.showMessageDialog(BugReportDialog.this,
+                                                       new Object[] { "OpenRocket was unable to send the bug report:",
+                                                       ex.getClass().getSimpleName() + ": " + ex.getMessage(), " ",
+                                                       "Please send the report manually to " + REPORT_EMAIL },
+                                                       "Error sending report", JOptionPane.ERROR_MESSAGE);
+                               }
+                       }
+               });
+               panel.add(send, "right, sizegroup buttons");
+               
+               this.add(panel);
+               
+               this.validate();
+               this.pack();
+               this.pack();
+               this.setLocationRelativeTo(parent);
+               GUIUtil.installEscapeCloseOperation(this);
+//             GUIUtil.setDefaultButton(close);
+       }
+
+       
+       
+       /**
+        * Show a general bug report dialog allowing the user to input information about
+        * the bug they encountered.
+        * 
+        * @param parent        the parent window (may be null).
+        */
+       public static void showBugReportDialog(Window parent) {
+
+               StringBuilder sb = new StringBuilder();
+               
+               sb.append("---------- Bug report ----------\n");
+               sb.append('\n');
+               sb.append("Include detailed steps on how to trigger the bug:\n");
+               sb.append('\n');
+               sb.append("1. \n");
+               sb.append("2. \n");
+               sb.append("3. \n");
+               sb.append('\n');
+               
+               sb.append("What does the software do and what in your opinion should it do in the " +
+                               "case described above:\n");
+               sb.append('\n');
+               sb.append('\n');
+               sb.append('\n');
+               
+               sb.append("Include your email address (optional; it helps if we can " +
+               "contact you in case we need additional information):\n");
+               sb.append('\n');
+               sb.append('\n');
+               sb.append('\n');
+               
+
+               sb.append("(Do not modify anything below this line.)\n");
+               sb.append("---------- System information ----------\n");
+               addSystemInformation(sb);
+               sb.append("---------- End of information ----------\n");
+               sb.append('\n');
+               
+               BugReportDialog reportDialog = 
+                       new BugReportDialog(parent,
+                                       "<html>You can report a bug in OpenRocket by filling in and submitting " +
+                                       "the form below.<br>" +
+                                       "You can also report bugs and include attachments on the project " +
+                                       "web site.", sb.toString());
+               reportDialog.setVisible(true);
+       }
+       
+       
+       /**
+        * Show a dialog presented when an uncaught exception occurs.
+        * 
+        * @param parent        the parent window (may be null).
+        * @param t                     the thread that encountered the exception (may be null).
+        * @param e                     the exception.
+        */
+       public static void showExceptionDialog(Window parent, Thread t, Throwable e) {
+
+               StringBuilder sb = new StringBuilder();
+               
+               sb.append("---------- Bug report ----------\n");
+               sb.append('\n');
+               sb.append("Please include a description about what actions you were " +
+                               "performing when the exception occurred:\n");
+               sb.append('\n');
+               sb.append('\n');
+               sb.append('\n');
+               sb.append('\n');
+               
+
+               sb.append("Include your email address (optional; it helps if we can " +
+                               "contact you in case we need additional information):\n");
+               sb.append('\n');
+               sb.append('\n');
+               sb.append('\n');
+               sb.append('\n');
+
+               sb.append("(Do not modify anything below this line.)\n");
+               sb.append("---------- Exception stack trace ----------\n");
+               StringWriter sw = new StringWriter();
+               PrintWriter pw = new PrintWriter(sw);
+               e.printStackTrace(pw);
+               sb.append(sw.getBuffer());
+               sb.append('\n');
+               
+               
+               sb.append("---------- Thread information ----------\n");
+               if (t == null) {
+                       sb.append("Thread is not specified.");
+               } else {
+                       sb.append(t + "\n");
+               }
+               sb.append('\n');
+               
+               
+               sb.append("---------- System information ----------\n");
+               addSystemInformation(sb);
+               sb.append("---------- End of information ----------\n");
+               sb.append('\n');
+               
+               BugReportDialog reportDialog = 
+                       new BugReportDialog(parent, "Please include a short description about " +
+                                       "what you were doing when the exception occurred.", sb.toString());
+               reportDialog.setVisible(true);
+       }
+       
+       
+       private static void addSystemInformation(StringBuilder sb) {
+               sb.append("OpenRocket version: " + Prefs.getVersion() + "\n");
+               sb.append("OpenRocket source: " + Prefs.getBuildSource() + "\n");
+               sb.append("OpenRocket location: " + JarUtil.getCurrentJarFile() + "\n");
+               sb.append("System properties:\n");
+
+               // Sort the keys
+               SortedSet<String> keys = new TreeSet<String>();
+               for (Object key: System.getProperties().keySet()) {
+                       keys.add((String)key);
+               }
+               
+               for (String key: keys) {
+                       String value = System.getProperty(key);
+                       sb.append("  " + key + "=");
+                       if (key.equals("line.separator")) {
+                               for (char c: value.toCharArray()) {
+                                       sb.append(String.format("\\u%04x", (int)c));
+                               }
+                       } else {
+                               sb.append(value);
+                       }
+                       sb.append('\n');
+               }
+       }
+       
+       
+       
+       /**
+        * Send the provided report to the OpenRocket bug report URL.  If the connection
+        * fails or the server does not respond with the correct response code, an
+        * exception is thrown.
+        * 
+        * @param report                the report to send.
+        * @throws IOException  if an error occurs while connecting to the server or
+        *                                              the server responds with a wrong response code.
+        */
+       private void sendReport(String report) throws IOException {
+               URL url = new URL(REPORT_URL);
+               
+               HttpURLConnection connection = (HttpURLConnection) url.openConnection();
+               
+               connection.setConnectTimeout(REPORT_TIMEOUT);
+               connection.setInstanceFollowRedirects(true);
+               connection.setRequestMethod("POST");
+               connection.setUseCaches(false);
+               
+               String post;
+               post = (REPORT_VERSION_PARAM + "=" + URLEncoder.encode(Prefs.getVersion(), "UTF-8")
+                               + "&" + REPORT_PARAM + "=" + URLEncoder.encode(report, "UTF-8"));
+               
+               OutputStreamWriter wr = null;
+               try {
+                       // Send post information
+                       connection.setDoOutput(true);
+                       wr = new OutputStreamWriter(connection.getOutputStream(), "UTF-8");
+                       wr.write(post);
+                       wr.flush();
+                       
+                       if (connection.getResponseCode() != REPORT_RESPONSE_CODE) {
+                               throw new IOException("Server responded with code " + 
+                                               connection.getResponseCode() + ", expecting " + REPORT_RESPONSE_CODE);
+                       }
+               } finally {
+                       if (wr != null)
+                               wr.close();
+                       connection.disconnect();
+               }
+       }
+       
+
+       /**
+        * Open the default email client with the suitable bug report.
+        * Note that this does not work on some systems even if Desktop.isSupported()
+        * claims so.
+        * 
+        * @param text  the bug report text.
+        * @return              whether opening the client succeeded.
+        */
+       private boolean openEmail(String text) {
+               String version;
+               
+               try {
+                       text = URLEncoder.encode(text, "UTF-8");
+                       version = URLEncoder.encode(Prefs.getVersion(), "UTF-8");
+               } catch (UnsupportedEncodingException e) {
+                       throw new RuntimeException(e);
+               }
+               
+               
+               
+               String mailto = "mailto:" + REPORT_EMAIL
+                       + "?subject=Bug%20report%20for%20OpenRocket%20" + version 
+                       + "?body=" + text;
+               URI uri;
+               try {
+                       uri = new URI(mailto);
+               } catch (URISyntaxException e) {
+                       e.printStackTrace();
+                       return false;
+               }
+               
+               Desktop desktop = Desktop.getDesktop();
+               try {
+                       desktop.mail(uri);
+               } catch (IOException e) {
+                       e.printStackTrace();
+                       return false;
+               }
+               
+               return true;
+       }
+       
+}
index 3c900f256af0a7ca21b3b1e2f533077c295021b3..a5a184aeb2138b0c0c03cf0ef774a0e10f2252d6 100644 (file)
@@ -412,6 +412,7 @@ public class ComponentAnalysisDialog extends JDialog implements ChangeListener {
                panel.add(button,"span, split, tag cancel");
                
 
+               this.setLocationByPlatform(true);
                setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
                GUIUtil.installEscapeCloseOperation(this);
                pack();
index f70fc320e13b3ddf4f3bbcfe83b3b7308c4e4189..bb80d92b629caeef20ad3ac70a8b42bd0e462cfa 100644 (file)
@@ -27,7 +27,6 @@ import javax.swing.table.TableColumnModel;
 import net.miginfocom.swing.MigLayout;
 import net.sf.openrocket.document.OpenRocketDocument;
 import net.sf.openrocket.gui.main.BasicFrame;
-import net.sf.openrocket.gui.main.MotorChooserDialog;
 import net.sf.openrocket.rocketcomponent.Motor;
 import net.sf.openrocket.rocketcomponent.MotorMount;
 import net.sf.openrocket.rocketcomponent.Rocket;
@@ -250,6 +249,7 @@ public class EditMotorConfigurationDialog extends JDialog {
                
                GUIUtil.installEscapeCloseOperation(this);
                GUIUtil.setDefaultButton(close);
+               this.setLocationByPlatform(true);
                
                // Undo description
                final OpenRocketDocument document = BasicFrame.findDocument(rocket);
@@ -312,7 +312,8 @@ public class EditMotorConfigurationDialog extends JDialog {
                        return;
                
                MotorChooserDialog dialog = new MotorChooserDialog(currentMount.getMotor(currentID),
-                               currentMount.getMotorDelay(currentID), currentMount.getMotorMountDiameter());
+                               currentMount.getMotorDelay(currentID), currentMount.getMotorMountDiameter(),
+                               this);
                dialog.setVisible(true);
                Motor m = dialog.getSelectedMotor();
                double d = dialog.getSelectedDelay();
index bc718d6d883758dcfff33cd870c3e6152795d794..92144db77766d0e9a66cc44d175ee0c43006e522 100644 (file)
@@ -71,7 +71,7 @@ public class LicenseDialog extends JDialog {
                this.add(panel);
                this.setTitle("OpenRocket license");
                this.pack();
-               this.setLocationByPlatform(true);
+               this.setLocationRelativeTo(parent);
                GUIUtil.setDefaultButton(close);
                GUIUtil.installEscapeCloseOperation(this);
        }
diff --git a/src/net/sf/openrocket/gui/dialogs/MotorChooserDialog.java b/src/net/sf/openrocket/gui/dialogs/MotorChooserDialog.java
new file mode 100644 (file)
index 0000000..3a5a154
--- /dev/null
@@ -0,0 +1,699 @@
+package net.sf.openrocket.gui.dialogs;
+
+
+import java.awt.Dialog;
+import java.awt.Font;
+import java.awt.Rectangle;
+import java.awt.Window;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
+import java.text.Collator;
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.Locale;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import javax.swing.DefaultComboBoxModel;
+import javax.swing.JButton;
+import javax.swing.JComboBox;
+import javax.swing.JDialog;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.JTable;
+import javax.swing.JTextField;
+import javax.swing.ListSelectionModel;
+import javax.swing.RowFilter;
+import javax.swing.event.DocumentEvent;
+import javax.swing.event.DocumentListener;
+import javax.swing.event.ListSelectionEvent;
+import javax.swing.event.ListSelectionListener;
+import javax.swing.table.AbstractTableModel;
+import javax.swing.table.TableModel;
+import javax.swing.table.TableRowSorter;
+
+import net.miginfocom.swing.MigLayout;
+import net.sf.openrocket.database.Databases;
+import net.sf.openrocket.gui.components.ResizeLabel;
+import net.sf.openrocket.rocketcomponent.Motor;
+import net.sf.openrocket.unit.UnitGroup;
+import net.sf.openrocket.util.GUIUtil;
+import net.sf.openrocket.util.Prefs;
+
+public class MotorChooserDialog extends JDialog {
+       
+       private static final int SHOW_ALL = 0;
+       private static final int SHOW_SMALLER = 1;
+       private static final int SHOW_EXACT = 2;
+       private static final String[] SHOW_DESCRIPTIONS = {
+               "Show all motors",
+               "Show motors with diameter less than that of the motor mount",
+               "Show motors with diameter equal to that of the motor mount"
+       };
+       private static final int SHOW_MAX = 2;
+
+       private final JTextField searchField; 
+       private String[] searchTerms = new String[0];
+
+       private final double diameter;
+
+       private Motor selectedMotor = null;
+       private double selectedDelay = 0;
+
+       private JTable table;
+       private TableRowSorter<TableModel> sorter;
+       private JComboBox delayBox;
+       private MotorDatabaseModel model;
+       
+       private boolean okClicked = false;
+
+       
+       public MotorChooserDialog(double diameter) {
+               this(null,5,diameter,null);
+       }
+       
+       public MotorChooserDialog(Motor current, double delay, double diameter) {
+               this(current,delay,diameter,null);
+       }
+       
+       public MotorChooserDialog(Motor current, double delay, double diameter, Window owner) {
+               super(owner, "Select a rocket motor", Dialog.ModalityType.APPLICATION_MODAL);
+               
+               JButton button;
+
+               this.selectedMotor = current;
+               this.selectedDelay = delay;
+               this.diameter = diameter;
+               
+               JPanel panel = new JPanel(new MigLayout("fill", "[grow][]"));
+
+               // Label
+               JLabel label = new JLabel("Select a rocket motor:");
+               label.setFont(label.getFont().deriveFont(Font.BOLD));
+               panel.add(label,"growx");
+               
+               label = new JLabel("Motor mount diameter: " +
+                               UnitGroup.UNITS_MOTOR_DIMENSIONS.getDefaultUnit().toStringUnit(diameter));
+               panel.add(label,"gapleft para, wrap paragraph");
+               
+               
+               // Diameter selection
+               JComboBox combo = new JComboBox(SHOW_DESCRIPTIONS);
+               combo.addActionListener(new ActionListener() {
+                       @Override
+                       public void actionPerformed(ActionEvent e) {
+                               JComboBox cb = (JComboBox) e.getSource();
+                               int sel = cb.getSelectedIndex();
+                               if ((sel < 0) || (sel > SHOW_MAX))
+                                       sel = SHOW_ALL;
+                               switch (sel) {
+                               case SHOW_ALL:
+                                       sorter.setRowFilter(new MotorRowFilterAll());
+                                       break;
+                                       
+                               case SHOW_SMALLER:
+                                       sorter.setRowFilter(new MotorRowFilterSmaller());
+                                       break;
+                                       
+                               case SHOW_EXACT:
+                                       sorter.setRowFilter(new MotorRowFilterExact());
+                                       break;
+                                       
+                               default:
+                                       assert(false) : "Should not occur.";    
+                               }
+                               Prefs.putChoise("MotorDiameterMatch", sel);
+                               setSelectionVisible();
+                       }
+               });
+               panel.add(combo,"growx 1000");
+
+               
+               
+               label = new JLabel("Search:");
+               panel.add(label, "gapleft para, split 2");
+               
+               searchField = new JTextField();
+               searchField.getDocument().addDocumentListener(new DocumentListener() {
+                       @Override
+                       public void changedUpdate(DocumentEvent e) {
+                               update();
+                       }
+                       @Override
+                       public void insertUpdate(DocumentEvent e) {
+                               update();
+                       }
+                       @Override
+                       public void removeUpdate(DocumentEvent e) {
+                               update();
+                       }
+                       
+                       private void update() {
+                               String text = searchField.getText().trim();
+                               String[] split = text.split("\\s+");
+                               ArrayList<String> list = new ArrayList<String>();
+                               for (String s: split) {
+                                       s = s.trim().toLowerCase();
+                                       if (s.length() > 0) {
+                                               list.add(s);
+                                       }
+                               }
+                               searchTerms = list.toArray(new String[0]);
+                               sorter.sort();
+                       }
+               });
+               panel.add(searchField, "growx 1, wrap");
+               
+               
+               
+               // Table, overridden to show meaningful tooltip texts
+               model = new MotorDatabaseModel(current);
+               table = new JTable(model) {
+                       @Override
+                       public String getToolTipText(MouseEvent e) {
+                       java.awt.Point p = e.getPoint();
+                       int colIndex = columnAtPoint(p);
+                       int viewRow = rowAtPoint(p);
+                       if (viewRow < 0)
+                               return null;
+                       int rowIndex = convertRowIndexToModel(viewRow);
+                       Motor motor = model.getMotor(rowIndex);
+
+                       if (colIndex < 0 || colIndex >= MotorColumns.values().length)
+                               return null;
+
+                       return MotorColumns.values()[colIndex].getToolTipText(motor);
+                       }
+               };
+               
+               // Set comparators and widths
+               table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
+               sorter = new TableRowSorter<TableModel>(model);
+               for (int i=0; i < MotorColumns.values().length; i++) {
+                       MotorColumns column = MotorColumns.values()[i];
+                       sorter.setComparator(i, column.getComparator());
+                       table.getColumnModel().getColumn(i).setPreferredWidth(column.getWidth());
+               }
+               table.setRowSorter(sorter);
+
+               // Set selection and double-click listeners
+               table.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
+                       @Override
+                       public void valueChanged(ListSelectionEvent e) {
+                               int row = table.getSelectedRow();
+                               if (row >= 0) {
+                                       row = table.convertRowIndexToModel(row);
+                                       Motor m = model.getMotor(row);
+                                       if (!m.equals(selectedMotor)) {
+                                               selectedMotor = model.getMotor(row);
+                                               setDelays(true);  // Reset delay times
+                                       }
+                               }
+                       }
+               });
+               table.addMouseListener(new MouseAdapter() {
+                       @Override
+                       public void mouseClicked(MouseEvent e) {
+                               if (e.getButton() == MouseEvent.BUTTON1 && e.getClickCount() == 2) {
+                                       okClicked = true;
+                                       MotorChooserDialog.this.setVisible(false);
+                               }
+                       }
+               });
+               // (Current selection and scrolling performed later)
+               
+               JScrollPane scrollpane = new JScrollPane();
+               scrollpane.setViewportView(table);
+               panel.add(scrollpane,"spanx, grow, width :700:, height :300:, wrap paragraph");
+               
+               
+               // Ejection delay
+               panel.add(new JLabel("Select ejection charge delay:"), "spanx, split 3, gap rel");
+               
+               delayBox = new JComboBox();
+               delayBox.setEditable(true);
+               delayBox.addActionListener(new ActionListener() {
+                       @Override
+                       public void actionPerformed(ActionEvent e) {
+                               JComboBox cb = (JComboBox) e.getSource();
+                               String sel = (String)cb.getSelectedItem();
+                               if (sel.equalsIgnoreCase("None")) {
+                                       selectedDelay = Motor.PLUGGED;
+                               } else {
+                                       try {
+                                               selectedDelay = Double.parseDouble(sel);
+                                       } catch (NumberFormatException ignore) { }
+                               }
+                               setDelays(false);
+                       }
+               });
+               panel.add(delayBox,"gapright unrel");
+               panel.add(new ResizeLabel("(Number of seconds or \"None\")", -1), "wrap para");
+               setDelays(false);
+               
+               
+               JButton okButton = new JButton("OK");
+               okButton.addActionListener(new ActionListener() {
+                       @Override
+                       public void actionPerformed(ActionEvent e) {
+                               okClicked = true;
+                               MotorChooserDialog.this.setVisible(false);
+                       }
+               });
+               panel.add(okButton,"spanx, split, tag ok");
+
+               button = new JButton("Cancel");
+               button.addActionListener(new ActionListener() {
+                       @Override
+                       public void actionPerformed(ActionEvent e) {
+                               MotorChooserDialog.this.setVisible(false);
+                       }
+               });
+               panel.add(button,"tag cancel");
+
+                               
+               // Sets the filter:
+               int showMode = Prefs.getChoise("MotorDiameterMatch", SHOW_MAX, SHOW_EXACT);
+               combo.setSelectedIndex(showMode);
+               
+               
+               this.add(panel);
+               this.pack();
+//             this.setAlwaysOnTop(true);
+
+               GUIUtil.setDefaultButton(okButton);
+               GUIUtil.installEscapeCloseOperation(this);
+               this.setLocationByPlatform(true);
+               
+               // Table can be scrolled only after pack() has been called
+               setSelectionVisible();
+               
+               // Focus the search field
+               searchField.grabFocus();
+       }
+       
+       private void setSelectionVisible() {
+               if (selectedMotor != null) {
+                       int index = table.convertRowIndexToView(model.getIndex(selectedMotor));
+                       table.getSelectionModel().setSelectionInterval(index, index);
+                       Rectangle rect = table.getCellRect(index, 0, true);
+                       rect = new Rectangle(rect.x,rect.y-100,rect.width,rect.height+200);
+                       table.scrollRectToVisible(rect);
+               }
+       }
+       
+       
+       /**
+        * Set the values in the delay combo box.  If <code>reset</code> is <code>true</code>
+        * then sets the selected value as the value closest to selectedDelay, otherwise
+        * leaves selection alone.
+        */
+       private void setDelays(boolean reset) {
+               if (selectedMotor == null) {
+                       
+                       delayBox.setModel(new DefaultComboBoxModel(new String[] { "None" }));
+                       delayBox.setSelectedIndex(0);
+                       
+               } else {
+                       
+                       double[] delays = selectedMotor.getStandardDelays();
+                       String[] delayStrings = new String[delays.length];
+                       double currentDelay = selectedDelay;  // Store current setting locally
+                       
+                       for (int i=0; i < delays.length; i++) {
+                               delayStrings[i] = Motor.getDelayString(delays[i], "None");
+                       }
+                       delayBox.setModel(new DefaultComboBoxModel(delayStrings));
+                       
+                       if (reset) {
+
+                               // Find and set the closest value
+                               double closest = Double.NaN;
+                               for (int i=0; i < delays.length; i++) {
+                                       // if-condition to always become true for NaN
+                                       if (!(Math.abs(delays[i] - currentDelay) > 
+                                                 Math.abs(closest - currentDelay))) {
+                                               closest = delays[i];
+                                       }
+                               }
+                               if (!Double.isNaN(closest)) {
+                                       selectedDelay = closest;
+                                       delayBox.setSelectedItem(Motor.getDelayString(closest, "None"));
+                               } else {
+                                       delayBox.setSelectedItem("None");
+                               }
+
+                       } else {
+                               
+                               selectedDelay = currentDelay;
+                               delayBox.setSelectedItem(Motor.getDelayString(currentDelay, "None"));
+                               
+                       }
+                       
+               }
+       }
+
+       
+       
+       public Motor getSelectedMotor() {
+               if (!okClicked)
+                       return null;
+               return selectedMotor;
+       }
+       
+       
+       public double getSelectedDelay() {
+               return selectedDelay;
+       }
+       
+
+       
+       
+       ////////////////  JTable elements  ////////////////
+       
+       
+       /**
+        * Enum defining the table columns.
+        */
+       private enum MotorColumns {
+               MANUFACTURER("Manufacturer",100) {
+                       @Override
+                       public String getValue(Motor m) {
+                               return m.getManufacturer();
+                       }
+//                     @Override
+//                     public String getToolTipText(Motor m) {
+//                             return "<html>" + m.getDescription().replace((CharSequence)"\n", "<br>");
+//                     }
+                       @Override
+                       public Comparator<?> getComparator() {
+                               return Collator.getInstance();
+                       }
+               },
+               DESIGNATION("Designation") {
+                       @Override
+                       public String getValue(Motor m) {
+                               return m.getDesignation();
+                       }
+//                     @Override
+//                     public String getToolTipText(Motor m) {
+//                             return "<html>" + m.getDescription().replace((CharSequence)"\n", "<br>");
+//                     }
+                       @Override
+                       public Comparator<?> getComparator() {
+                               return Motor.getDesignationComparator();
+                       }
+               },
+               TYPE("Type") {
+                       @Override
+                       public String getValue(Motor m) {
+                               return m.getMotorType().getName();
+                       }
+//                     @Override
+//                     public String getToolTipText(Motor m) {
+//                             return m.getMotorType().getDescription();
+//                     }
+                       @Override
+                       public Comparator<?> getComparator() {
+                               return Collator.getInstance();
+                       }
+               },
+               DIAMETER("Diameter") {
+                       @Override
+                       public String getValue(Motor m) {
+                               return UnitGroup.UNITS_MOTOR_DIMENSIONS.getDefaultUnit().toStringUnit(
+                                               m.getDiameter());
+                       }
+                       @Override
+                       public Comparator<?> getComparator() {
+                               return getNumericalComparator();
+                       }
+               },
+               LENGTH("Length") {
+                       @Override
+                       public String getValue(Motor m) {
+                               return UnitGroup.UNITS_MOTOR_DIMENSIONS.getDefaultUnit().toStringUnit(
+                                               m.getLength());
+                       }
+                       @Override
+                       public Comparator<?> getComparator() {
+                               return getNumericalComparator();
+                       }
+               },
+               IMPULSE("Impulse") {
+                       @Override
+                       public String getValue(Motor m) {
+                               return UnitGroup.UNITS_IMPULSE.getDefaultUnit().toStringUnit(
+                                               m.getTotalImpulse());
+                       }
+                       @Override
+                       public Comparator<?> getComparator() {
+                               return getNumericalComparator();
+                       }
+               },
+               TIME("Burn time") {
+                       @Override
+                       public String getValue(Motor m) {
+                               return UnitGroup.UNITS_SHORT_TIME.getDefaultUnit().toStringUnit(
+                                               m.getAverageTime());
+                       }
+                       @Override
+                       public Comparator<?> getComparator() {
+                               return getNumericalComparator();
+                       }
+               };
+               
+               
+               private final String title;
+               private final int width;
+               
+               MotorColumns(String title) {
+                       this(title, 50);
+               }
+               
+               MotorColumns(String title, int width) {
+                       this.title = title;
+                       this.width = width;
+               }
+               
+               
+               public abstract String getValue(Motor m);
+               public abstract Comparator<?> getComparator();
+
+               public String getTitle() {
+                       return title;
+               }
+               
+               public int getWidth() {
+                       return width;
+               }
+               
+               public String getToolTipText(Motor m) {
+                       String tip = "<html>";
+                       tip += "<b>" + m.toString() + "</b>";
+                       tip += " (" + m.getMotorType().getDescription() + ")<br><hr>";
+                       
+                       String desc = m.getDescription().trim();
+                       if (desc.length() > 0) {
+                               tip += "<i>" + desc.replace("\n", "<br>") + "</i><br><hr>";
+                       }
+                       
+                       tip += ("Diameter: " + 
+                                       UnitGroup.UNITS_MOTOR_DIMENSIONS.getDefaultUnit().toStringUnit(m.getDiameter()) +
+                                       "<br>");
+                       tip += ("Length: " + 
+                                       UnitGroup.UNITS_MOTOR_DIMENSIONS.getDefaultUnit().toStringUnit(m.getLength()) +
+                                       "<br>");
+                       tip += ("Maximum thrust: " + 
+                                       UnitGroup.UNITS_FORCE.getDefaultUnit().toStringUnit(m.getMaxThrust()) +
+                                       "<br>");
+                       tip += ("Average thrust: " + 
+                                       UnitGroup.UNITS_FORCE.getDefaultUnit().toStringUnit(m.getAverageThrust()) +
+                                       "<br>");
+                       tip += ("Burn time: " + 
+                                       UnitGroup.UNITS_SHORT_TIME.getDefaultUnit()
+                                       .toStringUnit(m.getAverageTime()) + "<br>");
+                       tip += ("Total impulse: " +
+                                       UnitGroup.UNITS_IMPULSE.getDefaultUnit()
+                                       .toStringUnit(m.getTotalImpulse()) + "<br>");
+                       tip += ("Launch mass: " + 
+                                       UnitGroup.UNITS_MASS.getDefaultUnit().toStringUnit(m.getMass(0)) +
+                                       "<br>");
+                       tip += ("Empty mass: " + 
+                                       UnitGroup.UNITS_MASS.getDefaultUnit()
+                                       .toStringUnit(m.getMass(Double.MAX_VALUE)));
+                       return tip;
+               }
+               
+       }
+       
+       
+       /**
+        * The JTable model.  Includes an extra motor, given in the constructor,
+        * if it is not already in the database.
+        */
+       private class MotorDatabaseModel extends AbstractTableModel {
+               private final Motor extra;
+               
+               public MotorDatabaseModel(Motor current) {
+                       if (Databases.MOTOR.contains(current))
+                               extra = null;
+                       else
+                               extra = current;
+               }
+               
+               @Override
+               public int getColumnCount() {
+                       return MotorColumns.values().length;
+               }
+
+               @Override
+               public int getRowCount() {
+                       if (extra == null)
+                               return Databases.MOTOR.size();
+                       else
+                               return Databases.MOTOR.size()+1;
+               }
+
+               @Override
+               public Object getValueAt(int rowIndex, int columnIndex) {
+                       MotorColumns column = getColumn(columnIndex);
+                       if (extra == null) {
+                               return column.getValue(Databases.MOTOR.get(rowIndex));
+                       } else {
+                               if (rowIndex == 0)
+                                       return column.getValue(extra);
+                               else
+                                       return column.getValue(Databases.MOTOR.get(rowIndex - 1));
+                       }
+               }
+               
+               @Override
+               public String getColumnName(int columnIndex) {
+                       return getColumn(columnIndex).getTitle();
+               }
+               
+               
+               public Motor getMotor(int rowIndex) {
+                       if (extra == null) {
+                               return Databases.MOTOR.get(rowIndex);
+                       } else {
+                               if (rowIndex == 0)
+                                       return extra;
+                               else
+                                       return Databases.MOTOR.get(rowIndex-1);
+                       }
+               }
+               
+               public int getIndex(Motor m) {
+                       if (extra == null) {
+                               return Databases.MOTOR.indexOf(m);
+                       } else {
+                               if (extra.equals(m))
+                                       return 0;
+                               else
+                                       return Databases.MOTOR.indexOf(m)+1;
+                       }
+               }
+               
+               private MotorColumns getColumn(int index) {
+                       return MotorColumns.values()[index];
+               }
+       }
+
+       
+       ////////  Row filters
+       
+       /**
+        * Abstract adapter class.
+        */
+       private abstract class MotorRowFilter extends RowFilter<TableModel,Integer> {
+               @Override
+               public boolean include(RowFilter.Entry<? extends TableModel, ? extends Integer> entry) {
+                       int index = entry.getIdentifier();
+                       Motor m = model.getMotor(index);
+                       return filterByDiameter(m) && filterByString(m);
+               }
+               
+               public abstract boolean filterByDiameter(Motor m);
+               
+               
+               public boolean filterByString(Motor m) {
+                       main: for (String s : searchTerms) {
+                               for (MotorColumns col : MotorColumns.values()) {
+                                       String str = col.getValue(m).toLowerCase();
+                                       if (str.indexOf(s) >= 0)
+                                               continue main;
+                               }
+                               return false;
+                       }
+                       return true;
+               }
+       }
+       
+       /**
+        * Show all motors.
+        */
+       private class MotorRowFilterAll extends MotorRowFilter {
+               @Override
+               public boolean filterByDiameter(Motor m) {
+                       return true;
+               }
+       }
+       
+       /**
+        * Show motors smaller than the mount.
+        */
+       private class MotorRowFilterSmaller extends MotorRowFilter {
+               @Override
+               public boolean filterByDiameter(Motor m) {
+                       return (m.getDiameter() <= diameter + 0.0004);
+               }
+       }
+       
+       /**
+        * Show motors that fit the mount.
+        */
+       private class MotorRowFilterExact extends MotorRowFilter {
+               @Override
+               public boolean filterByDiameter(Motor m) {
+                       return ((m.getDiameter() <= diameter + 0.0004) &&
+                                       (m.getDiameter() >= diameter - 0.0015));
+               }
+       }
+       
+       
+       private static Comparator<String> numericalComparator = null;
+       private static Comparator<String> getNumericalComparator() {
+               if (numericalComparator == null)
+                       numericalComparator = new NumericalComparator();
+               return numericalComparator;
+       }
+       
+       private static class NumericalComparator implements Comparator<String> {
+               private Pattern pattern = 
+                       Pattern.compile("^\\s*([0-9]*[.,][0-9]+|[0-9]+[.,]?[0-9]*).*?$");
+               private Collator collator = null;
+               @Override
+               public int compare(String s1, String s2) {
+                       Matcher m1, m2;
+                       
+                       m1 = pattern.matcher(s1);
+                       m2 = pattern.matcher(s2);
+                       if (m1.find() && m2.find()) {
+                               double d1 = Double.parseDouble(m1.group(1));
+                               double d2 = Double.parseDouble(m2.group(1));
+                               
+                               return (int)((d1-d2)*1000);
+                       }
+                       
+                       if (collator == null)
+                               collator = Collator.getInstance(Locale.US);
+                       return collator.compare(s1, s2);
+               }
+       }
+       
+}
index cfb6f8826ea40abb7b8732a0e3433c6310df3f06..c06cbbc667c23266076801a7eece076046d7b3f8 100644 (file)
@@ -1,5 +1,7 @@
 package net.sf.openrocket.gui.dialogs;
 
+import java.awt.Dialog;
+import java.awt.Window;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
 import java.awt.event.WindowAdapter;
@@ -12,7 +14,6 @@ import javax.swing.ComboBoxModel;
 import javax.swing.JButton;
 import javax.swing.JComboBox;
 import javax.swing.JDialog;
-import javax.swing.JFrame;
 import javax.swing.JLabel;
 import javax.swing.JPanel;
 import javax.swing.JTabbedPane;
@@ -29,7 +30,7 @@ public class PreferencesDialog extends JDialog {
        private final List<DefaultUnitSelector> unitSelectors = new ArrayList<DefaultUnitSelector>();
 
        private PreferencesDialog() {
-               super((JFrame)null, "Preferences", true);
+               super((Window)null, "Preferences", Dialog.ModalityType.APPLICATION_MODAL);
                
                JPanel panel = new JPanel(new MigLayout("fill, gap unrel","[grow]","[grow][]"));
                                
diff --git a/src/net/sf/openrocket/gui/dialogs/WarningDialog.java b/src/net/sf/openrocket/gui/dialogs/WarningDialog.java
new file mode 100644 (file)
index 0000000..30ab240
--- /dev/null
@@ -0,0 +1,27 @@
+package net.sf.openrocket.gui.dialogs;
+
+import java.awt.Component;
+
+import javax.swing.JDialog;
+import javax.swing.JList;
+import javax.swing.JOptionPane;
+import javax.swing.JScrollPane;
+
+import net.sf.openrocket.aerodynamics.Warning;
+import net.sf.openrocket.aerodynamics.WarningSet;
+
+public class WarningDialog extends JDialog {
+
+       public static void showWarnings(Component parent, Object message, String title, 
+                       WarningSet warnings) {
+               
+               Warning[] w = warnings.toArray(new Warning[0]);
+               JList list = new JList(w);
+               JScrollPane pane = new JScrollPane(list);
+               
+               JOptionPane.showMessageDialog(parent, new Object[] { message, pane }, 
+                               title, JOptionPane.WARNING_MESSAGE);
+               
+       }
+       
+}
diff --git a/src/net/sf/openrocket/gui/main/AboutDialog.java b/src/net/sf/openrocket/gui/main/AboutDialog.java
deleted file mode 100644 (file)
index 52184f3..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-package net.sf.openrocket.gui.main;
-
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-
-import javax.swing.JButton;
-import javax.swing.JDialog;
-import javax.swing.JFrame;
-import javax.swing.JPanel;
-
-import net.miginfocom.swing.MigLayout;
-import net.sf.openrocket.gui.components.ResizeLabel;
-import net.sf.openrocket.gui.components.URLLabel;
-import net.sf.openrocket.util.GUIUtil;
-import net.sf.openrocket.util.Prefs;
-
-public class AboutDialog extends JDialog {
-       
-       public static final String OPENROCKET_URL = "http://openrocket.sourceforge.net/";
-       
-
-       public AboutDialog(JFrame parent) {
-               super(parent, true);
-               
-               final String version = Prefs.getVersion();
-               
-               JPanel panel = new JPanel(new MigLayout("fill"));
-               
-               panel.add(new ResizeLabel("OpenRocket", 20), "ax 50%, wrap para");
-               panel.add(new ResizeLabel("Version " + version, 3), "ax 50%, wrap 30lp");
-               
-               panel.add(new ResizeLabel("Copyright \u00A9 2007-2009 Sampo Niskanen"), "ax 50%, wrap para");
-               
-               panel.add(new URLLabel(OPENROCKET_URL), "ax 50%, wrap para");
-               
-
-               JButton close = new JButton("Close");
-               close.addActionListener(new ActionListener() {
-                       @Override
-                       public void actionPerformed(ActionEvent e) {
-                               AboutDialog.this.dispose();
-                       }
-               });
-               panel.add(close, "right");
-               
-               this.add(panel);
-               this.setTitle("OpenRocket " + version);
-               this.pack();
-               this.setResizable(false);
-               this.setLocationRelativeTo(null);
-               GUIUtil.setDefaultButton(close);
-               GUIUtil.installEscapeCloseOperation(this);
-       }
-       
-       
-}
index 7216484f50aa8623da7772894187e5e7a8933b97..5357b3290add757453d6fc4dd93ad400c6d08eb7 100644 (file)
@@ -25,7 +25,6 @@ import java.net.URISyntaxException;
 import java.net.URL;
 import java.net.URLDecoder;
 import java.util.ArrayList;
-import java.util.Iterator;
 import java.util.concurrent.ExecutionException;
 
 import javax.swing.Action;
@@ -59,7 +58,7 @@ import javax.swing.tree.TreePath;
 import javax.swing.tree.TreeSelectionModel;
 
 import net.miginfocom.swing.MigLayout;
-import net.sf.openrocket.aerodynamics.Warning;
+import net.sf.openrocket.aerodynamics.WarningSet;
 import net.sf.openrocket.document.OpenRocketDocument;
 import net.sf.openrocket.file.GeneralRocketLoader;
 import net.sf.openrocket.file.OpenRocketSaver;
@@ -68,18 +67,21 @@ import net.sf.openrocket.file.RocketLoader;
 import net.sf.openrocket.file.RocketSaver;
 import net.sf.openrocket.gui.StorageOptionChooser;
 import net.sf.openrocket.gui.configdialog.ComponentConfigDialog;
-import net.sf.openrocket.gui.dialogs.BugDialog;
+import net.sf.openrocket.gui.dialogs.AboutDialog;
+import net.sf.openrocket.gui.dialogs.BugReportDialog;
 import net.sf.openrocket.gui.dialogs.ComponentAnalysisDialog;
 import net.sf.openrocket.gui.dialogs.ExampleDesignDialog;
 import net.sf.openrocket.gui.dialogs.LicenseDialog;
 import net.sf.openrocket.gui.dialogs.PreferencesDialog;
 import net.sf.openrocket.gui.dialogs.SwingWorkerDialog;
+import net.sf.openrocket.gui.dialogs.WarningDialog;
 import net.sf.openrocket.gui.scalefigure.RocketPanel;
 import net.sf.openrocket.rocketcomponent.ComponentChangeEvent;
 import net.sf.openrocket.rocketcomponent.ComponentChangeListener;
 import net.sf.openrocket.rocketcomponent.Rocket;
 import net.sf.openrocket.rocketcomponent.RocketComponent;
 import net.sf.openrocket.rocketcomponent.Stage;
+import net.sf.openrocket.util.GUIUtil;
 import net.sf.openrocket.util.Icons;
 import net.sf.openrocket.util.OpenFileWorker;
 import net.sf.openrocket.util.Prefs;
@@ -241,7 +243,9 @@ public class BasicFrame extends JFrame {
                        }
                });
                this.setLocationByPlatform(true);
-                               
+
+               GUIUtil.setWindowIcons(this);
+               
                this.validate();
                vertical.setDividerLocation(0.4);
                setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
@@ -551,6 +555,13 @@ public class BasicFrame extends JFrame {
                menu.add(item);
                
                
+               ////  Debug
+               // (shown if openrocket.debug.menu is defined)
+               if (System.getProperty("openrocket.debug.menu") != null) {
+                       menubar.add(makeDebugMenu());
+               }
+
+               
                
                ////  Help
                
@@ -575,7 +586,8 @@ public class BasicFrame extends JFrame {
                                "bugs in OpenRocket");
                item.addActionListener(new ActionListener() {
                        public void actionPerformed(ActionEvent e) {
-                               new BugDialog(BasicFrame.this).setVisible(true);
+//                             new BugDialog(BasicFrame.this).setVisible(true);
+                               BugReportDialog.showBugReportDialog(BasicFrame.this);
                        }
                });
                menu.add(item);
@@ -594,6 +606,73 @@ public class BasicFrame extends JFrame {
        }
        
        
+       private JMenu makeDebugMenu() {
+               JMenu menu;
+               JMenuItem item;
+               
+               ////  Debug menu
+               menu = new JMenu("Debug");
+               menu.getAccessibleContext().setAccessibleDescription("OpenRocket debugging tasks");
+               
+               item = new JMenuItem("What is this menu?");
+               item.addActionListener(new ActionListener() {
+                       public void actionPerformed(ActionEvent e) {
+                               JOptionPane.showMessageDialog(BasicFrame.this,
+                                               new Object[] {
+                                               "The 'Debug' menu includes actions for testing and debugging " +
+                                               "OpenRocket.", " ",
+                                               "The menu is made visible by defining the system property " +
+                                               "'openrocket.debug.menu' when starting OpenRocket.",
+                                               "It should not be visible by default." },
+                                               "Debug menu", JOptionPane.INFORMATION_MESSAGE);
+                       }
+               });
+               menu.add(item);
+               
+               menu.addSeparator();
+               
+               item = new JMenuItem("Exception here");
+               item.addActionListener(new ActionListener() {
+                       public void actionPerformed(ActionEvent e) {
+                               throw new RuntimeException("Testing exception from menu action listener");
+                       }
+               });
+               menu.add(item);
+               
+               item = new JMenuItem("Exception from EDT");
+               item.addActionListener(new ActionListener() {
+                       public void actionPerformed(ActionEvent e) {
+                               SwingUtilities.invokeLater(new Runnable() {
+                                       @Override
+                                       public void run() {
+                                               throw new RuntimeException("Testing exception from " +
+                                                               "later invoked EDT thread");
+                                       }
+                               });
+                       }
+               });
+               menu.add(item);
+               
+               item = new JMenuItem("Exception from other thread");
+               item.addActionListener(new ActionListener() {
+                       public void actionPerformed(ActionEvent e) {
+                               new Thread() {
+                                       @Override
+                                       public void run() {
+                                               throw new RuntimeException("Testing exception from " +
+                                                               "newly created thread");
+                                       }
+                               }.start();
+                       }
+               });
+               menu.add(item);
+               
+               
+               
+               return menu;
+       }
+       
+       
        
        /**
         * Select the tab on the main pane.
@@ -683,7 +762,7 @@ public class BasicFrame extends JFrame {
         * @return                      whether the file was successfully loaded and opened.
         */
        private static boolean open(InputStream stream, String filename, Window parent) {
-               OpenFileWorker worker = new OpenFileWorker(stream);
+               OpenFileWorker worker = new OpenFileWorker(stream, ROCKET_LOADER);
                return open(worker, filename, null, parent);
        }
        
@@ -697,7 +776,7 @@ public class BasicFrame extends JFrame {
         * @return                      whether the file was successfully loaded and opened.
         */
        private static boolean open(File file, Window parent) {
-               OpenFileWorker worker = new OpenFileWorker(file);
+               OpenFileWorker worker = new OpenFileWorker(file, ROCKET_LOADER);
                return open(worker, file.getName(), file, parent);
        }
        
@@ -764,12 +843,16 @@ public class BasicFrame extends JFrame {
                
                
            // Show warnings
-           Iterator<Warning> warns = ROCKET_LOADER.getWarnings().iterator();
-           System.out.println("Warnings:");
-           while (warns.hasNext()) {
-               System.out.println("  "+warns.next());
-               // TODO: HIGH: dialog
-           }
+               WarningSet warnings = worker.getRocketLoader().getWarnings();
+               if (!warnings.isEmpty()) {
+                       WarningDialog.showWarnings(parent,
+                                       new Object[] {
+                                       "The following problems were encountered while opening " + filename + ".",
+                                       "Some design features may not have been loaded correctly."
+                                       },
+                                       "Warnings while opening file", warnings);
+               }
+               
            
            // Set document state
            doc.setFile(file);
@@ -1016,7 +1099,7 @@ public class BasicFrame extends JFrame {
        
        public static void main(final String[] args) {
                
-               // Run the actual startup method in the EDT since it can use dialogs etc. 
+               // Run the actual startup method in the EDT since it can use progress dialogs etc.
                try {
                        SwingUtilities.invokeAndWait(new Runnable() {
                                @Override
@@ -1077,10 +1160,32 @@ public class BasicFrame extends JFrame {
                ToolTipManager.sharedInstance().setDismissDelay(30000);
                
                
+               // Setup the uncaught exception handler
+               ExceptionHandler.registerExceptionHandler();
+               
+               
                // Load defaults
                Prefs.loadDefaultUnits();
 
                
+               // Starting action
+               if (!handleCommandLine(args)) {
+                       newAction();
+               }
+       }
+       
+       
+       /**
+        * Handles arguments passed from the command line.  This may be used either
+        * when starting the first instance of OpenRocket or later when OpenRocket is
+        * executed again while running.
+        * 
+        * @param args  the command-line arguments.
+        * @return              whether a new frame was opened or similar user desired action was
+        *                              performed as a result.
+        */
+       public static boolean handleCommandLine(String[] args) {
+               
                // Check command-line for files
                boolean opened = false;
                for (String file: args) {
@@ -1088,10 +1193,7 @@ public class BasicFrame extends JFrame {
                                opened = true;
                        }
                }
-               
-               if (!opened) {
-                       newAction();
-               }
+               return opened;
        }
 
 }
index 8b4c034b549e8ed58928d8372f767ab62b37edbf..41646663cf873c7e59d1800e98d8627769190e2e 100644 (file)
@@ -9,7 +9,7 @@ import java.awt.Graphics2D;
 import javax.swing.Icon;
 import javax.swing.JTree;
 
-import net.sf.openrocket.rocketcomponent.*;
+import net.sf.openrocket.rocketcomponent.RocketComponent;
 
 
 public class ComponentTree extends JTree {
@@ -18,8 +18,7 @@ public class ComponentTree extends JTree {
        public ComponentTree(RocketComponent root) {
                super();
                this.setModel(new ComponentTreeModel(root,this));
-//             this.setModel(new BareComponentTreeModel(root,this));
-               setToggleClickCount(0);
+               this.setToggleClickCount(0);
                
                javax.swing.plaf.basic.BasicTreeUI ui = new javax.swing.plaf.basic.BasicTreeUI();
                this.setUI(ui);
diff --git a/src/net/sf/openrocket/gui/main/ExceptionHandler.java b/src/net/sf/openrocket/gui/main/ExceptionHandler.java
new file mode 100644 (file)
index 0000000..93474b1
--- /dev/null
@@ -0,0 +1,166 @@
+package net.sf.openrocket.gui.main;
+
+import javax.swing.JOptionPane;
+import javax.swing.SwingUtilities;
+
+import net.sf.openrocket.gui.dialogs.BugReportDialog;
+
+
+public class ExceptionHandler implements Thread.UncaughtExceptionHandler {
+
+       private static final int MEMORY_RESERVE = 512*1024;
+       
+       /**
+        * A memory reserve of 0.5 MB of memory, that can be freed when showing the dialog.
+        */
+       private static volatile byte[] memoryReserve = null;
+       
+       private static ExceptionHandler instance = null;
+       
+       
+       private volatile boolean handling = false;
+       
+       
+       
+       
+       @Override
+       public void uncaughtException(final Thread t, final Throwable e) {
+               
+               // Free memory reserve if out of memory
+               if (e instanceof OutOfMemoryError) {
+                       memoryReserve = null;
+                       handling = false;
+               }
+
+               try {
+                       
+                       if (handling) {
+                               System.err.println("Exception is currently being handled, " +
+                                               "dumping exception instead:");
+                               e.printStackTrace();
+                               return;
+                       }
+                       
+                       handling = true;
+                       
+                       // Show on the EDT
+                       if (SwingUtilities.isEventDispatchThread()) {
+                               showDialog(t, e);
+                       } else {
+                   SwingUtilities.invokeAndWait(new Runnable() {
+                       public void run() {
+                           showDialog(t, e);
+                       }
+                   });
+                       }
+                       
+               } catch (Throwable ex) {
+                       
+                       // Make sure the handler does not throw any exceptions
+                       try {
+                               System.err.println("Exception in exception handler, dumping exception:");
+                               ex.printStackTrace();
+                       } catch (Throwable ignore) { }
+                       
+               } finally {
+                       // Mark handling as completed
+                       handling = false;
+               }
+               
+       }
+
+       
+       /**
+        * The actual handling routine.
+        * 
+        * @param t             the thread that caused the exception, or <code>null</code>.
+        * @param e             the exception.
+        */
+       private void showDialog(Thread t, Throwable e) {
+               
+               // Out of memory
+               if (e instanceof OutOfMemoryError) {
+                       JOptionPane.showMessageDialog(null, 
+                                       new Object[] { 
+                                               "Out of memory!",
+                                               "<html>You should immediately close unnecessary design windows,<br>" +
+                                               "save any unsaved designs and restart OpenRocket!"
+                                       }, "Out of memory", JOptionPane.ERROR_MESSAGE);
+                       return;
+               }
+               
+               // Unknown Error
+               if (!(e instanceof Exception)) {
+                       JOptionPane.showMessageDialog(null, 
+                                       new Object[] { 
+                                               "An unknown Java error occurred:",
+                                               e.getMessage(),
+                                               "<html>You should immediately close unnecessary design windows,<br>" +
+                                               "save any unsaved designs and restart OpenRocket!"
+                                       }, "Unknown Java error", JOptionPane.ERROR_MESSAGE);
+                       return;
+               }
+               
+               
+               // Normal exception, show question dialog
+               
+               int selection = JOptionPane.showOptionDialog(null, new Object[] {
+                               "OpenRocket encountered an uncaught exception.  This typically signifies " +
+                               "a bug in the software.", " ",
+                               "Please take a moment to report this bug to the developers.",
+                               "This can be done automatically if you have an Internet connection."
+                               }, "Uncaught exception", JOptionPane.DEFAULT_OPTION, 
+                               JOptionPane.ERROR_MESSAGE, null, 
+                               new Object[] { "View bug report", "Close" }, "View bug report");
+               
+               if (selection != 0) {
+                       // User cancelled
+                       return;
+               }
+               
+               // Show bug report dialog
+               BugReportDialog.showExceptionDialog(null, t, e);
+
+       }
+       
+       
+       
+       /**
+        * Registers the uncaught exception handler.  This should be used to ensure that
+        * all necessary registrations are performed.
+        */
+       public static void registerExceptionHandler() {
+               
+               if (instance == null) {
+                       instance = new ExceptionHandler();
+                       Thread.setDefaultUncaughtExceptionHandler(instance);
+                       
+                       // Handler for modal dialogs of Sun's Java implementation
+                       // See bug ID 4499199.
+                       System.setProperty("sun.awt.exception.handler", AwtHandler.class.getName());
+                       
+                       reserveMemory();
+               }
+               
+       }
+       
+       
+       private static void reserveMemory() {
+               memoryReserve = new byte[MEMORY_RESERVE];
+               for (int i=0; i<MEMORY_RESERVE; i++) {
+                       memoryReserve[i] = (byte)i;
+               }
+       }
+
+       
+       /**
+        * Handler used in modal dialogs by Sun Java implementation.
+        */
+       public static class AwtHandler {
+               public void handle(Throwable t) {
+                       if (instance != null) {
+                               instance.uncaughtException(Thread.currentThread(), t);
+                       }
+               }
+       }
+}
diff --git a/src/net/sf/openrocket/gui/main/MotorChooserDialog.java b/src/net/sf/openrocket/gui/main/MotorChooserDialog.java
deleted file mode 100644 (file)
index 63c8535..0000000
+++ /dev/null
@@ -1,697 +0,0 @@
-package net.sf.openrocket.gui.main;
-
-
-import java.awt.Font;
-import java.awt.Frame;
-import java.awt.Rectangle;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.awt.event.MouseAdapter;
-import java.awt.event.MouseEvent;
-import java.text.Collator;
-import java.util.ArrayList;
-import java.util.Comparator;
-import java.util.Locale;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import javax.swing.DefaultComboBoxModel;
-import javax.swing.JButton;
-import javax.swing.JComboBox;
-import javax.swing.JDialog;
-import javax.swing.JLabel;
-import javax.swing.JPanel;
-import javax.swing.JScrollPane;
-import javax.swing.JTable;
-import javax.swing.JTextField;
-import javax.swing.ListSelectionModel;
-import javax.swing.RowFilter;
-import javax.swing.event.DocumentEvent;
-import javax.swing.event.DocumentListener;
-import javax.swing.event.ListSelectionEvent;
-import javax.swing.event.ListSelectionListener;
-import javax.swing.table.AbstractTableModel;
-import javax.swing.table.TableModel;
-import javax.swing.table.TableRowSorter;
-
-import net.miginfocom.swing.MigLayout;
-import net.sf.openrocket.database.Databases;
-import net.sf.openrocket.gui.components.ResizeLabel;
-import net.sf.openrocket.rocketcomponent.Motor;
-import net.sf.openrocket.unit.UnitGroup;
-import net.sf.openrocket.util.GUIUtil;
-import net.sf.openrocket.util.Prefs;
-
-public class MotorChooserDialog extends JDialog {
-       
-       private static final int SHOW_ALL = 0;
-       private static final int SHOW_SMALLER = 1;
-       private static final int SHOW_EXACT = 2;
-       private static final String[] SHOW_DESCRIPTIONS = {
-               "Show all motors",
-               "Show motors with diameter less than that of the motor mount",
-               "Show motors with diameter equal to that of the motor mount"
-       };
-       private static final int SHOW_MAX = 2;
-
-       private final JTextField searchField; 
-       private String[] searchTerms = new String[0];
-
-       private final double diameter;
-
-       private Motor selectedMotor = null;
-       private double selectedDelay = 0;
-
-       private JTable table;
-       private TableRowSorter<TableModel> sorter;
-       private JComboBox delayBox;
-       private MotorDatabaseModel model;
-       
-       private boolean okClicked = false;
-
-       
-       public MotorChooserDialog(double diameter) {
-               this(null,5,diameter,null);
-       }
-       
-       public MotorChooserDialog(Motor current, double delay, double diameter) {
-               this(current,delay,diameter,null);
-       }
-       
-       public MotorChooserDialog(Motor current, double delay, double diameter, Frame owner) {
-               super(owner, "Select a rocket motor", true);
-               
-               JButton button;
-
-               this.selectedMotor = current;
-               this.selectedDelay = delay;
-               this.diameter = diameter;
-               
-               JPanel panel = new JPanel(new MigLayout("fill", "[grow][]"));
-
-               // Label
-               JLabel label = new JLabel("Select a rocket motor:");
-               label.setFont(label.getFont().deriveFont(Font.BOLD));
-               panel.add(label,"growx");
-               
-               label = new JLabel("Motor mount diameter: " +
-                               UnitGroup.UNITS_MOTOR_DIMENSIONS.getDefaultUnit().toStringUnit(diameter));
-               panel.add(label,"gapleft para, wrap paragraph");
-               
-               
-               // Diameter selection
-               JComboBox combo = new JComboBox(SHOW_DESCRIPTIONS);
-               combo.addActionListener(new ActionListener() {
-                       @Override
-                       public void actionPerformed(ActionEvent e) {
-                               JComboBox cb = (JComboBox) e.getSource();
-                               int sel = cb.getSelectedIndex();
-                               if ((sel < 0) || (sel > SHOW_MAX))
-                                       sel = SHOW_ALL;
-                               switch (sel) {
-                               case SHOW_ALL:
-                                       sorter.setRowFilter(new MotorRowFilterAll());
-                                       break;
-                                       
-                               case SHOW_SMALLER:
-                                       sorter.setRowFilter(new MotorRowFilterSmaller());
-                                       break;
-                                       
-                               case SHOW_EXACT:
-                                       sorter.setRowFilter(new MotorRowFilterExact());
-                                       break;
-                                       
-                               default:
-                                       assert(false) : "Should not occur.";    
-                               }
-                               Prefs.putChoise("MotorDiameterMatch", sel);
-                               setSelectionVisible();
-                       }
-               });
-               panel.add(combo,"growx 1000");
-
-               
-               
-               label = new JLabel("Search:");
-               panel.add(label, "gapleft para, split 2");
-               
-               searchField = new JTextField();
-               searchField.getDocument().addDocumentListener(new DocumentListener() {
-                       @Override
-                       public void changedUpdate(DocumentEvent e) {
-                               update();
-                       }
-                       @Override
-                       public void insertUpdate(DocumentEvent e) {
-                               update();
-                       }
-                       @Override
-                       public void removeUpdate(DocumentEvent e) {
-                               update();
-                       }
-                       
-                       private void update() {
-                               String text = searchField.getText().trim();
-                               String[] split = text.split("\\s+");
-                               ArrayList<String> list = new ArrayList<String>();
-                               for (String s: split) {
-                                       s = s.trim().toLowerCase();
-                                       if (s.length() > 0) {
-                                               list.add(s);
-                                       }
-                               }
-                               searchTerms = list.toArray(new String[0]);
-                               sorter.sort();
-                       }
-               });
-               panel.add(searchField, "growx 1, wrap");
-               
-               
-               
-               // Table, overridden to show meaningful tooltip texts
-               model = new MotorDatabaseModel(current);
-               table = new JTable(model) {
-                       @Override
-                       public String getToolTipText(MouseEvent e) {
-                       java.awt.Point p = e.getPoint();
-                       int colIndex = columnAtPoint(p);
-                       int viewRow = rowAtPoint(p);
-                       if (viewRow < 0)
-                               return null;
-                       int rowIndex = convertRowIndexToModel(viewRow);
-                       Motor motor = model.getMotor(rowIndex);
-
-                       if (colIndex < 0 || colIndex >= MotorColumns.values().length)
-                               return null;
-
-                       return MotorColumns.values()[colIndex].getToolTipText(motor);
-                       }
-               };
-               
-               // Set comparators and widths
-               table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
-               sorter = new TableRowSorter<TableModel>(model);
-               for (int i=0; i < MotorColumns.values().length; i++) {
-                       MotorColumns column = MotorColumns.values()[i];
-                       sorter.setComparator(i, column.getComparator());
-                       table.getColumnModel().getColumn(i).setPreferredWidth(column.getWidth());
-               }
-               table.setRowSorter(sorter);
-
-               // Set selection and double-click listeners
-               table.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
-                       @Override
-                       public void valueChanged(ListSelectionEvent e) {
-                               int row = table.getSelectedRow();
-                               if (row >= 0) {
-                                       row = table.convertRowIndexToModel(row);
-                                       Motor m = model.getMotor(row);
-                                       if (!m.equals(selectedMotor)) {
-                                               selectedMotor = model.getMotor(row);
-                                               setDelays(true);  // Reset delay times
-                                       }
-                               }
-                       }
-               });
-               table.addMouseListener(new MouseAdapter() {
-                       @Override
-                       public void mouseClicked(MouseEvent e) {
-                               if (e.getButton() == MouseEvent.BUTTON1 && e.getClickCount() == 2) {
-                                       okClicked = true;
-                                       MotorChooserDialog.this.setVisible(false);
-                               }
-                       }
-               });
-               // (Current selection and scrolling performed later)
-               
-               JScrollPane scrollpane = new JScrollPane();
-               scrollpane.setViewportView(table);
-               panel.add(scrollpane,"spanx, grow, width :700:, height :300:, wrap paragraph");
-               
-               
-               // Ejection delay
-               panel.add(new JLabel("Select ejection charge delay:"), "spanx, split 3, gap rel");
-               
-               delayBox = new JComboBox();
-               delayBox.setEditable(true);
-               delayBox.addActionListener(new ActionListener() {
-                       @Override
-                       public void actionPerformed(ActionEvent e) {
-                               JComboBox cb = (JComboBox) e.getSource();
-                               String sel = (String)cb.getSelectedItem();
-                               if (sel.equalsIgnoreCase("None")) {
-                                       selectedDelay = Motor.PLUGGED;
-                               } else {
-                                       try {
-                                               selectedDelay = Double.parseDouble(sel);
-                                       } catch (NumberFormatException ignore) { }
-                               }
-                               setDelays(false);
-                       }
-               });
-               panel.add(delayBox,"gapright unrel");
-               panel.add(new ResizeLabel("(Number of seconds or \"None\")", -1), "wrap para");
-               setDelays(false);
-               
-               
-               JButton okButton = new JButton("OK");
-               okButton.addActionListener(new ActionListener() {
-                       @Override
-                       public void actionPerformed(ActionEvent e) {
-                               okClicked = true;
-                               MotorChooserDialog.this.setVisible(false);
-                       }
-               });
-               panel.add(okButton,"spanx, split, tag ok");
-
-               button = new JButton("Cancel");
-               button.addActionListener(new ActionListener() {
-                       @Override
-                       public void actionPerformed(ActionEvent e) {
-                               MotorChooserDialog.this.setVisible(false);
-                       }
-               });
-               panel.add(button,"tag cancel");
-
-                               
-               // Sets the filter:
-               int showMode = Prefs.getChoise("MotorDiameterMatch", SHOW_MAX, SHOW_EXACT);
-               combo.setSelectedIndex(showMode);
-               
-               
-               this.add(panel);
-               this.pack();
-//             this.setAlwaysOnTop(true);
-
-               GUIUtil.setDefaultButton(okButton);
-               GUIUtil.installEscapeCloseOperation(this);
-               
-               // Table can be scrolled only after pack() has been called
-               setSelectionVisible();
-               
-               // Focus the search field
-               searchField.grabFocus();
-       }
-       
-       private void setSelectionVisible() {
-               if (selectedMotor != null) {
-                       int index = table.convertRowIndexToView(model.getIndex(selectedMotor));
-                       table.getSelectionModel().setSelectionInterval(index, index);
-                       Rectangle rect = table.getCellRect(index, 0, true);
-                       rect = new Rectangle(rect.x,rect.y-100,rect.width,rect.height+200);
-                       table.scrollRectToVisible(rect);
-               }
-       }
-       
-       
-       /**
-        * Set the values in the delay combo box.  If <code>reset</code> is <code>true</code>
-        * then sets the selected value as the value closest to selectedDelay, otherwise
-        * leaves selection alone.
-        */
-       private void setDelays(boolean reset) {
-               if (selectedMotor == null) {
-                       
-                       delayBox.setModel(new DefaultComboBoxModel(new String[] { "None" }));
-                       delayBox.setSelectedIndex(0);
-                       
-               } else {
-                       
-                       double[] delays = selectedMotor.getStandardDelays();
-                       String[] delayStrings = new String[delays.length];
-                       double currentDelay = selectedDelay;  // Store current setting locally
-                       
-                       for (int i=0; i < delays.length; i++) {
-                               delayStrings[i] = Motor.getDelayString(delays[i], "None");
-                       }
-                       delayBox.setModel(new DefaultComboBoxModel(delayStrings));
-                       
-                       if (reset) {
-
-                               // Find and set the closest value
-                               double closest = Double.NaN;
-                               for (int i=0; i < delays.length; i++) {
-                                       // if-condition to always become true for NaN
-                                       if (!(Math.abs(delays[i] - currentDelay) > 
-                                                 Math.abs(closest - currentDelay))) {
-                                               closest = delays[i];
-                                       }
-                               }
-                               if (!Double.isNaN(closest)) {
-                                       selectedDelay = closest;
-                                       delayBox.setSelectedItem(Motor.getDelayString(closest, "None"));
-                               } else {
-                                       delayBox.setSelectedItem("None");
-                               }
-
-                       } else {
-                               
-                               selectedDelay = currentDelay;
-                               delayBox.setSelectedItem(Motor.getDelayString(currentDelay, "None"));
-                               
-                       }
-                       
-               }
-       }
-
-       
-       
-       public Motor getSelectedMotor() {
-               if (!okClicked)
-                       return null;
-               return selectedMotor;
-       }
-       
-       
-       public double getSelectedDelay() {
-               return selectedDelay;
-       }
-       
-
-       
-       
-       ////////////////  JTable elements  ////////////////
-       
-       
-       /**
-        * Enum defining the table columns.
-        */
-       private enum MotorColumns {
-               MANUFACTURER("Manufacturer",100) {
-                       @Override
-                       public String getValue(Motor m) {
-                               return m.getManufacturer();
-                       }
-//                     @Override
-//                     public String getToolTipText(Motor m) {
-//                             return "<html>" + m.getDescription().replace((CharSequence)"\n", "<br>");
-//                     }
-                       @Override
-                       public Comparator<?> getComparator() {
-                               return Collator.getInstance();
-                       }
-               },
-               DESIGNATION("Designation") {
-                       @Override
-                       public String getValue(Motor m) {
-                               return m.getDesignation();
-                       }
-//                     @Override
-//                     public String getToolTipText(Motor m) {
-//                             return "<html>" + m.getDescription().replace((CharSequence)"\n", "<br>");
-//                     }
-                       @Override
-                       public Comparator<?> getComparator() {
-                               return Motor.getDesignationComparator();
-                       }
-               },
-               TYPE("Type") {
-                       @Override
-                       public String getValue(Motor m) {
-                               return m.getMotorType().getName();
-                       }
-//                     @Override
-//                     public String getToolTipText(Motor m) {
-//                             return m.getMotorType().getDescription();
-//                     }
-                       @Override
-                       public Comparator<?> getComparator() {
-                               return Collator.getInstance();
-                       }
-               },
-               DIAMETER("Diameter") {
-                       @Override
-                       public String getValue(Motor m) {
-                               return UnitGroup.UNITS_MOTOR_DIMENSIONS.getDefaultUnit().toStringUnit(
-                                               m.getDiameter());
-                       }
-                       @Override
-                       public Comparator<?> getComparator() {
-                               return getNumericalComparator();
-                       }
-               },
-               LENGTH("Length") {
-                       @Override
-                       public String getValue(Motor m) {
-                               return UnitGroup.UNITS_MOTOR_DIMENSIONS.getDefaultUnit().toStringUnit(
-                                               m.getLength());
-                       }
-                       @Override
-                       public Comparator<?> getComparator() {
-                               return getNumericalComparator();
-                       }
-               },
-               IMPULSE("Impulse") {
-                       @Override
-                       public String getValue(Motor m) {
-                               return UnitGroup.UNITS_IMPULSE.getDefaultUnit().toStringUnit(
-                                               m.getTotalImpulse());
-                       }
-                       @Override
-                       public Comparator<?> getComparator() {
-                               return getNumericalComparator();
-                       }
-               },
-               TIME("Burn time") {
-                       @Override
-                       public String getValue(Motor m) {
-                               return UnitGroup.UNITS_SHORT_TIME.getDefaultUnit().toStringUnit(
-                                               m.getAverageTime());
-                       }
-                       @Override
-                       public Comparator<?> getComparator() {
-                               return getNumericalComparator();
-                       }
-               };
-               
-               
-               private final String title;
-               private final int width;
-               
-               MotorColumns(String title) {
-                       this(title, 50);
-               }
-               
-               MotorColumns(String title, int width) {
-                       this.title = title;
-                       this.width = width;
-               }
-               
-               
-               public abstract String getValue(Motor m);
-               public abstract Comparator<?> getComparator();
-
-               public String getTitle() {
-                       return title;
-               }
-               
-               public int getWidth() {
-                       return width;
-               }
-               
-               public String getToolTipText(Motor m) {
-                       String tip = "<html>";
-                       tip += "<b>" + m.toString() + "</b>";
-                       tip += " (" + m.getMotorType().getDescription() + ")<br><hr>";
-                       
-                       String desc = m.getDescription().trim();
-                       if (desc.length() > 0) {
-                               tip += "<i>" + desc.replace("\n", "<br>") + "</i><br><hr>";
-                       }
-                       
-                       tip += ("Diameter: " + 
-                                       UnitGroup.UNITS_MOTOR_DIMENSIONS.getDefaultUnit().toStringUnit(m.getDiameter()) +
-                                       "<br>");
-                       tip += ("Length: " + 
-                                       UnitGroup.UNITS_MOTOR_DIMENSIONS.getDefaultUnit().toStringUnit(m.getLength()) +
-                                       "<br>");
-                       tip += ("Maximum thrust: " + 
-                                       UnitGroup.UNITS_FORCE.getDefaultUnit().toStringUnit(m.getMaxThrust()) +
-                                       "<br>");
-                       tip += ("Average thrust: " + 
-                                       UnitGroup.UNITS_FORCE.getDefaultUnit().toStringUnit(m.getAverageThrust()) +
-                                       "<br>");
-                       tip += ("Burn time: " + 
-                                       UnitGroup.UNITS_SHORT_TIME.getDefaultUnit()
-                                       .toStringUnit(m.getAverageTime()) + "<br>");
-                       tip += ("Total impulse: " +
-                                       UnitGroup.UNITS_IMPULSE.getDefaultUnit()
-                                       .toStringUnit(m.getTotalImpulse()) + "<br>");
-                       tip += ("Launch mass: " + 
-                                       UnitGroup.UNITS_MASS.getDefaultUnit().toStringUnit(m.getMass(0)) +
-                                       "<br>");
-                       tip += ("Empty mass: " + 
-                                       UnitGroup.UNITS_MASS.getDefaultUnit()
-                                       .toStringUnit(m.getMass(Double.MAX_VALUE)));
-                       return tip;
-               }
-               
-       }
-       
-       
-       /**
-        * The JTable model.  Includes an extra motor, given in the constructor,
-        * if it is not already in the database.
-        */
-       private class MotorDatabaseModel extends AbstractTableModel {
-               private final Motor extra;
-               
-               public MotorDatabaseModel(Motor current) {
-                       if (Databases.MOTOR.contains(current))
-                               extra = null;
-                       else
-                               extra = current;
-               }
-               
-               @Override
-               public int getColumnCount() {
-                       return MotorColumns.values().length;
-               }
-
-               @Override
-               public int getRowCount() {
-                       if (extra == null)
-                               return Databases.MOTOR.size();
-                       else
-                               return Databases.MOTOR.size()+1;
-               }
-
-               @Override
-               public Object getValueAt(int rowIndex, int columnIndex) {
-                       MotorColumns column = getColumn(columnIndex);
-                       if (extra == null) {
-                               return column.getValue(Databases.MOTOR.get(rowIndex));
-                       } else {
-                               if (rowIndex == 0)
-                                       return column.getValue(extra);
-                               else
-                                       return column.getValue(Databases.MOTOR.get(rowIndex - 1));
-                       }
-               }
-               
-               @Override
-               public String getColumnName(int columnIndex) {
-                       return getColumn(columnIndex).getTitle();
-               }
-               
-               
-               public Motor getMotor(int rowIndex) {
-                       if (extra == null) {
-                               return Databases.MOTOR.get(rowIndex);
-                       } else {
-                               if (rowIndex == 0)
-                                       return extra;
-                               else
-                                       return Databases.MOTOR.get(rowIndex-1);
-                       }
-               }
-               
-               public int getIndex(Motor m) {
-                       if (extra == null) {
-                               return Databases.MOTOR.indexOf(m);
-                       } else {
-                               if (extra.equals(m))
-                                       return 0;
-                               else
-                                       return Databases.MOTOR.indexOf(m)+1;
-                       }
-               }
-               
-               private MotorColumns getColumn(int index) {
-                       return MotorColumns.values()[index];
-               }
-       }
-
-       
-       ////////  Row filters
-       
-       /**
-        * Abstract adapter class.
-        */
-       private abstract class MotorRowFilter extends RowFilter<TableModel,Integer> {
-               @Override
-               public boolean include(RowFilter.Entry<? extends TableModel, ? extends Integer> entry) {
-                       int index = entry.getIdentifier();
-                       Motor m = model.getMotor(index);
-                       return filterByDiameter(m) && filterByString(m);
-               }
-               
-               public abstract boolean filterByDiameter(Motor m);
-               
-               
-               public boolean filterByString(Motor m) {
-                       main: for (String s : searchTerms) {
-                               for (MotorColumns col : MotorColumns.values()) {
-                                       String str = col.getValue(m).toLowerCase();
-                                       if (str.indexOf(s) >= 0)
-                                               continue main;
-                               }
-                               return false;
-                       }
-                       return true;
-               }
-       }
-       
-       /**
-        * Show all motors.
-        */
-       private class MotorRowFilterAll extends MotorRowFilter {
-               @Override
-               public boolean filterByDiameter(Motor m) {
-                       return true;
-               }
-       }
-       
-       /**
-        * Show motors smaller than the mount.
-        */
-       private class MotorRowFilterSmaller extends MotorRowFilter {
-               @Override
-               public boolean filterByDiameter(Motor m) {
-                       return (m.getDiameter() <= diameter + 0.0004);
-               }
-       }
-       
-       /**
-        * Show motors that fit the mount.
-        */
-       private class MotorRowFilterExact extends MotorRowFilter {
-               @Override
-               public boolean filterByDiameter(Motor m) {
-                       return ((m.getDiameter() <= diameter + 0.0004) &&
-                                       (m.getDiameter() >= diameter - 0.0015));
-               }
-       }
-       
-       
-       private static Comparator<String> numericalComparator = null;
-       private static Comparator<String> getNumericalComparator() {
-               if (numericalComparator == null)
-                       numericalComparator = new NumericalComparator();
-               return numericalComparator;
-       }
-       
-       private static class NumericalComparator implements Comparator<String> {
-               private Pattern pattern = 
-                       Pattern.compile("^\\s*([0-9]*[.,][0-9]+|[0-9]+[.,]?[0-9]*).*?$");
-               private Collator collator = null;
-               @Override
-               public int compare(String s1, String s2) {
-                       Matcher m1, m2;
-                       
-                       m1 = pattern.matcher(s1);
-                       m2 = pattern.matcher(s2);
-                       if (m1.find() && m2.find()) {
-                               double d1 = Double.parseDouble(m1.group(1));
-                               double d2 = Double.parseDouble(m2.group(1));
-                               
-                               return (int)((d1-d2)*1000);
-                       }
-                       
-                       if (collator == null)
-                               collator = Collator.getInstance(Locale.US);
-                       return collator.compare(s1, s2);
-               }
-       }
-       
-}
index e08525d64698b9ac339c5e53a80caeeaf2d49d17..a6a921a07340170042b2dd67b0cc64ac4449c744 100644 (file)
@@ -56,12 +56,26 @@ public class PlotDialog extends JDialog {
                        throw new IllegalArgumentException("Domain axis type not specified.");
                }
                List<Double> x = branch.get(domainType);
-
+               
+               
+               // Get plot length (ignore trailing NaN's)
+               int typeCount = filled.getTypeCount();
+               int dataLength = 0;
+               for (int i=0; i<typeCount; i++) {
+                       FlightDataBranch.Type type = filled.getType(i);
+                       List<Double> y = branch.get(type);
+                       
+                       for (int j = dataLength; j < y.size(); j++) {
+                               if (!Double.isNaN(y.get(j)) && !Double.isInfinite(y.get(j)))
+                                       dataLength = j;
+                       }
+               }
+               dataLength = Math.min(dataLength, x.size());
+               
                
                // Create the XYSeries objects from the flight data and store into the collections
-               int length = filled.getTypeCount();
                String[] axisLabel = new String[2];
-               for (int i = 0; i < length; i++) {
+               for (int i = 0; i < typeCount; i++) {
                        // Get info
                        FlightDataBranch.Type type = filled.getType(i);
                        Unit unit = filled.getUnit(i);
@@ -71,7 +85,7 @@ public class PlotDialog extends JDialog {
                        // Store data in provided units
                        List<Double> y = branch.get(type);
                        XYSeries series = new XYSeries(name, false, true);
-                       for (int j=0; j<x.size(); j++) {
+                       for (int j=0; j < dataLength; j++) {
                                series.add(domainUnit.toUnit(x.get(j)), unit.toUnit(y.get(j)));
                        }
                        data[axis].addSeries(series);
index f59885da900a38d93ce9146e3dc3ee90ee3bc350..e2481ea845312eec0bd1e2d0b7a0e782bc2d6360 100644 (file)
@@ -23,8 +23,8 @@ public abstract class Material implements Comparable<Material> {
        }
        
        public static class Line extends Material {
-               public Line(String name, double density) {
-                       super(name, density);
+               public Line(String name, double density, boolean userDefined) {
+                       super(name, density, userDefined);
                }
 
                @Override
@@ -40,8 +40,8 @@ public abstract class Material implements Comparable<Material> {
        
        public static class Surface extends Material {
                
-               public Surface(String name, double density) {
-                       super(name, density);
+               public Surface(String name, double density, boolean userDefined) {
+                       super(name, density, userDefined);
                }
                
                @Override
@@ -61,8 +61,8 @@ public abstract class Material implements Comparable<Material> {
        }
        
        public static class Bulk extends Material {
-               public Bulk(String name, double density) {
-                       super(name, density);
+               public Bulk(String name, double density, boolean userDefined) {
+                       super(name, density, userDefined);
                }
 
                @Override
@@ -80,11 +80,13 @@ public abstract class Material implements Comparable<Material> {
        
        private final String name;
        private final double density;
+       private final boolean userDefined;
        
        
-       public Material(String name, double density) {
+       public Material(String name, double density, boolean userDefined) {
                this.name = name;
                this.density = density;
+               this.userDefined = userDefined;
        }
        
        
@@ -101,6 +103,10 @@ public abstract class Material implements Comparable<Material> {
                return name + " (" + u.toStringUnit(density) + ")";
        }
        
+       public boolean isUserDefined() {
+               return userDefined;
+       }
+       
        public abstract UnitGroup getUnitGroup();
        public abstract Type getType();
        
@@ -148,17 +154,27 @@ public abstract class Material implements Comparable<Material> {
        }
        
        
-       
+       /**
+        * Return a new material that is not user-defined.
+        */
        public static Material newMaterial(Type type, String name, double density) {
+               return newMaterial(type, name, density, false);
+       }
+
+       /**
+        * Return a new material of the specified type.
+        */
+       public static Material newMaterial(Type type, String name, double density, 
+                       boolean userDefined) {
                switch (type) {
                case LINE:
-                       return new Material.Line(name, density);
+                       return new Material.Line(name, density, userDefined);
                        
                case SURFACE:
-                       return new Material.Surface(name, density);
+                       return new Material.Surface(name, density, userDefined);
                        
                case BULK:
-                       return new Material.Bulk(name, density);
+                       return new Material.Bulk(name, density, userDefined);
                        
                default:
                        throw new IllegalArgumentException("Unknown material type: "+type);
@@ -170,7 +186,7 @@ public abstract class Material implements Comparable<Material> {
                return getType().name() + "|" + name.replace('|', ' ') + '|' + density;
        }
        
-       public static Material fromStorableString(String str) {
+       public static Material fromStorableString(String str, boolean userDefined) {
                String[] split = str.split("\\|",3);
                if (split.length < 3)
                        throw new IllegalArgumentException("Illegal material string: "+str);
@@ -195,13 +211,13 @@ public abstract class Material implements Comparable<Material> {
                
                switch (type) {
                case BULK:
-                       return new Material.Bulk(name, density);
+                       return new Material.Bulk(name, density, userDefined);
                        
                case SURFACE:
-                       return new Material.Surface(name, density);
+                       return new Material.Surface(name, density, userDefined);
                        
                case LINE:
-                       return new Material.Line(name, density);
+                       return new Material.Line(name, density, userDefined);
                        
                default:
                        throw new IllegalArgumentException("Illegal material string: "+str);
index 515667a5d11c4a6c861fb65b2bf9ad7ad1320a18..560cc260150a064ec02c281ca15bc539c461ee7a 100644 (file)
@@ -17,18 +17,21 @@ public class CenteringRing extends RadiusRingComponent {
                // Implement sibling inner radius automation
                if (isInnerRadiusAutomatic()) {
                        innerRadius = 0;
-                       for (RocketComponent sibling: this.getParent().getChildren()) {
-                               if (!(sibling instanceof RadialParent))  // Excludes itself
-                                       continue;
-
-                               double pos1 = this.toRelative(Coordinate.NUL, sibling)[0].x;
-                               double pos2 = this.toRelative(new Coordinate(getLength()), sibling)[0].x;
-                               if (pos2 < 0 || pos1 > sibling.getLength())
-                                       continue;
-                               
-                               innerRadius = Math.max(innerRadius, ((InnerTube)sibling).getOuterRadius());
+                       // Component can be parentless if disattached from rocket
+                       if (this.getParent() != null) {
+                               for (RocketComponent sibling: this.getParent().getChildren()) {
+                                       if (!(sibling instanceof RadialParent))  // Excludes itself
+                                               continue;
+                                       
+                                       double pos1 = this.toRelative(Coordinate.NUL, sibling)[0].x;
+                                       double pos2 = this.toRelative(new Coordinate(getLength()), sibling)[0].x;
+                                       if (pos2 < 0 || pos1 > sibling.getLength())
+                                               continue;
+                                       
+                                       innerRadius = Math.max(innerRadius, ((InnerTube)sibling).getOuterRadius());
+                               }
+                               innerRadius = Math.min(innerRadius, getOuterRadius());
                        }
-                       innerRadius = Math.min(innerRadius, getOuterRadius());
                }
                
                return super.getInnerRadius();
index d80d369562075862a562e93c2bb0b340e72ff8df..73e8a6dee7db33dec134ba276e4b92e75dd4a9d5 100644 (file)
@@ -82,6 +82,13 @@ public class ClusterConfiguration {
                return points.size()/2;
        }
        
+       /**
+        * Returns the relative positions of the cluster components.  The list is of length
+        * <code>2*getClusterCount()</code> with (x,y) value pairs.  The origin is at (0,0)
+        * and the values are positioned so that the closest clusters have distance of 1.
+        * 
+        * @return      a list of (x,y) coordinate pairs.
+        */
        public List<Double> getPoints() {
                return points;  // Unmodifiable
        }
index 0f6ece5a77a205aca54039c5a5bc40611df1a8a6..9f96bbdc9d740282e2f2834a8954af3b31e7be69 100644 (file)
@@ -115,15 +115,4 @@ public abstract class ExternalComponent extends RocketComponent {
                fireComponentChangeEvent(ComponentChangeEvent.AERODYNAMIC_CHANGE);
        }
        
-       
-       
-       @Override
-       protected void copyFrom(RocketComponent c) {
-               super.copyFrom(c);
-               
-               ExternalComponent src = (ExternalComponent)c;
-               this.material = src.material;
-               this.finish = src.finish;
-       }
-       
 }
index fe485e277de118c5514f9eebee62cc3ec831acef..7561c21efb6645f85b3bb707bd84800ef8c23f71 100644 (file)
@@ -139,6 +139,10 @@ implements Clusterable, RadialParent, MotorMount {
        }
 
 
+       /**
+        * Return the distance between the closest two cluster inner tube center points.
+        * This is equivalent to the cluster scale multiplied by the tube diameter.
+        */
        @Override
        public double getClusterSeparation() {
                return 2*getOuterRadius()*clusterScale;
@@ -273,4 +277,22 @@ implements Clusterable, RadialParent, MotorMount {
                this.overhang = overhang;
                fireComponentChangeEvent(ComponentChangeEvent.BOTH_CHANGE);
        }
+       
+       
+       
+       /*
+        * (non-Javadoc)
+        * Copy the motor and ejection delay HashMaps.
+        * 
+        * @see rocketcomponent.RocketComponent#copy()
+        */
+       @SuppressWarnings("unchecked")
+       @Override
+       public RocketComponent copy() {
+               RocketComponent c = super.copy();
+               ((InnerTube)c).motors = (HashMap<String,Motor>) motors.clone();
+               ((InnerTube)c).ejectionDelays = (HashMap<String,Double>) ejectionDelays.clone();
+               return c;
+       }
+
 }
\ No newline at end of file
index 9f84518b04c5ce987bcd34e4498e0150f20c768d..3eef45a16ba6d92218cf6b2eeca462b199fc5186 100644 (file)
@@ -75,7 +75,8 @@ public abstract class Motor implements Comparable<Motor> {
        
        /**
         * Below what portion of maximum thrust is the motor chosen to be off when
-        * calculating average thrust and burn time.double
+        * calculating average thrust and burn time.  NFPA 1125 defines the "official"
+        * burn time to be the time which the motor produces over 5% of its maximum thrust.
         */
        public static final double AVERAGE_MARGINAL = 0.05;
        
@@ -259,8 +260,8 @@ public abstract class Motor implements Comparable<Motor> {
        
        /**
         * Return the time used in calculating the average thrust.  The time is the
-        * length of time from motor ignition until the thrust has dropped below
-        * {@link #AVERAGE_MARGINAL} times the maximum thrust.
+        * length of time that the motor produces over 5% ({@link #AVERAGE_MARGINAL})
+        * of its maximum thrust.
         * 
         * @return  the nominal burn time.
         */
@@ -270,33 +271,49 @@ public abstract class Motor implements Comparable<Motor> {
                        double max = getMaxThrust();
                        double time = getTotalTime();
                        
-                       for (int i=DIVISIONS; i >= 0; i--) {
-                               avgTime = time * i / DIVISIONS;
-                               if (getThrust(avgTime) > max*AVERAGE_MARGINAL)
-                                       break;
+                       avgTime = 0;
+                       for (int i=0; i <= DIVISIONS; i++) {
+                               double t = i*time/DIVISIONS;
+                               if (getThrust(t) >= max*AVERAGE_MARGINAL)
+                                       avgTime++;
                        }
+                       avgTime *= time/(DIVISIONS+1);
+                       
+                       if (Double.isNaN(avgTime))
+                               throw new RuntimeException("Calculated avg. time is NaN for motor "+this);
+
                }
                return avgTime;
        }
        
        
        /**
-        * Return the calculated average thrust during time from ignition to
-        * {@link #getAverageTime()}.
+        * Return the calculated average thrust during the time the motor produces
+        * over 5% ({@link #AVERAGE_MARGINAL}) of its thrust.
         * 
         * @return  the nominal average thrust.
         */
        public double getAverageThrust() {
                // Compute average thrust lazily
                if (avgThrust < 0) {
-                       double time = getAverageTime();
+                       double max = getMaxThrust();
+                       double time = getTotalTime();
+                       int points = 0;
                        
                        avgThrust = 0;
-                       for (int i=0; i < DIVISIONS; i++) {
-                               double t = time * i / DIVISIONS;
-                               avgThrust += getThrust(t);
+                       for (int i=0; i <= DIVISIONS; i++) {
+                               double t = i*time/DIVISIONS;
+                               double thrust = getThrust(t);
+                               if (thrust >= max*AVERAGE_MARGINAL) {
+                                       avgThrust += thrust;
+                                       points++;
+                               }
                        }
-                       avgThrust /= DIVISIONS;
+                       if (points > 0)
+                               avgThrust /= points;
+                       
+                       if (Double.isNaN(avgThrust))
+                               throw new RuntimeException("Calculated average thrust is NaN for motor "+this);
                }
                return avgThrust;
        }
@@ -325,6 +342,9 @@ public abstract class Motor implements Comparable<Motor> {
                                t0 = t1;
                                f0 = f1;
                        }
+                       
+                       if (Double.isNaN(totalImpulse))
+                               throw new RuntimeException("Calculated total impulse is NaN for motor "+this);
                }
                return totalImpulse;
        }
@@ -518,9 +538,6 @@ public abstract class Motor implements Comparable<Motor> {
        public int compareTo(Motor other) {
                int value;
                
-               if (COLLATOR == null) {
-               }
-               
                // 1. Manufacturer
                value = COLLATOR.compare(this.manufacturer, other.manufacturer);
                if (value != 0)
@@ -619,5 +636,4 @@ public abstract class Motor implements Comparable<Motor> {
                        }
                }
        }
-
 }
index 7c8523b0063688a27a820f77edc03664f8b95bf1..3d67940b6728650c99580d78af786ee142c47343 100644 (file)
@@ -132,6 +132,27 @@ public abstract class RingComponent extends StructuralComponent {
                fireComponentChangeEvent(ComponentChangeEvent.MASS_CHANGE);
        }
 
+       
+       public double getRadialShiftY() {
+               return shiftY;
+       }
+       
+       public double getRadialShiftZ() {
+               return shiftZ;
+       }
+       
+       public void setRadialShift(double y, double z) {
+               radialPosition = Math.hypot(y, z);
+               radialDirection = Math.atan2(z, y);
+               
+               // Re-calculate to ensure consistency 
+               shiftY = radialPosition * Math.cos(radialDirection);
+               shiftZ = radialPosition * Math.sin(radialDirection);
+               assert(MathUtil.equals(y, shiftY));
+               assert(MathUtil.equals(z, shiftZ));
+               
+               fireComponentChangeEvent(ComponentChangeEvent.MASS_CHANGE);
+       }
 
 
        /**
index 335a22311252e533098d12ad07cacb679a1d9f49..6cb230c4202979cdd62c25e8c3ef82b7cef943d4 100644 (file)
@@ -316,10 +316,11 @@ public abstract class RocketComponent implements ChangeSource, Cloneable,
                clone.children = new ArrayList<RocketComponent>();
 
                // Add copied children to the structure without firing events.
-               for (RocketComponent c: this.children) {
-                       RocketComponent copy = c.copy();
-                       clone.children.add(copy);
-                       copy.parent = clone;
+               for (RocketComponent child: this.children) {
+                       RocketComponent childCopy = child.copy();
+                       // Don't use add method since it fires events
+                       clone.children.add(childCopy);
+                       childCopy.parent = clone;
                }
 
                return clone;
@@ -1079,6 +1080,10 @@ public abstract class RocketComponent implements ChangeSource, Cloneable,
                RocketComponent stage = this;
                while (!(stage instanceof Stage)) {
                        stage = stage.parent;
+                       if (stage == null || stage.parent == null) {
+                               throw new IllegalStateException("getStageNumber() could not find parent " +
+                                               "stage.");
+                       }
                }
                return stage.parent.getChildPosition(stage);
        }
@@ -1107,6 +1112,11 @@ public abstract class RocketComponent implements ChangeSource, Cloneable,
                if (parent == null)
                        return null;
                int pos = parent.getChildPosition(this);
+               if (pos < 0) {
+                       throw new IllegalStateException("Inconsistent internal state: " +
+                                       "this="+this+" parent="+parent+" parent.children="+
+                                       parent.children.toString());
+               }
                assert(pos >= 0);
                if (pos == 0)
                        return parent;
@@ -1401,8 +1411,9 @@ public abstract class RocketComponent implements ChangeSource, Cloneable,
 
        
        /**
-        * Loads the RocketComponent fields from the given component.  This method is meant
-        * for use with the undo/redo mechanism.
+        * Loads the RocketComponent fields from the given component.  This method may
+        * be called only for a Rocket component and is meant for use with the
+        * undo/redo mechanism.
         *
         * The fields are copied by reference, and the supplied component must not be used
         * after the call, as it is in an undefined state.
@@ -1410,8 +1421,16 @@ public abstract class RocketComponent implements ChangeSource, Cloneable,
         * TODO: MEDIUM: Make general to copy all private/protected fields...
         */
        protected void copyFrom(RocketComponent src) {
+               
+               if (!(this instanceof Rocket)) {
+                       throw new UnsupportedOperationException("copyFrom called for component " + this);
+               }
+               if (this.parent != null) {
+                       throw new UnsupportedOperationException("copyFrom called for non-root component " 
+                                       + this);
+               }
+               
                // Set parents and children
-               this.parent = null;
                this.children = src.children;
                src.children = new ArrayList<RocketComponent>();
                
index a29f55719c9131730660892c69dbc84ef155e5b3..9519aa3ea2fa8af7087a4d0da1445d0155dd377d 100644 (file)
@@ -1,6 +1,7 @@
 package net.sf.openrocket.rocketcomponent;
 
 import net.sf.openrocket.util.Coordinate;
+import net.sf.openrocket.util.MathUtil;
 
 /**
  * A class of motors specified by a fixed thrust curve.  This is the most
@@ -9,6 +10,8 @@ import net.sf.openrocket.util.Coordinate;
  * @author Sampo Niskanen <sampo.niskanen@iki.fi>
  */
 public class ThrustCurveMotor extends Motor {
+       
+       public static final double MAX_THRUST = 10e6;
 
        private final double[] time;
        private final double[] thrust;
@@ -54,16 +57,37 @@ public class ThrustCurveMotor extends Motor {
                                                "time[" + (i+1) + "]=" + time[i+1]);
                        }
                }
-               if (time[0] != 0) {
-                       throw new IllegalArgumentException("Curve starts at time=" + time[0]);
+               if (!MathUtil.equals(time[0], 0)) {
+                       throw new IllegalArgumentException("Curve starts at time " + time[0]);
+               }
+               if (!MathUtil.equals(thrust[0], 0)) {
+                       throw new IllegalArgumentException("Curve starts at thrust " + thrust[0]);
+               }
+               if (!MathUtil.equals(thrust[thrust.length-1], 0)) {
+                       throw new IllegalArgumentException("Curve ends at thrust " + 
+                                       thrust[thrust.length-1]);
                }
                for (double t: thrust) {
                        if (t < 0) {
                                throw new IllegalArgumentException("Negative thrust.");
                        }
+                       if (t > MAX_THRUST || Double.isNaN(t)) {
+                               throw new IllegalArgumentException("Invalid thrust " + t);
+                       }
                        if (t > max)
                                max = t;
                }
+               for (Coordinate c: cg) {
+                       if (c.isNaN()) {
+                               throw new IllegalArgumentException("Invalid CG " + c);
+                       }
+                       if (c.x < 0 || c.x > length) {
+                               throw new IllegalArgumentException("Invalid CG position " + c.x);
+                       }
+                       if (c.weight < 0) {
+                               throw new IllegalArgumentException("Negative mass " + c.weight);
+                       }
+               }
 
                this.maxThrust = max;
                this.time = time.clone();
@@ -91,6 +115,9 @@ public class ThrustCurveMotor extends Motor {
                for (int i=0; i < time.length-1; i++) {
                        if ((t >= time[i]) && (t <= time[i+1])) {
                                double delta = time[i+1] - time[i];
+                               if (delta < 0.0001) {
+                                       return thrust[i];
+                               }
                                t = t - time[i];
                                return thrust[i] * (1 - t/delta) + thrust[i+1] * (t/delta);
                        }
@@ -118,4 +145,17 @@ public class ThrustCurveMotor extends Motor {
                return cg[cg.length-1];
        }
 
+       
+       public double[] getTimePoints() {
+               return time.clone();
+       }
+       
+       public double[] getThrustPoints() {
+               return thrust.clone();
+       }
+       
+       public Coordinate[] getCGPoints() {
+               return cg.clone();
+       }
+       
 }
index eb0eccfce9d3b0e4fbb273cc6895bfdd8a939c57..a905521aaf4aff03aba84beb525dd5bef29b2dad 100644 (file)
@@ -1,15 +1,21 @@
 package net.sf.openrocket.util;
 
 import java.awt.Component;
+import java.awt.Image;
 import java.awt.KeyboardFocusManager;
 import java.awt.Window;
 import java.awt.event.ActionEvent;
 import java.awt.event.KeyEvent;
 import java.awt.event.WindowEvent;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashSet;
+import java.util.List;
 import java.util.Set;
 
+import javax.imageio.ImageIO;
 import javax.swing.AbstractAction;
 import javax.swing.Action;
 import javax.swing.JButton;
@@ -25,6 +31,32 @@ public class GUIUtil {
        private static final KeyStroke ESCAPE = KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0);
        private static final String CLOSE_ACTION_KEY =  "escape:WINDOW_CLOSING"; 
        
+    private static final List<Image> images = new ArrayList<Image>();
+    static {
+       loadImage("pix/icon/icon-256.png");
+       loadImage("pix/icon/icon-064.png");
+       loadImage("pix/icon/icon-048.png");
+       loadImage("pix/icon/icon-032.png");
+       loadImage("pix/icon/icon-016.png");
+    }
+    
+    private static void loadImage(String file) {
+       InputStream is;
+       is = ClassLoader.getSystemResourceAsStream(file);
+       if (is == null)
+               return;
+       
+       try {
+               Image image = ImageIO.read(is);
+               images.add(image);
+       } catch (IOException ignore) {
+               ignore.printStackTrace();
+       }
+    }
+    
+
+       
        
        /**
         * Add the correct action to close a JDialog when the ESC key is pressed.
@@ -76,5 +108,9 @@ public class GUIUtil {
         c.setFocusTraversalKeys(KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS, strokes);
     }
 
+    
+    public static void setWindowIcons(Window window) {
+       window.setIconImages(images);
+    }
        
 }
index e0c3a8de714ec05ac2986253e1f190cbca1ba0ee..4b765c3d4f0a972ba4f9d8d762799a85e87b8977 100644 (file)
@@ -11,7 +11,6 @@ import java.io.InterruptedIOException;
 import javax.swing.SwingWorker;
 
 import net.sf.openrocket.document.OpenRocketDocument;
-import net.sf.openrocket.file.GeneralRocketLoader;
 import net.sf.openrocket.file.RocketLoader;
 
 
@@ -22,22 +21,26 @@ import net.sf.openrocket.file.RocketLoader;
  */
 public class OpenFileWorker extends SwingWorker<OpenRocketDocument, Void> {
 
-       private static final RocketLoader ROCKET_LOADER = new GeneralRocketLoader();
-
        private final File file;
        private final InputStream stream;
+       private final RocketLoader loader;
        
-       public OpenFileWorker(File file) {
+       public OpenFileWorker(File file, RocketLoader loader) {
                this.file = file;
                this.stream = null;
+               this.loader = loader;
        }
        
        
-       public OpenFileWorker(InputStream stream) {
+       public OpenFileWorker(InputStream stream, RocketLoader loader) {
                this.stream = stream;
                this.file = null;
+               this.loader = loader;
        }
        
+       public RocketLoader getRocketLoader() {
+               return loader;
+       }
        
        @Override
        protected OpenRocketDocument doInBackground() throws Exception {
@@ -59,7 +62,7 @@ public class OpenFileWorker extends SwingWorker<OpenRocketDocument, Void> {
                is = new ProgressInputStream(is);
                
                try {
-                       return ROCKET_LOADER.load(is);
+                       return loader.load(is);
                } finally {
                        try {
                                is.close();
index d5b98b4dd3dfc4bf0456845ae8d6ec1aa8ca1584..f12a554a9fe3f0efb943b297cf48cabbd6c57984 100644 (file)
@@ -335,7 +335,7 @@ public class Prefs {
                String material = get("componentMaterials", componentClass, null);
                if (material != null) {
                        try {
-                               Material m = Material.fromStorableString(material);
+                               Material m = Material.fromStorableString(material, false);
                                if (m.getType() == type)
                                        return m;
                        } catch (IllegalArgumentException ignore) { }
diff --git a/src/net/sf/openrocket/utils/MotorCheck.java b/src/net/sf/openrocket/utils/MotorCheck.java
new file mode 100644 (file)
index 0000000..afe9e30
--- /dev/null
@@ -0,0 +1,87 @@
+package net.sf.openrocket.utils;
+
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.List;
+
+import net.sf.openrocket.file.GeneralMotorLoader;
+import net.sf.openrocket.file.MotorLoader;
+import net.sf.openrocket.rocketcomponent.Motor;
+import net.sf.openrocket.rocketcomponent.ThrustCurveMotor;
+
+public class MotorCheck {
+
+       // Warn if less that this many points
+       public static final int WARN_POINTS = 6;
+       
+
+       public static void main(String[] args) {
+               MotorLoader loader = new GeneralMotorLoader();
+
+               // Load files
+               for (String file: args) {
+                       System.out.print("Checking " + file + "... ");
+                       System.out.flush();
+                       
+                       boolean ok = true;
+                       
+                       List<Motor> motors = null;
+                       try {
+                               InputStream stream = new FileInputStream(file);
+                               motors = loader.load(stream, file);
+                               stream.close();
+                       } catch (IOException e) {
+                               System.out.println("ERROR: " + e.getMessage());
+                               e.printStackTrace(System.out);
+                               ok = false;
+                       }
+                       
+                       String base = file.split("_")[0];
+                       String mfg = MotorLoader.convertManufacturer(base);
+                       
+                       if (motors != null) {
+                               if (motors.size() == 0) {
+                                       System.out.println("ERROR: File contained no motors");
+                                       ok = false;
+                               } else {
+                                       for (Motor m: motors) {
+                                               double sum = 0;
+                                               sum += m.getAverageThrust();
+                                               sum += m.getAverageTime();
+                                               sum += m.getTotalImpulse();
+                                               sum += m.getTotalTime();
+                                               sum += m.getDiameter();
+                                               sum += m.getLength();
+                                               sum += m.getMass(0);
+                                               sum += m.getMass(Double.POSITIVE_INFINITY);
+                                               sum += m.getCG(0).x;
+                                               sum += m.getCG(0).weight;
+                                               sum += m.getMaxThrust();
+                                               if (Double.isInfinite(sum) || Double.isNaN(sum)) {
+                                                       System.out.println("ERROR: Invalid motor values");
+                                                       ok = false;
+                                               }
+                                               
+                                               if (!m.getManufacturer().equals(mfg)) {
+                                                       System.out.println("ERROR: Inconsistent manufacturer " + 
+                                                                       m.getManufacturer() + " (file name indicates " + mfg 
+                                                                       + ")");
+                                                       ok = false;
+                                               }
+                                               
+                                               int points = ((ThrustCurveMotor)m).getTimePoints().length;
+                                               if (points < WARN_POINTS) {
+                                                       System.out.println("WARNING: Only " + points + " data points");
+                                                       ok = false;
+                                               }
+                                       }
+                               }
+                       }
+                       
+                       if (ok) {
+                               System.out.println("OK");
+                       }
+               }
+       }
+}
diff --git a/src/net/sf/openrocket/utils/MotorCompare.java b/src/net/sf/openrocket/utils/MotorCompare.java
new file mode 100644 (file)
index 0000000..ed6edc0
--- /dev/null
@@ -0,0 +1,288 @@
+package net.sf.openrocket.utils;
+
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.List;
+
+import net.sf.openrocket.file.GeneralMotorLoader;
+import net.sf.openrocket.file.MotorLoader;
+import net.sf.openrocket.rocketcomponent.Motor;
+import net.sf.openrocket.rocketcomponent.ThrustCurveMotor;
+
+public class MotorCompare {
+       
+       private static final double MAX_THRUST_MARGIN = 0.20;
+       private static final double TOTAL_IMPULSE_MARGIN = 0.10;
+       private static final double MASS_MARGIN = 0.10;
+       
+       private static final double THRUST_MARGIN = 0.15;
+       
+       private static final int DIVISIONS = 100;
+       private static final int ALLOWED_INVALID_POINTS = 15;
+       
+       private static final int MIN_POINTS = 7;
+
+       public static void main(String[] args) throws IOException {
+               final double maxThrust;
+               final double maxTime;
+               int maxDelays;
+               int maxPoints;
+               int maxCommentLen;
+
+               double min, max;
+               double diff;
+               
+               int[] goodness;
+               
+               boolean bad = false;
+               List<String> cause = new ArrayList<String>();
+               
+               MotorLoader loader = new GeneralMotorLoader();
+               List<Motor> motors = new ArrayList<Motor>();
+               List<String> files = new ArrayList<String>();
+               
+               // Load files
+               System.out.printf("Files      :");
+               for (String file: args) {
+                       System.out.printf("\t%s", file);
+                       List<Motor> m = null;
+                       try {
+                               InputStream stream = new FileInputStream(file);
+                               m = loader.load(stream, file);
+                               stream.close();
+                       } catch (IOException e) {
+                               e.printStackTrace();
+                               System.out.print("(ERR:" + e.getMessage() + ")");
+                       }
+                       if (m != null) {
+                               motors.addAll(m);
+                               for (int i=0; i<m.size(); i++)
+                                       files.add(file);
+                       }
+               }
+               System.out.println();
+               
+               if (motors.size() == 0) {
+                       System.err.println("No motors loaded.");
+                       System.out.println("ERROR: No motors loaded.\n");
+                       return;
+                       
+               }
+               
+               if (motors.size() == 1) {
+                       System.out.println("Best (ONLY): " + files.get(0));
+                       System.out.println();
+                       return;
+               }
+               
+               final int n = motors.size(); 
+               goodness = new int[n];
+               
+               
+               // Manufacturers
+               System.out.printf("Manufacture:");
+               String mfg = motors.get(0).getManufacturer();
+               for (Motor m: motors) {
+                       System.out.printf("\t%s", m.getManufacturer());
+                       if (!m.getManufacturer().equals(mfg)) {
+                               cause.add("Manufacturer");
+                               bad = true;
+                       }
+               }
+               System.out.println();
+               
+               
+               // Max. thrust
+               max = 0;
+               min = Double.MAX_VALUE;
+               System.out.printf("Max.thrust :");
+               for (Motor m: motors) {
+                       double f = m.getMaxThrust();
+                       System.out.printf("\t%.2f", f);
+                       max = Math.max(max, f);
+                       min = Math.min(min, f);
+               }
+               diff = (max-min)/min;
+               if (diff > MAX_THRUST_MARGIN) {
+                       bad = true;
+                       cause.add("Max thrust");
+               }
+               System.out.printf("\t(discrepancy %.1f%%)\n", 100.0*diff);
+               maxThrust = (min+max)/2;
+               
+               
+               // Total time
+               max = 0;
+               min = Double.MAX_VALUE;
+               System.out.printf("Total time :");
+               for (Motor m: motors) {
+                       double t = m.getTotalTime();
+                       System.out.printf("\t%.2f", t);
+                       max = Math.max(max, t);
+                       min = Math.min(min, t);
+               }
+               diff = (max-min)/min;
+               System.out.printf("\t(discrepancy %.1f%%)\n", 100.0*diff);
+               maxTime = max;
+               
+               
+               // Total impulse
+               max = 0;
+               min = Double.MAX_VALUE;
+               System.out.printf("Impulse    :");
+               for (Motor m: motors) {
+                       double f = m.getTotalImpulse();
+                       System.out.printf("\t%.2f", f);
+                       max = Math.max(max, f);
+                       min = Math.min(min, f);
+               }
+               diff = (max-min)/min;
+               if (diff > TOTAL_IMPULSE_MARGIN) {
+                       bad = true;
+                       cause.add("Total impulse");
+               }
+               System.out.printf("\t(discrepancy %.1f%%)\n", 100.0*diff);
+               
+               
+               // Initial mass
+               max = 0;
+               min = Double.MAX_VALUE;
+               System.out.printf("Init mass  :");
+               for (Motor m: motors) {
+                       double f = m.getMass(0);
+                       System.out.printf("\t%.2f", f*1000);
+                       max = Math.max(max, f);
+                       min = Math.min(min, f);
+               }
+               diff = (max-min)/min;
+               if (diff > MASS_MARGIN) {
+                       bad = true;
+                       cause.add("Initial mass");
+               }
+               System.out.printf("\t(discrepancy %.1f%%)\n", 100.0*diff);
+               
+               
+               // Empty mass
+               max = 0;
+               min = Double.MAX_VALUE;
+               System.out.printf("Empty mass :");
+               for (Motor m: motors) {
+                       double f = m.getMass(Double.POSITIVE_INFINITY);
+                       System.out.printf("\t%.2f", f*1000);
+                       max = Math.max(max, f);
+                       min = Math.min(min, f);
+               }
+               diff = (max-min)/min;
+               if (diff > MASS_MARGIN) {
+                       bad = true;
+                       cause.add("Empty mass");
+               }
+               System.out.printf("\t(discrepancy %.1f%%)\n", 100.0*diff);
+               
+               
+               // Delays
+               maxDelays = 0;
+               System.out.printf("Delays     :");
+               for (Motor m: motors) {
+                       System.out.printf("\t%d", m.getStandardDelays().length);
+                       maxDelays = Math.max(maxDelays, m.getStandardDelays().length);
+               }
+               System.out.println();
+               
+               
+               // Data points
+               maxPoints = 0;
+               System.out.printf("Points     :");
+               for (Motor m: motors) {
+                       System.out.printf("\t%d", ((ThrustCurveMotor)m).getTimePoints().length);
+                       maxPoints = Math.max(maxPoints, ((ThrustCurveMotor)m).getTimePoints().length);
+               }
+               System.out.println();
+               
+               
+               // Comment length
+               maxCommentLen = 0;
+               System.out.printf("Comment len:");
+               for (Motor m: motors) {
+                       System.out.printf("\t%d", m.getDescription().length());
+                       maxCommentLen = Math.max(maxCommentLen, m.getDescription().length());
+               }
+               System.out.println();
+               
+               
+               if (bad) {
+                       String str = "ERROR: ";
+                       for (int i=0; i<cause.size(); i++) {
+                               str += cause.get(i);
+                               if (i < cause.size()-1)
+                                       str += ", ";
+                       }
+                       str += " differs";
+                       System.out.println(str);
+                       System.out.println();
+                       return;
+               }
+               
+               // Check consistency
+               int invalidPoints = 0;
+               for (int i=0; i < DIVISIONS; i++) {
+                       double t = maxTime * i/(DIVISIONS-1);
+                       min = Double.MAX_VALUE;
+                       max = 0;
+//                     System.out.printf("%.2f:", t);
+                       for (Motor m: motors) {
+                               double f = m.getThrust(t);
+//                             System.out.printf("\t%.2f", f);
+                               min = Math.min(min, f);
+                               max = Math.max(max, f);
+                       }
+                       diff = (max-min)/maxThrust;
+//                     System.out.printf("\t(diff %.1f%%)\n", diff*100);
+                       if (diff > THRUST_MARGIN)
+                               invalidPoints++;
+               }
+               
+               if (invalidPoints > ALLOWED_INVALID_POINTS) {
+                       System.out.println("ERROR: " + invalidPoints + "/" + DIVISIONS 
+                                       + " points have thrust differing over " + (THRUST_MARGIN*100) + "%");
+                       System.out.println();
+                       return;
+               }
+               
+               
+               // Check goodness
+               for (int i=0; i<n; i++) {
+                       Motor m = motors.get(i);
+                       if (m.getStandardDelays().length == maxDelays)
+                               goodness[i] += 1000;
+                       if (((ThrustCurveMotor)m).getTimePoints().length == maxPoints)
+                               goodness[i] += 100;
+                       if (m.getDescription().length() == maxCommentLen)
+                               goodness[i] += 10;
+                       if (files.get(i).matches(".*\\.[rR][sS][eE]$"))
+                               goodness[i] += 1;
+               }
+               int best = 0;
+               for (int i=1; i<n; i++) {
+                       if (goodness[i] > goodness[best])
+                               best = i;
+               }
+               
+               
+               // Verify enough points
+               int pts = ((ThrustCurveMotor)motors.get(best)).getTimePoints().length;
+               if (pts < MIN_POINTS) {
+                       System.out.println("ERROR: Best has only " + pts + " data points");
+                       System.out.println();
+                       return;
+               }
+               
+               System.out.println("Best (" + goodness[best] + "): " + files.get(best));
+               System.out.println();
+               
+               
+       }
+       
+}
diff --git a/src/net/sf/openrocket/utils/MotorPrinter.java b/src/net/sf/openrocket/utils/MotorPrinter.java
new file mode 100644 (file)
index 0000000..c0194d2
--- /dev/null
@@ -0,0 +1,53 @@
+package net.sf.openrocket.utils;
+
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Arrays;
+import java.util.List;
+
+import net.sf.openrocket.file.GeneralMotorLoader;
+import net.sf.openrocket.file.MotorLoader;
+import net.sf.openrocket.rocketcomponent.Motor;
+import net.sf.openrocket.rocketcomponent.ThrustCurveMotor;
+
+public class MotorPrinter {
+
+       public static void main(String[] args) throws IOException {
+
+               MotorLoader loader = new GeneralMotorLoader();
+               
+               System.out.println();
+               for (String arg: args) {
+                       InputStream stream = new FileInputStream(arg);
+                       
+                       List<Motor> motors = loader.load(stream, arg);
+                       
+                       System.out.println("*** " + arg + " ***");
+                       System.out.println();
+                       for (Motor m: motors) {
+                               System.out.println("  Manufacturer:  " + m.getManufacturer());
+                               System.out.println("  Designation:   " + m.getDesignation());
+                               System.out.println("  Delays:        " + 
+                                               Arrays.toString(m.getStandardDelays()));
+                               System.out.printf("  Nominal time:  %.2f s\n",  m.getAverageTime());
+                               System.out.printf("  Total time:    %.2f s\n",  m.getTotalTime());
+                               System.out.printf("  Avg. thrust:   %.2f N\n",  m.getAverageThrust());
+                               System.out.printf("  Max. thrust:   %.2f N\n",  m.getMaxThrust());
+                               System.out.printf("  Total impulse: %.2f Ns\n", m.getTotalImpulse());
+                               System.out.println("  Diameter:      " + m.getDiameter()*1000 + " mm");
+                               System.out.println("  Length:        " + m.getLength()*1000 + " mm");
+                               
+                               if (m instanceof ThrustCurveMotor) {
+                                       ThrustCurveMotor tc = (ThrustCurveMotor)m;
+                                       System.out.println("  Data points:   " + tc.getTimePoints().length);
+                               }
+                               
+                               System.out.println("  Comment:");
+                               System.out.println(m.getDescription());
+                               System.out.println();
+                       }
+               }
+       }
+}
+